Comment créer un système d'exploitation informatique (avec des images)

Table des matières:

Comment créer un système d'exploitation informatique (avec des images)
Comment créer un système d'exploitation informatique (avec des images)

Vidéo: Comment créer un système d'exploitation informatique (avec des images)

Vidéo: Comment créer un système d'exploitation informatique (avec des images)
Vidéo: Passer de Windows 7 à Windows 8 (Sans formater) 2024, Peut
Anonim

Le système d'exploitation permet à l'utilisateur d'interagir avec le matériel informatique. Le système est composé de centaines de milliers de lignes de code. Habituellement, le système d'exploitation est créé à l'aide des langages de programmation C#, C, C++ et assembleur. Le système d'exploitation vous permet de parcourir votre ordinateur tout en sauvegardant et en exécutant des commandes. Ne pensez pas que la création d'un système d'exploitation est facile. Il faut beaucoup de connaissances pour le faire.

Étape

Créer un système d'exploitation informatique Étape 1
Créer un système d'exploitation informatique Étape 1

Étape 1. Tout d'abord, apprenez à programmer

Le langage d'assemblage est très important; il est fortement recommandé d'apprendre un autre langage complémentaire de haut niveau tel que le langage C.

Créer un système d'exploitation informatique Étape 2
Créer un système d'exploitation informatique Étape 2

Étape 2. Décidez du support que vous souhaitez utiliser pour charger le système d'exploitation

Ce support peut être un lecteur de CD, un lecteur de DVD, un lecteur flash, un disque dur, une disquette ou un autre PC.

Créer un système d'exploitation informatique Étape 3
Créer un système d'exploitation informatique Étape 3

Étape 3. Définir l'idée de base d'un SO

Par exemple, sous Windows, l'idée centrale est une interface graphique facile à utiliser et beaucoup de sécurité.

Créer un système d'exploitation informatique Étape 4
Créer un système d'exploitation informatique Étape 4

Étape 4. Déterminez la plate-forme de processeur que votre système d'exploitation prendra en charge

IA-32, ARM et x86_64 sont les plates-formes les plus courantes pour les ordinateurs personnels. Donc, tous sont votre meilleur choix.

Créer un système d'exploitation informatique Étape 5
Créer un système d'exploitation informatique Étape 5

Étape 5. Décidez si vous préférez tout faire vous-même à partir de zéro, ou existe-t-il déjà un noyau sur lequel vous aimeriez vous baser

Par exemple, Linux from scratch est un projet pour les personnes qui souhaitent créer leur propre distribution Linux.

Créer un système d'exploitation informatique Étape 6
Créer un système d'exploitation informatique Étape 6

Étape 6. Décidez si vous utiliserez votre propre chargeur de démarrage ou un pré-construit tel que le Grand Unified Bootloader (GRUB)

Encoder vous-même le chargeur de démarrage nécessitera une connaissance approfondie du matériel et du BIOS. Par conséquent, cette étape peut entraver le calendrier de programmation réel du noyau.

Créer un système d'exploitation informatique Étape 7
Créer un système d'exploitation informatique Étape 7

Étape 7. Décidez du langage de programmation à utiliser

C'est bien d'avoir un système d'exploitation dans un langage comme Pascal ou BASIC, mais vous devriez utiliser C ou Assembly. L'assemblage est très nécessaire, car certaines parties importantes d'un système d'exploitation l'exigent. D'autre part, le langage C++ contient des mots-clés qui nécessitent l'exécution d'autres SO complets.

Pour compiler un système d'exploitation à partir de code C ou C++, vous utiliserez bien sûr l'un ou l'autre compilateur. Il est donc judicieux de consulter le guide d'utilisation/manuel/documentation du compilateur C/C++ de votre choix, qu'il soit inclus dans le logiciel ou disponible sur le site du distributeur. Vous devez connaître beaucoup de choses compliquées sur le compilateur et, pour le développement C++, vous devez connaître le schéma de manipulation du compilateur et son ABI. Vous devez comprendre les différents formats exécutables (ELF, PE, COFF, binaire de base, etc.) et comprendre que le format exclusif de Windows, PE (.exe), est protégé par le droit d'auteur

