Il s'agit d'un projet pour le sujet Systèmes d'exploitation de la deuxième année d'informatique à l'Universidad De A Coruña. Toutes les affectations se trouvent dans le dossier labAssignments avec des descriptions pour chaque fonction.
Le programme consiste en un shell similaire à ce que font bash et zsh, avec quelques fonctions incluses et également la possibilité d'exécuter n'importe quelle autre commande sur le système * nix.
Vous pouvez obtenir une liste de toutes les fonctions incluses en exécutant la commande « ayuda », et une petite description de chacune en exécutant la commande « ayuda command » étant la commande que vous souhaitez connaître. Vous pouvez également exécuter n'importe quelle autre commande installée sur votre système comme dans n'importe quel autre shell tant que le nom n'est pas en conflit avec les commandes incluses. Pour quitter le shell, vous pouvez exécuter salir , fin , bye ou exit
Vous devez avoir installé gcc sur un système d'exploitation *nix comme Linux BSD ou MacOS. Vous pouvez le compiler avec :
make
Et exécutez-le avec :
./shell
Notre code est divisé en différents fichiers pour faciliter son travail et sa compréhension.
Contient la fonction principale ainsi que les fonctions d'invite et de traitement.
Contient tous les en-têtes de chaque fonction, à l'exception de ceux spécifiques à la liste avec une petite description. Inclut toutes les bibliothèques que nous utilisons. Définit les structures et les types de données utilisés dans le code.
Nous avons choisi de n'utiliser qu'une seule implémentation d'une liste pour enregistrer différents types de valeurs spécifiées au moment de la création, vous pouvez vérifier la création de ces listes sur la fonction principale dans p4.c.
Contient la liste des commandes et leurs fonctions de base, bien que la plupart d'entre elles dépendent de fonctions auxiliaires.
Contient toutes les autres fonctions qui ne rentrent pas dans les catégories précédentes. Nous avons décidé de séparer une grande partie du code dans commands.c pour faciliter la navigation.