Créer un système d'exploitation

Les systèmes d`exploitation permettent aux personnes d`interagir avec le matériel d`un ordinateur ; ils se composent de centaines de milliers de lignes de code. Ils sont généralement créés avec des langages de programmation C#, C, C++ et assembleur. Les systèmes d`exploitation vous permettent de naviguer sur un ordinateur, d`activer le stockage de données et d`exécuter des commandes. Je ne pense pas qu`il soit facile de créer un système d`exploitation. Cela demande beaucoup de connaissances.

Pas

Image intitulée Créer un système d`exploitation informatique Étape 1
1. Apprenez à programmer avant de commencer. L`assemblage est essentiel et un autre langage de programmation de haut niveau supplémentaire tel que C est fortement recommandé.
Image intitulée Créer un système d`exploitation informatique Étape 2
2. Décidez sur quel support charger votre système d`exploitation. Il peut s`agir d`un lecteur de CD, d`un lecteur de DVD, d`un lecteur flash, d`un disque dur, d`une disquette ou de tout autre PC.
Image intitulée Créer un système d`exploitation informatique Étape 3
3. Décidez de l`idée centrale du système d`exploitation. Sous Windows, par exemple, une interface graphique facile à utiliser et une sécurité renforcée sont l`idée centrale.
Image intitulée Créer un système d`exploitation informatique Étape 4
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 architectures les plus courantes pour les ordinateurs personnels, c`est donc votre meilleur choix.
Image intitulée Créer un système d`exploitation informatique Étape 5
5. Décidez si vous voulez tout construire vous-même à partir de zéro, ou s`il y a un noyau existant sur lequel vous voulez construire. Linux From Scratch est un exemple de projet pour ceux qui veulent créer leur propre distribution Linux.
Image intitulée Créer un système d`exploitation informatique Étape 6
6. Décidez si vous souhaitez utiliser votre propre chargeur de démarrage ou un existant, tel que Grand Unified Bootloader (GRUB). Étant donné que le codage de votre propre chargeur de démarrage nécessite une connaissance approfondie du matériel et du BIOS, cela peut ralentir la planification de la programmation du noyau réel.
Image intitulée Créer un système d`exploitation informatique Étape 7
sept. Décider quel langage de programmation utiliser. S`il est possible de créer un système d`exploitation dans un langage comme Pascal ou BASIC, il vaut mieux utiliser C ou Assembly. L`assemblage est absolument nécessaire car certaines parties vitales d`un système d`exploitation l`exigent. C++ d`autre part, contient des éléments de langage qui nécessitent un autre système d`exploitation complet pour s`exécuter.
Pour pouvoir compiler un système d`exploitation à partir de code C ou C++, vous avez évidemment besoin d`une sorte de compilateur. Vous devez donc lire le guide d`utilisation/manuels/documentation du compilateur C/C++ de votre choix, qu`il soit fourni avec le logiciel ou disponible sur le site Web du distributeur. Vous aurez besoin de connaître beaucoup de choses compliquées sur votre compilateur et, pour développer en C++, vous aurez besoin d`avoir une connaissance du schéma de manipulation du compilateur et de l`ABI. Vous verrez les différents formats exécutables (ELF, PE, COFF, binaire normal, etc.).), ainsi que le fait que le format natif de Windows, PE (.exe), est protégé par le droit d`auteur.
Image intitulée Créer un système d`exploitation informatique Étape 8
8. Décider quelle interface de programmation d`applications (API) utiliser. Une bonne API à choisir est POSIX car elle est bien documentée. Tous les systèmes Unix ont au moins une prise en charge partielle de POSIX, il serait donc trivial de porter des programmes Unix sur votre système d`exploitation.
Image intitulée Créer un système d`exploitation informatique Étape 9
9. Décider de la conception. Il existe des noyaux et micronoyaux monolithiques. Les noyaux monolithiques exécutent tous les services du noyau, tandis que les micro-noyaux combinent un petit noyau avec des démons utilisateur combinés qui implémentent des services. En général, les noyaux monolithiques sont plus rapides, mais les micronoyaux ont une meilleure isolation des pannes et une meilleure fiabilité.
Image intitulée Créer un système d`exploitation informatique Étape 10
dix. Envisagez de vous développer et de travailler en équipe. De cette façon, moins de temps est nécessaire pour résoudre plus de problèmes, ce qui peut produire un meilleur système d`exploitation plus rapidement.
Image intitulée Créer un système d`exploitation informatique Étape 11
11. N`effacez pas complètement votre disque dur. N`oubliez pas que l`effacement de votre lecteur supprimera de manière irréversible toutes les données! Utilisez GRUB ou un autre gestionnaire de démarrage pour configurer un double démarrage avec un autre système d`exploitation jusqu`à ce que votre propre système soit pleinement fonctionnel.
Image intitulée Créer un système d`exploitation informatique Étape 12
12. Commencer petit. Commencez par de petites choses comme l`affichage de texte et d`interruptions avant de passer aux problèmes plus importants comme la gestion de la mémoire et le multitâche. Assurez-vous également de faire une version 32 bits et 64 bits.
Image intitulée Créer un système d`exploitation informatique Étape 13
13. Conservez une sauvegarde de votre code source de travail le plus récent. Cela fournit une mesure de protection en cas de problème avec la version actuelle de votre système d`exploitation ou son développement. Si votre ordinateur tombe en panne et n`est plus en mesure de démarrer, c`est une bonne idée d`avoir une deuxième copie avec laquelle travailler afin que vous puissiez déboguer.
Image intitulée Créer un système d`exploitation informatique Étape 14
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 de transférer des fichiers de votre ordinateur de développement vers votre machine de test, vous pouvez utiliser une machine virtuelle pour exécuter votre système d`exploitation sous votre système d`exploitation actuel. Certains des programmes VM incluent VMWare (dispose également d`un logiciel serveur disponible gratuitement), l`alternative open source Bochs, Microsoft Virtual PC (non compatible avec Linux) et Oracle VirtualBox.
Image intitulée Créer un système d`exploitation informatique Étape 15
15. Libérer un « candidat de libération ».Cela permettra aux utilisateurs de vous alerter des problèmes potentiels avec votre système d`exploitation.
Image intitulée Créer un système d`exploitation informatique Étape 16
16. Un système d`exploitation peut également être convivial, alors assurez-vous d`ajouter des fonctionnalités conviviales, ce qui en fait une partie intégrante de votre conception.

