Contexte
Recréer un terminal POSIX complet : de la frappe au clavier jusqu’à l’exécution de n’importe quelle commande. En C, à quatre, en un mois, sans rien réutiliser.
Mon rôleDéveloppeur — au sein d’une équipe
Période2024
Technologies
- C
- POSIX
- Make
- Git
Le problème
Un shell paraît simple tant qu’on ne l’écrit pas. Derrière l’invite il y a un lexer, une grammaire, des redirections, des processus, des signaux — et une norme qui décrit tout cela au caractère près.
La réponse
Le projet a été découpé comme un compilateur : lecture, analyse lexicale, arbre syntaxique, exécution. Chaque couche testée seule avant d’être branchée. Le véritable apprentissage a été le workflow — branches, revues, intégration continue.
Résultats
0développeurs sur le projet
0nuits très longues
0%du langage recodé, sans exception
En images
Ce que j’en ai tiré
- 01Une spécification écrite vaut mieux que trois interprétations orales.
- 02Un projet se découpe par couches, pas par personnes.
- 03Ce qu’on croit connaître par usage, on ne le connaît pas.
Ce qui a résisté
- 01Une norme POSIX dense, où chaque cas limite est un test qui échoue.
- 02Faire converger les branches de l’équipe sur une base commune sans casser l’existant.