Créer un système d'exploitation informatique Étape 8
Créer un système d'exploitation informatique Étape 8

Étape 8. Définissez votre interface de programmation d'application (API)

Une bonne API parmi laquelle choisir est POSIX car elle est bien documentée. Tous les systèmes Unix ont au moins une prise en charge partielle de POSIX. La connexion des programmes Unix à votre système d'exploitation devrait donc être facile.

Créer un système d'exploitation informatique Étape 9
Créer un système d'exploitation informatique Étape 9

Étape 9. Décidez de votre conception

Il existe un noyau monolithique et un micro-noyau. Les noyaux monolithiques implémentent tous les services dans le noyau, tandis que les micro-noyaux ont de petits noyaux regroupés avec des services de déploiement de démon utilisateur. En général, les noyaux monolithiques sont plus rapides, mais les micronoyaux ont une meilleure isolation des pannes et une meilleure fiabilité.

Créer un système d'exploitation informatique Étape 10
Créer un système d'exploitation informatique Étape 10

Étape 10. Envisagez de vous développer et de travailler en équipe

De cette façon, il faut moins de temps pour résoudre plus de problèmes, ce qui accélérera probablement la création d'un meilleur système d'exploitation.

Créer un système d'exploitation informatique Étape 11
Créer un système d'exploitation informatique Étape 11

Étape 11. N'effacez pas complètement votre disque dur

N'oubliez pas que la suppression d'un lecteur effacera toutes les données qu'il contient de manière irréversible ! Utilisez GRUB ou un autre gestionnaire de démarrage pour doubler démarrer votre système avec un autre système d'exploitation jusqu'à ce que votre système d'exploitation soit pleinement fonctionnel.

Créer un système d'exploitation informatique Étape 12
Créer un système d'exploitation informatique Étape 12

Étape 12. Commencez petit

Commencez par de petites choses comme afficher du texte et faites une pause avant de passer à des choses comme la gestion de la mémoire et le travail composé. Assurez-vous également de créer les versions 32 bits et 64 bits.

Créer un système d'exploitation informatique Étape 13
Créer un système d'exploitation informatique Étape 13

Étape 13. Conservez une sauvegarde du dernier code source fonctionnel

Cette étape est utile en tant que sauvegarde en cas de problème avec la version actuelle de SO ou de développement. Si votre ordinateur plante et ne démarre pas, c'est une bonne idée d'avoir une deuxième copie avec laquelle travailler afin de pouvoir résoudre le problème.

Créer un système d'exploitation informatique Étape 14
Créer un système d'exploitation informatique Étape 14

Étape 14. Pensez à tester votre nouveau système d'exploitation avec une machine virtuelle

Au lieu de redémarrer votre ordinateur chaque fois que vous apportez des modifications ou après avoir envoyé des fichiers de votre ordinateur de développement à votre machine de test, vous pouvez utiliser une application de machine virtuelle pour exécuter votre système d'exploitation pendant que votre système d'exploitation actuel est en cours d'exécution. Les applications VM actuelles incluent: VMWare (qui a également un produit serveur disponible gratuitement), des alternatives open source, Bochs, Microsoft Virtual PC (non compatible avec Linux) et Oracle VirtualBox.

Créer un système d'exploitation informatique Étape 15
Créer un système d'exploitation informatique Étape 15

Étape 15. Lancez la "release candidate" ou la version bêta

Cette étape permettra à l'utilisateur de vous informer des problèmes potentiels avec votre système d'exploitation.

Créer un système d'exploitation informatique Étape 16
Créer un système d'exploitation informatique Étape 16

Étape 16. Le système d'exploitation doit également être convivial

Assurez-vous d'ajouter des fonctionnalités conviviales, faites-en une partie intégrante de votre conception.