Des astuces

  • Vérifiez les éventuels blocages et autres erreurs. Des erreurs, des blocages et d`autres problèmes commenceront à apparaître dans votre projet de système d`exploitation.
  • Si jamais vous voulez que votre système soit viable, assurez-vous de mettre en œuvre des fonctionnalités de sécurité comme votre priorité absolue.
  • Avec des sites Web comme OSDev et OSDever, vous pouvez développer votre propre système d`exploitation. Remarque : Dans la plupart des cas, l`OSDev.La communauté org préfère que vous consultiez son wiki pour des questions et que vous ne participiez pas au forum. Si vous décidez de rejoindre le forum, il y a des exigences : vous devez avoir une connaissance approfondie du C ou du C++ et de l`assembleur x86. Vous devez également comprendre les concepts de programmation courants et complexes tels que les listes chaînées, les files d`attente, etc. La communauté OSDev déclare expressément dans ses règles que la communauté n`est pas destinée à garder les nouveaux programmeurs.
  • `Ne pas adhérer l`OSDev.forums de l`organisation pour commencer à poser des questions évidentes juste après. Cela se traduira simplement par des réponses telles que""lire le manuel/lire le manuel". Lisez Wikipédia et les manuels des différents outils que vous souhaitez utiliser.
  • Si vous essayez de développer un système d`exploitation, il va sans dire que vous êtes censé être un dieu de la programmation.
  • Vous devez également avoir lu les manuels de processeur pour l`architecture de processeur que vous avez choisie ; que ce soit x86 (Intel), ARM, MIPS, PPC, etc. est. Les didacticiels sur l`architecture des processeurs peuvent être facilement trouvés avec une recherche Google ("Manuels Intel", "Manuels ARM" etc.).
  • Une fois que tout le développement est terminé, vous pouvez décider si vous souhaitez publier le code en open source ou en propriétaire.
  • Ne commence pas avec un projet de système d`exploitation pour apprendre la programmation. Si vous n`avez pas déjà une connaissance approfondie de C, C++, Pascal ou de tout autre langage approprié, y compris la manipulation de pointeurs, la manipulation de bits de bas niveau, le décalage de bits, le langage d`assemblage en ligne, etc., alors vous n`êtes vraiment pas prêt pour le développement de votre propre système d`exploitation.
  • Il peut être judicieux de créer une toute nouvelle partition pour le "développement" du système d`exploitation.
  • Le système d`exploitation que vous créez appartient alors à la société qui a démarré le service en premier (même si vous avez le droit de le distribuer gratuitement, de le modifier à votre guise et de l`exécuter sous GPL).

    Mises en garde

    • Vous n`aurez pas créé un système d`exploitation complet dans deux semaines. Commencez avec un système d`exploitation qui peut démarrer, puis passez aux choses amusantes.
    • Si vous faites quelque chose d`aussi malavisé que d`écrire des octets aléatoires sur des ports d`E/S aléatoires, votre système d`exploitation plantera et vous pourrez (en théorie) endommager votre matériel.
    • Ne vous attendez pas à ce qu`il soit facile de créer un système d`exploitation qui fonctionne bien. Il y a toutes sortes d`interdépendances compliquées. Par exemple, pour permettre à un système d`exploitation de gérer plusieurs processeurs, vous devrez utiliser des "mécanismes de verrouillage" de gestion de la mémoire pour empêcher plusieurs processeurs d`utiliser la même ressource/ressource en même temps. le "serrures" utilisé pour cela nécessite la présence d`un planificateur/planificateur pour garantir qu`un seul processeur peut accéder à une ressource critique à un moment donné, avec tous les autres en attente. Mais le planificateur dépend encore une fois de la présence d`un gestionnaire de mémoire. Il s`agit d`un cas de dépendance de blocage. Il n`y a pas de méthode standard pour résoudre des problèmes comme celui-ci ; chaque programmeur de système d`exploitation doit être suffisamment qualifié pour trouver sa propre façon de le gérer.
    • Une écriture imprudente de votre système d`exploitation sur le disque dur peut l`endommager complètement. Fais attention.

    Nécessités

    • Un ordinateur
    • Un CPU pour l`architecture que vous développerez
    • Mémoire suffisante (RAM) pour une machine virtuelle
    • Un système d`exploitation « hôte » (utilisé pour développer le code source de l`assembleur (et d`autres), ainsi que pour le construire et l`empaqueter alors qu`il en est encore à ses débuts, votre système d`exploitation peut éventuellement s`héberger lui-même)
    • Un éditeur de programmation à code couleur (utilisez-le si vous n`avez pas d`IDE - Integrated Development Environment)
    • Un compilateur
    • Un lecteur CD/DVD

    Оцените, пожалуйста статью