From cf4291bc2fc931256c5c0addb701aa1449a25f28 Mon Sep 17 00:00:00 2001 From: Florent Gluck <florent.gluck@hesge.ch> Date: Mon, 30 Sep 2024 16:43:43 +0200 Subject: [PATCH] Added validation/guests/guest_pv_1.bin Updated lab-virtual_game_machine.md Updated skeleton/guest/Makefile to fix a snprintf linking error --- .../lab-virtual_game_machine.md | 23 ++++++++++++++++++ .../skeleton/guest/Makefile | 2 +- .../validation/guests/guest_pv_1.bin | Bin 0 -> 8265 bytes 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100755 labs/lab-virtual_game_machine/validation/guests/guest_pv_1.bin diff --git a/labs/lab-virtual_game_machine/lab-virtual_game_machine.md b/labs/lab-virtual_game_machine/lab-virtual_game_machine.md index ad497e0..34af85f 100644 --- a/labs/lab-virtual_game_machine/lab-virtual_game_machine.md +++ b/labs/lab-virtual_game_machine/lab-virtual_game_machine.md @@ -357,3 +357,26 @@ Pour vous aider à tester votre VMM et vous assurer que son comportement est cor Le binaire de l'hyperviseur complet à réaliser vous sera également fourni afin que vous puissiez vérifier que le code de votre guest est également correct. +## Guests à disposition + +Plusieurs guest OSes sont mis à votre disposition afin que vous puissiez valider que le comportement de votre VMM est correct. Ces guests se trouvent dans le répertoire `validation/guests`. Voici la liste avec une brève description de ce qu'ils réalisent et le comportement attendu par le VMM\ : + +### guest_pv_1.bin + +Ce guest réalise 11 hypercalls afin d'afficher du texte sur la console virtuelle. Le texte affiché par le VMM est donné ci-dessous\ : + +\footnotesize +``` +Looping 10 times: +Hello from Guest OS (0/9) +Hello from Guest OS (1/9) +Hello from Guest OS (2/9) +Hello from Guest OS (3/9) +Hello from Guest OS (4/9) +Hello from Guest OS (5/9) +Hello from Guest OS (6/9) +Hello from Guest OS (7/9) +Hello from Guest OS (8/9) +Hello from Guest OS (9/9) +``` +\normalsize diff --git a/labs/lab-virtual_game_machine/skeleton/guest/Makefile b/labs/lab-virtual_game_machine/skeleton/guest/Makefile index 3cf535c..76f4844 100644 --- a/labs/lab-virtual_game_machine/skeleton/guest/Makefile +++ b/labs/lab-virtual_game_machine/skeleton/guest/Makefile @@ -1,4 +1,4 @@ -BAREMETAL_FLAGS=-m32 -ffreestanding -nostdlib -fno-builtin -fno-stack-protector -fno-pie -static -O3 +BAREMETAL_FLAGS=-m32 -march=i386 -ffreestanding -nostdlib -fno-builtin -fno-stack-protector -fno-pie -static CC=gcc -std=gnu17 $(BAREMETAL_FLAGS) -Wall -Wextra -MMD -Ishared -I../.. -I.. CC+=-DPV=$(PV) diff --git a/labs/lab-virtual_game_machine/validation/guests/guest_pv_1.bin b/labs/lab-virtual_game_machine/validation/guests/guest_pv_1.bin new file mode 100755 index 0000000000000000000000000000000000000000..27a2b278e52964d5d7528e56f73f09380824d75e GIT binary patch literal 8265 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 Z2O5_%Ff=kYF*P%{uyk~Cc5!uM001Qm+57+i literal 0 HcmV?d00001 -- GitLab