Des astuces

  • Vérifiez les blocages potentiels et autres bogues. Les bogues, les blocages et d'autres problèmes affecteront le projet de construction de votre système d'exploitation.
  • Assurez-vous de mettre en œuvre des fonctionnalités de sécurité en priorité si vous souhaitez que le système fonctionne correctement.
  • Utilisez des sites Web comme OSDev et OSDever pour vous aider à développer votre propre système d'exploitation. Veuillez noter que dans la plupart des cas, la communauté OSDev.org sera plus qu'heureuse si vous utilisez leur wiki et ne rejoignez pas le forum. Si vous décidez de rejoindre un forum, il y a une condition préalable: vous devez vraiment connaître le C ou le C++, et le langage assembleur x86. Vous devez également comprendre les concepts de programmation généraux et complexes tels que les listes chaînées, les files d'attente, etc. La communauté OSDev, dans ses règlements, déclare explicitement que sa communauté n'est pas créée pour nourrir de nouveaux programmeurs.
  • Ne pas adhérer avec le forum OSDev.org puis posez la question évidente. Il vous sera seulement demandé de lire le guide. Lisez Wikipédia et les instructions pour tout équipement que vous souhaitez utiliser.
  • Si vous essayez de développer un système d'exploitation, vous êtes définitivement considéré comme le "dieu" de la programmation.
  • Vous devez également avoir lu le manuel du processeur pour l'architecture de processeur que vous avez sélectionnée; que ce soit x86 (Intel), ARM, MIPS, PPC, etc. Les manuels des architectures de processeurs sont faciles à trouver grâce à une recherche Google ("Manuel Intel", "Manuel ARM", etc.).
  • Une fois tous les travaux de développement terminés, décidez si vous souhaitez publier le code en tant que code ouvert ou par copyright.
  • Ne commence pas un projet de système d'exploitation pour commencer à apprendre la programmation. Si vous ne connaissez pas parfaitement le C, le C++, le Pascal ou un autre langage approprié, y compris la manipulation de pointeurs, la manipulation de bits de bas niveau, le décalage de bits, les langages d'assemblage en ligne, etc., vous n'êtes pas prêt pour le système d'exploitation développement.
  • La création d'une toute nouvelle partition pour « étendre » SO pourrait être une bonne option.
  • Si vous voulez un moyen simple, pensez aux distributions Linux comme Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD ou SUSE Studio et SUSE KIWI. Cependant, le système d'exploitation que vous créez appartient à la société qui a démarré le service en premier (bien que vous ayez le droit de le distribuer librement, de le modifier et de l'exécuter comme vous le souhaitez sous GPL).

Avertissement

  • Vous n'obtiendrez pas un système d'exploitation complet dans les deux semaines. Commencez avec un SO bootable, puis passez à des choses plus cool.
  • L'écriture négligente de votre système d'exploitation sur un disque dur peut l'endommager complètement. Fais attention.
  • Si vous faites quelque chose qui n'est pas recommandé, comme écrire des octets aléatoires sur des ports d'E/S aléatoires, vous ferez planter votre système d'exploitation et (en théorie) pourriez brûler votre matériel.
  • Ne vous attendez pas à ce que le système d'exploitation soit facile à construire. Il y a beaucoup d'interdépendances compliquées. Par exemple, pour créer un système d'exploitation capable de gérer plusieurs processeurs, votre gestionnaire de mémoire doit disposer d'un mécanisme de « verrouillage » pour empêcher plusieurs processeurs d'accéder à la même ressource en même temps. Le « verrou » utilisé pour cela nécessiterait un ordonnanceur pour s'assurer qu'un seul processeur accède aux ressources critiques à un moment donné et que tous les autres doivent attendre. En fait, l'ordonnanceur dépend de la présence du gestionnaire de mémoire. Ceci est un exemple de dépendance sans issue. Il n'y a pas de méthode standard pour résoudre ce genre de problème; chaque programmeur de système d'exploitation est censé être suffisamment compétent pour connaître sa propre façon de le gérer.

Ressources additionnelles

  • Directives: Linux From Scratch
  • Chargeur de démarrage: GRUB
  • Applications de machines virtuelles: Bochs, VM Ware, XM Virtual Box.
  • Manuel du processeur: manuel Intel
  • Sites de développement SO: OSDev, OSDever

Conseillé: