|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Bonjour,
j'ai le plaisir de vous annoncer la naissance d'un petit tutoriel qui explique comment programmer un noyau from scratch : ici Mon but a été de faire le plus didactique possible, j'ai donc évité au maximum d'alourdir le code du noyau afin que les concepts implémentés soient clairement mis en évidence. Ce noyau n'est évidement pas terminé, il manque beaucoup de choses, mais mon but est seulement d'expliquer comment mettre en oeuvre certains éléments clefs : la segmentation, la pagination, les interruptions, le multi-tâche, etc. Il y a sans doute aussi des explications peu claires, des typos, des erreurs... et j'attends votre retour et vos critiques. En bref, tout ce qui peut permettre d'améliorer ce tutoriel sera bien venu En vous souhaitant une bonne lecture !
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
J'ai implémenté le boot de Pépin avec Grub.
Le chapitre décortiquant les mécanisme du boot est encore en cours d'écriture mais il comprend déjà : - le code source intégral de Pépin - la description du nouveau modèle d'allocation de la mémoire - la façon de générer une image de disquette avec Grub
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() Étudiant Inscription : juillet 2007 Messages : 472 ![]() |
J'ai lu un peu, ça a l'air d'être du beau boulot !
![]() Par contre ça m'a surpris un peu qu'il n'y ait pas d'introduction à bochs alors qu'il n'est pas évident à utiliser.
__________________
:wq |
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Merci Dapounet,
Oui, je suis d'accord sur Bochs. C'est un petit peu difficile à paramétrer correctement au début et justement je me demandais si il fallait que j'évoque le sujet... et bien la réponse semble être "oui" Je vais ajouter des explications dans l'annexe spécifique et au début du tuto.
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() ![]() François conception mécanique Inscription : janvier 2005 Messages : 330 ![]() |
Salut,
Ce document existe-t-il en format pdf ? c'est typiquement le truc que j'aime lire le soir au plumard a+ Francois |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Hélas non, car j'ai édité tout directement sur le wiki (parceque c'est pratique et aussi par flemme d'utiliser docbook
En revanche, c'est possible d'imprimer à partir du navigateur avec le menu 'print'. Le résultat ne vaut pas un beau pdf généré à partir de latex, mais bon... ça permet d'être lu au lit
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#7 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Bonsoir tout le monde,
en allant sur le Site du Zéro, je me suis rendu compte que certains rencontraient des difficultés avec mon tutoriel. Si certaines explications vous paraissent limpides comme la nuit ou bien que le code présenté refuse obstinément de fonctionner, ça n'est pas un effet voulu de ma nature sournoise et perverse mais bien un problème à corriger ![]() N'hésitez donc pas à me le signaler, car c'est votre retour qui me permet d'améliorer ce tuto. Voili, voilà... @plouf !
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#8 | ||
|
Candidat au titre de Membre du Club
![]() Lycéen Inscription : février 2008 Messages : 12 ![]() |
Citation:
J'ai eut un probleme avec le secteur de boot moi aussi J'ai découvert que le probleme venait en fait de mon utilisation de Qemu. (je sais c'est le mal mais je me suis jamais embeté avec bochs, promis je m'y met Et en lisant le topic de qqn qui avait le même problème je me suis dit que c'était la honte de pas réussir à faire marcher ce truc. (ce n'est qu'un simple bootsector) Alors j'ai cherché encore un peu et j'ai posté ma solution , je cite : Citation:
|
||
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Merci pour l'astuce
Je suis tout de même un peu étonné car en bas du premier chapitre il y a la ligne de commande à utiliser pour tester avec Qemu. Cette ligne ne fonctionnait pas dans votre cas ?
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Lycéen Inscription : février 2008 Messages : 12 ![]() |
Ah ok vous avez indiqué la ligne de commande à utiliser à la fin du 1er exemple....
Honte à moi...(comme on peut faire marcher le premier secteur de boot en faisant simplement ouvrir/fichier.bin :/) Puis-je suggérer de mettre la ligne de commande avant l'image afin que d'autres boulets comme moi ne se fassent pas avoir? (il me semble que d'autres personnes ont eut le même problème, notamment sur le sdz.) Sinon bon courage pour la suite, votre site est excellent. |
|
|
00
|
|
|
#11 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Merci pour le message et la suggestion
Je vais faire le remplacement dans le chapitre pour que ce soit plus clair !
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#12 |
|
Candidat au titre de Membre du Club
![]() Lycéen Inscription : février 2008 Messages : 12 ![]() |
Tiens je viens de refaire un test pour voir ou ca n'allait pas :
Le n°4 si l'on avait pas lu la ligne de commande pour qemu et qu'on utile qemu. (ou qu'on ne sait pas utiliser bochs ) Le n°7 (et le 6 aussi, mais j'ai testé avec l'archive du site). En utilisant le makefile et en faisant comme avant : ca ne marche pas. (pas de disque bootable selon qemu, si je test pour de vrai l'ordi ne s'occupe même pas de la disquette.) Egalement un truc (je suis embêtant je sais), quand tu parle du noyau en C, tu n'expliques pas comment cela se fait que l'on puisse programmer en C. Il est également possible de programmer un noyau avec autre chose que du C il me semble. Cela pourrait être utile de le préciser. Pour résumer : le code est super clair mais, personnellement, je trouve qu'on peut avoir du mal a lancer l'os /secteur de boot. (Je n'ai aucune difficulté avec le code mais, c'est bête à dire, j'ai beaucoup plus de mal à mettre le tout sur une disquette ou dans une image faite pour bochs/qemu ^^) Voilà. Je dis cela pour que tu comprennes un peu mieux ce qui peux ne pas aller à la lecture pour que tu puisse améliorer tes tutos si tu le souhaites. (au passage, je précise que je ne suis qu'un geek de 16 ans alors peut-être que tu vises un publique plus vieux et expérimenté, dans ce cas mes remarques ne sont peut-être pas à prendre en considération. ) Encore bon courage |
|
|
00
|
|
|
#13 |
|
Membre expérimenté
![]() Étudiant Inscription : juillet 2007 Messages : 472 ![]() |
De temps j'obtiens des pages d'erreur de Free quand j'essaie de lire le tutoriel. Pourquoi ne pas demander un hébergement sur Développez ?
__________________
:wq |
|
|
00
|
|
|
#14 | |
![]() ![]() ![]() |
Citation:
__________________
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell] |
|
|
00
|
|
|
#15 |
|
Membre actif
![]() Inscription : juillet 2008 Messages : 145 ![]() |
Je confirme ce que dit Revan76: chez moi, la disquette boote mais ne lance pas le secteur du noyau.
|
|
|
00
|
|
|
#16 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Bonjour,
pour que j'essaye de reproduire le problème, est-ce que je pourrais avoir la liste de commandes permettant de générer l'image de la disquette, le fichier de configuration bochs et le fichier de log généré par bochs ?
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#17 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Bonjour tout le monde
Les 17 premiers chapitres du tutoriel ont été revus et corrigés ainsi que le code correspondant. J'ai essayé de rendre les explications plus fluides et plus claires, en évitant au maximum les omissions. J'en ai également profité pour retoucher le code illustrant chaque chapitre afin qu'il y ait davantage de cohérence dans l'ensemble (et quelques petits bugs ont été corrigés au passage). Je suis bien évidement à l'écoute de vos suggestions et remarques concernant les éventuels bugs, incohérences, etc. Bonne lecture !
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#18 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Bonjour à tous,
je viens de boucler le chapitre 18 sur la gestion de la mémoire. Même si j'ai essayé de faire au plus simple, c'est un chapitre un peu long et plutôt compliqué. N'hésitez donc pas à me signaler les points obscurs ou manquant de détail. Bonne lecture ! Arnauld
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
|
|
#19 |
|
Invité de passage
![]() Inscription : août 2002 Messages : 4 ![]() |
Pour ceux que cela interesse, cela fait longtemp que j'essaie d'écrire un petit OS sans aucune prétention.
Je n'ai pas abouti mais cela m'a permis de progresser sur la connaissance du mode de fonctionnement des PC. Pour ma part, j'utilise Bochs ou VmWare pour l'émulation. Pour la construction de l'image, j'utilise WinImage. Pour les personnes qui désirent utiliser Bochs et WinImage, je peux les aider. Je désire reprendre cette activité en formant un petit groupe. Merci de me dire si cela vous intéresse. Dans ce cas, je me propose de commencer par un secteur de boot n'utilisant pas Grub. Merci de votre réponse et à bientôt. Cordialement, Krys. |
|
|
00
|
|
|
#20 |
|
Membre actif
![]() Inscription : mai 2008 Messages : 157 ![]() |
Bonjour Krys,
je t'encourage vivement dans ton projet ! Sinon, est-ce que tu as déjà une idée du type de noyau (monolithique, micro noyau...) et du langage de programmation ?
__________________
Programmer son propre noyau, une introduction avec Pépin |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com