Commençons!
Clangage C et assemblage x86
Bien sûr, vous n'avez besoin que d'une simple fondation d'assemblage. En ce qui concerne le langage C , vous n'avez pas besoin de beaucoup de connaissances pour comprendre le processus des fichiers source aux fichiers exécutables.
Commandes linux de base
Dans la compilation simple du noyau, nous avons utilisé certains outils sous linux , tels que nasm , et bien sûr, il y en a aussi sous windows , y compris gcc . Mais le processus de compilation se fait dans linux .
Quels outils utiliserons-nous?
Notepad++ , sublime , etc., le bloc-notes le plus simple est OK.sublime lui-même peut être affiché sous forme 16 , et la machine virtuelle dispose également d'outils pour nous aider à analyser.linux , nous utilisons Ubuntu i386 ici. Besoin d'installer des outils nasm , vim , gcc , readelf , etc.Bien sûr, vous n'avez pas à vous inquiéter. Lorsque vous utilisez ces outils ou matériaux, il y aura des hyperliens dans l'article, vous pouvez le télécharger et le revoir. Dans le même temps, il y a aussi beaucoup d'informations sur Internet à lire.
Quel est le résultat final?
Enfin, bien sûr, ce n'est pas un système d'exploitation très complet. Cela ressemble plus à une exploration et à une compréhension de la recherche de OS , ainsi qu'à la relation entre le langage C et l'assemblage, et enfin, c'est une compréhension de la façon dont le matériel et les logiciels y traitent.
En 7 parties, nous n'avons terminé qu'à l'alimentation et à la mise sous tension, en chargeant le secteur de démarrage principal, puis en chargeant plus d'informations en mémoire. Enfin, nous avons simplement réalisé l'entrée du mode réel au mode protégé. C'est tout, mais le prototype du système d'exploitation est à peu près le même.
Tout au long du processus, nous avons fait référence à certaines vidéos et manuels électroniques
[1] "Système d'exploitation fait maison 30 jours"
[2] "Implémentation d'un système d'exploitation Oranges "
[3] 51CTO
etc.
La référence principale est les livres électroniques [2] . Le contenu dans [1] est plus complet et le résultat final est plus complet.
Les fichiers et notes source sont téléchargés sur GitHub ensemble. Si vous avez des questions, vous pouvez également me contacter à [email protected] . Chaque dossier est une structure indépendante et les fichiers binaires compilés ne sont pas téléchargés, mais le code source et les outils sont téléchargés.