Projet système PC : 2016 - PEREZ Joseph, VALENTIN Jean

De Ensiwiki
Aller à : navigation, rechercher
GOOSE
Goose small.png
Projet Système 2016

Développeurs Joseph Perez
Jean Valentin


Présentation

L'équipe

Joseph Perez : filière ISI

Jean Valentin : filière ISI

Fonctionnalités principales

Voir cette page pour le détail des sept phases constituant les fonctionnalités principales.

Les phases 1, 2, 3, et une partie de la phase 4 sont une simple adaptation du projet Pratique du Système.

Extensions

Extensions du shell

e shell (prononcer échelle) a gagné quelques fonctionnalités par rapport au cahier des charges initial. Parmi elles :

  • la navigation dans une ligne avec les flèches gauche/droite
  • l'édition d'une ligne, possibilité de supprimer ou ajouter des caractères
  • l'affichage des caractères de contrôle
  • le passage d'un paramètre (mais un seul !) à un programme
  • le démarrage d'un programme en arrière-plan
  • la terminaison d'un processus avec Ctrl+C

Système de fichiers

WTFS (What The File System) est un système de fichiers fait maison. Les appels système correspondants sont implémentés ; il est donc possible d'utiliser le système de fichiers depuis un programme.

Commandes disponibles

  • autotest : lance tous les tests séquentiellement
  • clear : efface l'écran
  • e_shell : lance un shell
  • echo foo : affiche foo
  • help : affiche l'aide
  • kill x : termine le processus ayant le pid x
  • ps : affiche les informations sur les processus
  • test_app : lance test_app, sans effet puisque cette application ne fait rien
  • test_wtfs : fait des opérations avec le système de fichiers, et plante en cas d'erreur
  • testXX : lance le test XX
  • uptime : affiche l'uptime
  • yes : affiche y à l'infini

Astuces

Démarrer sur une machine réelle

Pour savourer son système, la meilleure solution est quand même de le démarrer sur un véritable ordinateur. C'est expliqué sur cette page, mais ça ne suffit pas forcément. De ce fait voici la marche à suivre, en tout cas celle qui a fonctionné pour nous. Testé avec *buntu. Optimal avec un BIOS, résultats non garantis avec UEFI.

Configurer la clé

On suppose qu'on a à sa disposition une clé USB. On suppose aussi que son contenu n'a pas d'importance puisqu'il sera supprimé.

Il n'est pas nécessaire de supprimer le contenu de la clé pour installer grub, mais on veut s'assurer que le format de la table des partitions convient.

Avec GParted par exemple :

  • supprimer toutes les partitions,
  • créer une table de partitions msdos (Device > Create Partition Table... puis choisir msdos),
  • créer une partition FAT32.

À ce stade, on a une clé avec une table de partitions msdos et une seule partition FAT32.

Installer grub

Exécuter ces instructions en root. On suppose que la clé est /dev/sdb. Sinon, remplacer sdb par ce qu'il faut.

  • monter la clé
mount /dev/sdb1 /mnt/
  • créer le répertoire boot
mkdir /mnt/boot
  • installer grub
grub-install --target=i386-pc --recheck --boot-directory=/mnt/boot /dev/sdb

Maintenant grub est installé sur la clé.

Configurer grub

grub s'installe par défaut sans fichier de configuration. Celui dont on a besoin est tout petit. Il suffit de créer dans le répertoire (clé USB)/boot/grub un fichier grub.cfg contenant ceci :

menuentry "Nom de mon OS" {
  multiboot /boot/kernel.bin
  boot
}

Il faut bien sûr copier le fichier kernel.bin dans (clé USB)/boot.

Voilà, c'est une clé USB bootable.

Démarrer sur une machine de l'école (méthode rapide)

Pour booter depuis une clé USB sur une machine de l'école, un mot de passe administrateur est nécessaire. Heureusement il est possible d'utiliser une autre méthode en rusant un peu, en plus c'est plus rapide. De surcroît grub est installé sur les machines de l'école, on peut donc l'utiliser et donc s'abstenir de l'installer sur la clé USB.

De ce fait, il suffit d'une clé USB, formatée correctement, et contenant kernel.bin à sa racine.

  • Brancher la clé USB,
  • Allumer la machine,
  • Éditer une entrée du menu grub (par exemple Windows) en appuyant sur e,
  • Vérifier le point d'accès à la clé USB : pour cela ouvrir l'invite de commandes avec Ctrl+C, puis taper ls. La dernière entrée correspond normalement à la première partition de la clé. C'est probablement (hd1,msdos1). Quitter l'invite de commande en appuyant sur Échap,
  • Tout effacer et écrire les instructions suivantes :
set root=(hd1,msdos1)
multiboot /kernel.bin
boot
  • Démarrer avec F10.

Si tout s'est bien déroulé, un joli shell s'affiche alors à l'écran.

Téléchargement

Télécharger le kernel ici : Fichier:Kernel goose.bin.gz

Décompresser avec gunzip.