- Guide pratique expliquant comment développer soi-même un système d’exploitation x86
- Rédigé de manière à fournir des détails techniques sans révéler trop d’informations via des exemples de code ou des samples
- N’explique ni la théorie des systèmes d’exploitation ni le fonctionnement d’un système d’exploitation particulier
- Les premiers chapitres sont détaillés et concrets afin de permettre au lecteur de se familiariser rapidement avec l’écriture de code
- Les chapitres suivants présentent les concepts et les exigences dans les grandes lignes, en laissant au lecteur le soin de l’implémentation et de la conception
- Si vous souhaitez étudier la théorie des systèmes d’exploitation, Modern Operating Systems d’Andrew Tanenbaum est recommandé
Principaux chapitres
- Premiers chapitres
- Chapitres 2 à 3 : configuration de l’environnement de développement et démarrage du noyau OS dans une machine virtuelle → début de l’écriture du code en C
- Chapitre 4 : affichage à l’écran et sortie via port série
- Chapitre 5 : segmentation
- Chapitre 6 : interruptions et gestion des entrées
- Étapes après le développement d’un noyau fonctionnel
- Chapitre 7 : préparation de la prise en charge des applications en mode utilisateur
- Chapitres 8 à 9 : mise en place de la mémoire virtuelle via la pagination
- Chapitre 10 : allocation mémoire
- Chapitre 11 : exécution d’applications utilisateur
- Sujets avancés
- Chapitre 12 : système de fichiers
- Chapitre 13 : appels système
- Chapitre 14 : multitâche
Contexte du livre et processus de développement
- Ce livre et ce noyau OS ont été développés dans le cadre d’un cours individuel avancé au Royal Institute of Technology en Suède
- Les auteurs avaient auparavant suivi un cours de théorie des OS, mais manquaient d’expérience réelle en développement de noyau
- Ils ont ouvert un nouveau cours et rédigé ce livre afin de mettre la théorie en pratique et d’en approfondir la compréhension
- L’architecture x86 a longtemps été l’architecture matérielle la plus largement utilisée, et dispose d’une abondante documentation de référence ainsi que d’émulateurs
- La documentation sur les détails matériels était souvent complexe et difficile à comprendre
Méthode de développement
- Environ 6 semaines de travail à temps plein
- Implémentation par petites étapes avec des tests manuels à chaque étape → plus facile d’identifier l’origine des bugs
- La majeure partie du code a été écrite en pair programming → effet attendu de réduction des bugs
Public visé
- Convient aux lecteurs disposant des connaissances suivantes :
- familiarité avec UNIX/Linux et la programmation système
- familiarité avec le langage C
- compréhension des systèmes informatiques, de la notation hexadécimale, etc.
- Les débutants peuvent aussi l’utiliser comme outil d’apprentissage, mais le niveau de difficulté est élevé
1 commentaires
Avis Hacker News
J’adore l’osdev. Je ne connais pas l’objectif final, mais le fait de pouvoir créer ce que l’on veut est vraiment génial.
Beaucoup de gens recommandent leur alternative préférée, mais je reste un grand fan de Project Oberon.
Ce livre présente le défaut classique des tutoriels osdev.
Mon livre préféré sur les OS est toujours Operating Systems: Three Easy Pieces.
Merci ! Cela a l’air d’être une excellente ressource sur le sujet.
Ce commentaire évoque une vraie nostalgie des années 2000.
Le livre est bon. Cela vaut la peine de parcourir les issues sur GitHub.
J’aimerais que deux livres japonais sur le développement de systèmes d’exploitation soient traduits en anglais.
Je me demande où se trouve la documentation du petit livre rouge sur les OS.
En parlant de développement d’OS, les jeux rendent l’apprentissage amusant.