This is an old revision of the document!
Le but de ce devoir est de créer une bibliothèque d’allocation de mémoire appelée sde_alloc
. Il simule la modalité
dans laquel la mémoire est allouée à l’aide de l’allocateur standard, c’est-à-dire des fonctions malloc
et free
.
Le devoir est individuel. Toute tentative de copier entraînera 0p pour les devoirs. On utilisera un système automatisé pour détecter le copiage. Si on a des doutes, on va vous adresser des questions supplémentaires concernant le devoir.
Si vous avez des questions concernant le devoir, posez-les en publiant un issue sur le github repository avec le format [busybox] <le titre de votre question> . Vous aurez besoin d'un compte github pour publier des questions.
Si vous voulez recevoir un e-mail lorsque des problèmes sont signalés ou lorsqu'il y a de nouveaux messages, accédez au site github repository et cliquez sur Watch.
Le but de ce devoir est d’implémenter un utilitaire capable d'exécuter des commandes de type Linux bash.
Pour résoudre le devoir, vous allez réaliser un script de Python qui reçoit comme arguments la commande qu'on désire d'exécuter, suivie par ses paramètres. Le script exécutera la commande et après il finira son exécution.
Exemple:
python busybox.py cp file folder
En ce qui suit, on va définir les commandes supportées par l'utilitaire, ainsi que le comportement caractéristique et les parametres acceptés. Pour toute autre commande ou pour un format différent, le script va afficher le message Invalid command et il va retourner la valeur 1.
Si la commande reçue par l'utilitaire a été exécutée sans erreur, le script va retourner la valeur 1. Si non, il va retourner la valeur 1.
Les parametres qui ont la forme [param] sont optionnels.
Les commandes supportées par l'application mini-busybox sont:
Exemple:
$ python busybox.py pwd /home/pi/my_directories
Exemple:
$ python busybox.py echo a b c a b c $ python busybox.py echo -n a b c a b c$
Exemple:
$ python busybox.py cat file1 Text in file1 $ python busybox.py cat file2 Text in file 2 $ python busybox.py cat file1 file2 Text in file1 Text in file 2
Exemple:
python busybox.py mkdir my_drectory python busybox.py mkdir my_drectory1 my_drectory2 my_drectory3
Exemple:
python busybox.py mv my_file my_directory python busybox.py mv my_directory1 my_drectory2
Exemple:
python busybox.py ln my_file my_file_link python busybox.py ln -s my_file my_file_link3
Les devoirs doivent être téléchargés sur vmchecker. Connectez-vous avec votre nom d'utilisateur moodle, sélectionnez le cours Systemes d'Explotation (FILS) et téléchargez l'archive de devoir.
Le fichier readme a le format suivant:
Nom complet Groupe Une explication comment vous avez écrit le devoir, ce que vous avez utilisé, les idées principales.
Pour télécharger votre devoir, suivez les instructions suivantes:
NE PAS inclure les fichiers objets (*.o) et le fichier executable (Suggestion: utilisez make clean pour les supprimer avant d’archiver le devoir).
Lorsque l'archive est téléchargée, vmchecker va exécuter:
unzip archive.zip homework cd homework make build make run