Sommaire | Suivant

1. Introduction

1.1 Presentation

Programmer un noyau est un bon moyen de comprendre comment fonctionne un systeme d'exploitation. Mais cela demande du temps, de la patience et des nerfs solides.
Le but de ce document est de guider tous ceux qui comme moi, un jour, on eu envie de coder un noyau, mais sans savoir par ou commencer.
Pas a pas, je vais essayer d'expliquer le fonctionnement et la programmation d'un noyau pour architecture Intel, en m'appuyant a chaque fois sur des exemples.
Je suis moi meme novice en programmation de systemes et ce document est certainement incomplet et contient peut-etre des erreurs. Vous pouvez faire parvenir toutes vos remarques a Arnauld Michelizza . Le kernel que j'ai commence a developper s'appelle "BosoKernel" (Bocal Operating System Original Kernel).

1.2 Pre-requis

Le noyau presente ici est developpe uniquement en assembleur. On ne peut faire l'impasse sur ce langage. Pour ceux qui ne savent pas programme en assembleur, il existe de nombreux sites qui proposent des tutoriaux. Un tres bon site est le site "Art of Assembly Language" .
L'assembleur pour i386 n'est pas tres dur a apprendre. Helas, pour realiser et tester des petits programmes en assembleur, le meilleur outil que je connaisse est "debug" sous DOS.
Connaitre l'architecture du processeur i386 est tres recommande pour comprendre ce document, toutefois, les notions importantes seront expliquees au fur et a mesure.

1.3 Les outils

Il faut imperativement un assembleur. J'utilise "nasm", "http://www.web-sites.co.uk/nasm/", qui a l'avantage d'etre opensource et qui est utilisable sur d'autres architectures que le i386. Ainsi, je l'utilise sur une machine sous Solaris sans aucun probleme.
Pour tester les programmes realises, le mieux est d'utiliser un emulateur de PC. J'utilise "bochs", "http://bochs.com/", qui a pour avantage de s'executer sur un grand nombre de plateformes. Utiliser un emulateur permet de tracer l'execution d'un programme pas a pas et de le deboguer plus facilement. Cet outil permet de faire l'economie d'un second PC qu'il faut sans cesse rebooter et qui rend le debogage vraiment ardu.