Aller au contenu principal
Retour au récit
Chapitre IV2024Archivé

Rendre la main

Un shell POSIX reconstruit depuis zéro, en C

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é
  1. 01Une spécification écrite vaut mieux que trois interprétations orales.
  2. 02Un projet se découpe par couches, pas par personnes.
  3. 03Ce qu’on croit connaître par usage, on ne le connaît pas.
Ce qui a résisté
  1. 01Une norme POSIX dense, où chaque cas limite est un test qui échoue.
  2. 02Faire converger les branches de l’équipe sur une base commune sans casser l’existant.
Conçu et développé à Paris. Next.js, TypeScript, beaucoup de scroll. Dédicace à Claude.© 2026 Yohan Canac