fsh est un interpréteur de commandes Unix complet développé en C, conçu dans le strict respect des spécifications de l'API standard POSIX (gestion des processus, signaux et redirections de flux).
- Exécution et Contrôle de Processus :
- Lancement des exécutables Unix via la combinaison
fork()etexecvp(). - Surveillance et synchronisation des processus enfants via
waitpid().
- Lancement des exécutables Unix via la combinaison
- Pipelines et Redirections de Flux :
- Pipelines multi-commandes arbitrairement longs (
cmd1 | cmd2 | cmd3) via la primitive systèmepipe(). - Redirections d'entrée/sortie standard et d'erreur (
<,>,>>,2>) avec duplication de descripteurs de fichiers viadup2().
- Pipelines multi-commandes arbitrairement longs (
- Gestion Robuste des Signaux POSIX :
- Interception des interruptions clavier
SIGINT(Ctrl+C) pour ne pas tuer le shell parent. - Capture et traitement asynchrone de
SIGCHLDpour éliminer systématiquement la création de processus zombies.
- Interception des interruptions clavier
- Structures de Contrôle Avancées :
- Support natif des boucles itératives
for var in list ; do ... done. - Évaluation de conditions
if [ ... ] ; then ... else ... fi.
- Support natif des boucles itératives
fsh.c: Boucle principale d'évaluation REPL (Read-Eval-Print Loop) et analyse syntaxique de la ligne de commande.externe.c: Gestion des commandes externes, résolution duPATHet exécution sous processus enfants.for.c: Moteur d'interprétation et d'exécution des bouclesfor.free.c: Gestion rigoureuse de la mémoire et libération des structures allouées (zéro fuite mémoire Valgrind).
Un compilateur C (gcc ou clang) et l'outil make sur environnement Linux / Unix.
git clone https://github.com/Radouane-ANI/POSIX-Unix-Shell-C.git
cd POSIX-Unix-Shell-C
make./fsh- Radouane Aouini — Master Cryptologie, Calcul Haute Performance et Algorithmie (CCA) (LinkedIn)
