C'est une question difficile à poser parce que je suis sûr que je suis sur le point d'être bombardé de haineux commentant "si je ne peux pas écrire un système d'exploitation déjà, je ne serai pas jamais être capable d'écrire un système d'exploitation ". Eh bien, j'ai lu Modern OS de Tanembaum, Linux Kernel Development, Comprendre le noyau Linux et d'autres encore je ne sais pas si je peux écrire un système d'exploitation et seulement en avançant pour en écrire un je vais me rendre compte t sais. En plus de cela, aucun des livres que je lis ne prend même la peine de décrire la séquence de démarrage/la séquence de compilation.Essayer de compiler le code du tutoriel OS Dev
Quoi qu'il en soit, je déteste être négative, mais je voudrais juste construire le code exemple du tutoriel bkerndev ci-dessous et ont un système d'exploitation absolument minimum:
http://www.osdever.net/bkerndev/index.php?the_id=90
Vous pouvez télécharger le code source associé à un format zip à partir d'ici:
http://www.osdever.net/bkerndev/bkerndev.zip
Lorsque vous essayez de compiler ce noyau que vous exécutez dans toutes sortes d'erreurs causées par le fait que certains d'entre e Le code est cassé. Un autre utilisateur a été chercher de l'aide pour ce ici débordement de pile ici:
compiling my own kernel (not from linux-kernel source)
Bien que ne pas obtenir beaucoup d'aide. J'ai corrigé ces erreurs en ajoutant l'indicateur gcc fleading-underscores et en changeant certains des types de données. Vous pouvez voir ici mon code:
http://github.com/PhillipTaylor/farmix
Le code compilera et me laisser sucessfully avec un exécutable kernel.bin mais quand je démarre en elle de grub-je obtenir:
Erreur 13: Unrecognized ou Quand je prends kernel.bin directement à partir du fichier zip de l'auteur et que je l'exécute sur mon eeepc, cela démarre très bien, donc je pense que j'ai un problème avec la compilation du code correctement. L'auteur le construit à partir d'une machine Windows, je crois, mais j'essaie de le compiler en utilisant Fedora 10 i386 avec GNU GCC 4.3 et je pense que c'est ce qui cause le problème, je vous demande comment créer un exécutable valide noyau? Ai-je manqué la bonne cible ou le mauvais format binaire?
J'apprécierais vraiment quelqu'un m'a aidée dans cette embarrassante « première étape »
Vous pourriez avoir plus de chance d'obtenir une réponse utile sur les forums OSDev: http://forum.osdev.org/ – Amber
Je ne pense pas que vous allez obtenir beaucoup de traction avec « I J'ai ce gros tas de code et ça ne marche pas. " Vous feriez mieux de poser une série de questions sur des problèmes spécifiques (avec un peu de temps de travail entre les questions: les questions de tir rapide ne seront pas appréciées non plus). – dmckee
Quelqu'un semble penser que c'est une bonne question. Maintenant, je pense qu'il travaille sur un bon problème, mais cela semble être une question inutile et peu claire. Envie de commenter? – dmckee