corectionsujets

This commit is contained in:
2026-10-23 10:58:44 +02:00
parent c4a705fac0
commit 48728bb4bd
4 changed files with 113 additions and 77 deletions

View File

@@ -28,11 +28,11 @@ Visuels : [C1](captures/01-couverture-42.png), [C2](captures/02-habillage-page.p
Bienvenue dans le premier projet Kernel from Scratch.
Enfin du vrai code. Le sujet suppose qu’on a été agacé par le projet noyau Linux. Dans les sujets Kernel from Scratch, on écrit un noyau from scratch, sans logiciel existant, sans API, ni rien de ce genre.
Enfin du vrai code. L’auteur est à peu près sûr qu’on a été agacé par le projet noyau Linux. Dans les sujets Kernel from Scratch, on écrit un noyau from scratch (no way ?), sans logiciel existant, sans API, ni rien de ce genre.
Une fois ces projets finis, sur les épaules de cet OS non révolutionnaire, on aura le droit de rire des développeurs Javascript ordinaires, qui, de toute évidence, ne savent rien coder.
Plus sérieusement, ces compétences de programmation noyau sont peu répandues. Prendre le temps de comprendre chaque point. On ne se considère pas « Kernel developer » si on ne connaît que les drivers ou les syscalls, de la même façon qu’un sysadmin ne connaît pas que iptables ou l’installation de logiciels. C’est un ensemble de compétences.
Plus sérieusement, ces compétences de programmation noyau sont peu répandues dans le monde de l’informatique. Prendre le temps de comprendre chaque point. On ne se déclare pas « Kernel developer » quand on ne connaît que les drivers ou les syscalls, de la même façon qu’un sysadmin ne connaît qu’iptables ou l’installation de logiciels. C’est un paquet de compétences.
Le Kernel From Scratch est découpé en plusieurs projets, chacun sur un aspect précis. Tous sont liés. En codant ces fonctionnalités, garder un noyau souple, et des fonctions qui s’emboîtent. La moitié du temps passé sur ces projets consistera à relier les différents aspects du noyau.
@@ -50,7 +50,7 @@ Bonne chance, et surtout, s’amuser.
- Du code basique pour afficher des choses à l’écran
- Un noyau « Hello world » basique
Le sujet dit que ce n’est pas tant de code que ça. C’est une introduction au développement noyau.
En fait, ce n’est pas tant de code que ça. Ce sujet est une introduction au développement noyau. « A (wo)man must learn. »
## III. Instructions générales
@@ -98,7 +98,7 @@ Attention : on CAN utiliser le binaire `ld` de l’hôte, mais on CANNOT utilise
### III.4 Architecture
L’architecture i386 (x86) est obligatoire.
L’architecture i386 (x86) est obligatoire (on pourra remercier l’auteur plus tard).
### III.5 Documentation
@@ -124,7 +124,7 @@ Pour la partie lien, créer un fichier linker avec le GNU linker (`ld`). « Some
### IV.0.2 Makefile
Le Makefile doit compiler tous les sources avec les bons flags et le bon compilateur. Le noyau utilisera au moins deux langages (ASM et celui qu’on choisit), donc les règles du Makefile doivent suivre.
Le Makefile doit compiler tous les sources avec les bons flags et le bon compilateur. Le noyau utilisera au moins deux langages (ASM et celui qu’on choisit), donc il faut écrire les règles correctement. Le PDF glisse ici : `make (<- joke)`.
Après compilation, tous les objets sont liés pour produire le binaire final du noyau (cf. partie Linker).
@@ -145,7 +145,7 @@ Encadré : le bonus n’est évalué que si l’obligatoire est PERFECT. Perfect
Rendre le travail dans le dépôt GiT, comme d’habitude. Seul le travail présent dans le dépôt est noté en soutenance.
Il faut rendre le code, un Makefile et une image virtuelle basique pour le noyau.
Attention à cette image : le noyau n’en fait encore rien, inutile qu’elle soit énorme. 10 MB est la borne supérieure.
Attention à cette image (`Carefull` dans le PDF) : le noyau n’en fait encore rien, inutile qu’elle ait la taille d’un éléphant. 10 MB est la borne supérieure. « deal with it. »
---