Bon alors, on commence par le lien :
http://f.dorin.free.fr/os.tar
Ensuite, les explications du pourquoi ca marchait pas :
1) Le kernel est en C++, et non en C. Le truc avec _ ne marche que pour le C. En C++, c'est plus compliqué, à cause de la surcharge des fonctions.
Si on gardait le même système qu'en C, toutes les fonctions surchargées pointeraient vers la même fonctions dans le fichier en asm !
Je n'explique par les détails de la génération des noms de fonctions et de variables en C++, car je ne sais moi-meme pas les générés. J'utilise "objdump -t" puis je cherche ce qu'il me faut !
2) Les fonctions INLINE doivent se trouver, non pas dans un fichier .cpp, mais bel et bien de l'header .h ! En effet, les fonctions INLINE sont automatiquement remplacées. C'est une sorte de macro, mais avec la vérification du typage. Si tu mets ca dans un fichier .cpp, lors de la génération du fichier objet, ton fichier sera vide !
Pour que les fonctions soient remplacées, il est nécessaire de mettre le code des fonctions inline dans le fichier .h.
Petite note au passage : les fonctios inline sont les seules dont le code doit apparaitre dans un fichier .h. Ce n'est pas faut de mettre le code d'une fonction non inline, mais bon, c'est pas propre.
3) Dans le tar, il y a un petit fichier makefile, fait vite fait mal fait.
- make clean pour virer les fichiers .o
- make pour créer kernel.bin
4) Il faut définir un point d'entré, grace à l'option -e ou --entry
parce que sinon, bah c'est pas bon !
5) j'ai virer le --oformat binary, car chez moi, cela me créer des erreur (bon, je suis sous cygwin aussi

)
6) je crois que c'est tout ^^
Bonne programmation !