ça suppose une forme par projet où les étudiants doivent modifier un ou des aspects du noyau de façon bien précise et balisée.
C'est un truc du genre qu'on avait fait.
L'idée c'était de permettre la création d'un fichier nommé "..." dans un répertoire (bon, ça c'est possible sans rien faire), qui liste d'autres répertoires.
Si ce fichier existe, alors toute tentative d'ouverture d'un fichier ou d'exécution d'un programme rajoute la possibilité de chercher parmi les répertoires listés dans le fichier "...".
En gros lancer "commande" va chercher dans le $PATH et si on ne trouve rien, on regarde si on peut exécuter le programme dans les répertoires listés dans le fichier "...".
Faire un open("fichier") va chercher à l'ouvrir dans le répertoire courant, $CWD, et s'il ne le trouve pas, va chercher à l'ouvrir dans les répertoires listés dans le fichier "...", de façon transparente.
Donc « emacs truc.txt » va peut-être éditer un fichier truc.txt complètement ailleurs dans le système !
Sans que ça ne pose le moindre soucis, et sans qu'on puisse faire la différence.
Je laisse le soin à chacun d'imaginer les possibilités infinies de failles de sécurité, de bug, de comportements imprévisibles et de destruction du système complet.
Je m'étais seulement attaché à faire en sorte que ça ne plante pas : gaffe aux boucles infinies, trucs comme ça.
De mémoire, mon code faisait environ 300 lignes, les moins intrusives possible.
Mais quand même à un endroit ultra-sensible du kernel :)
[^] # Re: Linux est il devenu un truc de vieux ?
Posté par Yth (Mastodon) . En réponse à la dépêche 20 ans de LinuxFr.org. Évalué à 5.
C'est un truc du genre qu'on avait fait.
L'idée c'était de permettre la création d'un fichier nommé "..." dans un répertoire (bon, ça c'est possible sans rien faire), qui liste d'autres répertoires.
Si ce fichier existe, alors toute tentative d'ouverture d'un fichier ou d'exécution d'un programme rajoute la possibilité de chercher parmi les répertoires listés dans le fichier "...".
En gros lancer "commande" va chercher dans le $PATH et si on ne trouve rien, on regarde si on peut exécuter le programme dans les répertoires listés dans le fichier "...".
Faire un open("fichier") va chercher à l'ouvrir dans le répertoire courant, $CWD, et s'il ne le trouve pas, va chercher à l'ouvrir dans les répertoires listés dans le fichier "...", de façon transparente.
Donc « emacs truc.txt » va peut-être éditer un fichier truc.txt complètement ailleurs dans le système !
Sans que ça ne pose le moindre soucis, et sans qu'on puisse faire la différence.
Je laisse le soin à chacun d'imaginer les possibilités infinies de failles de sécurité, de bug, de comportements imprévisibles et de destruction du système complet.
Je m'étais seulement attaché à faire en sorte que ça ne plante pas : gaffe aux boucles infinies, trucs comme ça.
De mémoire, mon code faisait environ 300 lignes, les moins intrusives possible.
Mais quand même à un endroit ultra-sensible du kernel :)
Yth.