From 566793de15492bab71eb8a967bddbcd65df2871d Mon Sep 17 00:00:00 2001 From: Florent Gluck <florent.gluck@hesge.ch> Date: Mon, 11 Nov 2024 18:48:19 +0100 Subject: [PATCH] Added disk ref for testing sector writes updated lab add 2 guests: guest_disk_phys.bin and guest_disk_pv.bin --- .../disk_tests/disk_ref.raw | Bin 0 -> 262144 bytes .../lab-virtual_game_machine.md | 24 ++++++++++++++++++ .../validation/guests/guest_disk_phys.bin | Bin 0 -> 7412 bytes .../validation/guests/guest_disk_pv.bin | Bin 0 -> 7412 bytes 4 files changed, 24 insertions(+) create mode 100644 labs/lab-virtual_game_machine/disk_tests/disk_ref.raw create mode 100755 labs/lab-virtual_game_machine/validation/guests/guest_disk_phys.bin create mode 100755 labs/lab-virtual_game_machine/validation/guests/guest_disk_pv.bin diff --git a/labs/lab-virtual_game_machine/disk_tests/disk_ref.raw b/labs/lab-virtual_game_machine/disk_tests/disk_ref.raw new file mode 100644 index 0000000000000000000000000000000000000000..0ff5d37539c6fc44d55c5539bd30685e8fd32ce9 GIT binary patch literal 262144 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 Z^ULy9Ce2;Q@aX#S%@;V!Mfl9+V*!8|yiWiC literal 0 HcmV?d00001 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 aec99db..157d9f1 100644 --- a/labs/lab-virtual_game_machine/lab-virtual_game_machine.md +++ b/labs/lab-virtual_game_machine/lab-virtual_game_machine.md @@ -535,3 +535,27 @@ Using native display driver (phys). Display resolution: 600x400 pixels. ``` \normalsize + +### `guest_disk_pv.bin` +\vspace{-.3cm} + +Ce guest réalise un test d'écriture de secteurs via un driver paravirtualisé (hypercall n°4). Il écrit, dans 8 secteurs du disque, une suite de valeurs aléatoires connues, donc toujours les mêmes à chaque exécution. Les 8 secteurs sont les suivants, dans l'ordre\ : 307, 71, 511, 17, 147, 31, 219, 0. + +Attention\ : il considère un disque d'une capacité de 256\ KB. + +Il écrit sur la console virtuelle les secteurs écrits et produit la sortie suivante\ : +\footnotesize +``` +Started disk validation tests... +Completed disk validation tests. +``` +\normalsize + +Dans `disk_tests/disk_ref.raw` se trouve une image disque de 256\ KB contenant le contenu exact du disque que vous devriez obtenir après l'exécution de ce guest. On part du principe qu'avant l'exéction du guest, le disque est rempli de 0. Ceci vous permettra de valider que votre VMM se comporte correctement. + +### `guest_disk_phys.bin` +\vspace{-.3cm} + +Ce guest réalise le même test d'écriture de secteurs mais via un driver physique. Attention toutefois\ : le code du guest tente volontairement de réaliser des écritures sur disque, mais volontairement légèrement incorrectes. Ces tentatives d'écritures ne devraient jamais aboutir et seules les écritures implémentant un code correct doivent mener à un secteur écrit sur disque. Les secteurs écrits doivent donc être exactement les mêmes que dans le guest précédent, avec exactement les mêmes contenus\ ! + +L'affichage réalisé par le guest sur la console virtuelle est identique au guest précédent. diff --git a/labs/lab-virtual_game_machine/validation/guests/guest_disk_phys.bin b/labs/lab-virtual_game_machine/validation/guests/guest_disk_phys.bin new file mode 100755 index 0000000000000000000000000000000000000000..5c2802213b1196b8a71a96f80ec40a9bd0672870 GIT binary patch literal 7412 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 literal 0 HcmV?d00001 diff --git a/labs/lab-virtual_game_machine/validation/guests/guest_disk_pv.bin b/labs/lab-virtual_game_machine/validation/guests/guest_disk_pv.bin new file mode 100755 index 0000000000000000000000000000000000000000..654fec5f22adb3532fa1bad8205e50c6c9ccb000 GIT binary patch literal 7412 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 literal 0 HcmV?d00001 -- GitLab