Créer son système d'exploitation
RésoluConcepteur -
je voulais savoir quels sont les langages qu'il faut parfaitement maîtriser afin de créer un mini système d'exploitation qui s'améliorera de jour en jour.
Et je voulais aussi savoir si il y avait un ou plusieurs tutoriels pour créer son système d'exploitation (par quoi commencer, etc...)
Je sais que la création d'un système d'exploitation est fastidieuse et complexe mais j'aimerais quand même m'y lancer, parce que c'est très intéressant.
Merci à tous pour vos futures réponses :)
- Comment créer un système d exploitation
- Comment créer un groupe whatsapp - Guide
- Comment créer un compte google - Guide
- Comment créer un compte gmail - Guide
- Restauration systeme windows 10 - Guide
- Creer un fichier .bat - Guide
19 réponses
Le fil aborde les notions et langages pour créer un mini système d'exploitation, en soulignant qu'une maîtrise du matériel et des modes de communication est une étape préalable.
Plusieurs avis soulignent l'ampleur du chantier et recommandent des ressources, notamment des tutoriels et des références en ligne, tout en prévoyant que partir de zéro peut prendre un an ou davantage.
Des liens orientent vers des pistes, notamment une page dédiée à la programmation système, des conseils sur l'étude du WebOS comme voie plus accessible, et des ressources sur l'algorithmique.
En cas de conseils pratiques, certains rappellent qu'observer le matériel et les interfaces réseau peut guider les choix et que des alternatives plus simples existent, sans conclure à une issue unique.
C'est long, fastidieux et très difficile effectivement...
Au niveau langage, je pense que le C et l'assembleur sont indispensables.
Il va aussi falloir que tu apprennes à gérer toute la partie matérielle et à créer tes propres drivers pour les périphériques...
Pour commencer, je pense qu'il faudrait décortiquer tous les éléments avec lesquels tu auras besoin d'interagir, comprendre comment communiquer avec eux, lister l'ensemble des protocoles qu'il faudra implanter et les jeux de transactions utilisés au niveau CM/CPU/CG/HDD/etc...
https://wiki.osdev.org/Expanded_Main_Page
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe ne veux pas te démoraliser, mais je pense que tu te fais de fausses idées.
Je ne crois pas que tu imagines le travail que tu vas devoir réaliser. Vu que tu pars de 0 en connaissance informatique, tu vas déjà devoir connaître parfaitement les composants d'un ordinateur et savoir comment ils fonctionnent, et sache que deux cartes graphique peuvent fonctionner totalement différemment...
Ce tutoriel pourrait te donner les bases : https://openclassrooms.com/fr/courses
Comme tu peux le lire il te faudra en moyenne 33 jours pour le lire, on va dire 4-5 mois pour le comprendre.
Par la suite, tu vas devoir réfléchir à comment faire interagir tes composants, développer une interface graphique, développer des logiciels, etc. Rien que développé un logiciel doit te prendre dans les 6 mois pour qu'il soit correctement fonctionnel et si tu t'y connais, ce qui n'est pas ton cas.
Une question, pourquoi tu veux commencer cette énorme projet alors que tu n'as aucune connaissance en développement ?
@+
tu veus que je te dise je te souhaite bonne chance.que tu puisse accomplir ton reve. ne soit pas découragé.tout est possible a celui qui croit.
Et heureusement sinon, on ferait comment avec nos ordis ;-)
C'est pour ça qu'on lui a donné des conseils.
Il faut juste qu'il se rende compte que c'est un énorme travail pour qu'il ne baisse pas les bras au bout de 3 mois parce qu'il en aura pour des années en partant de rien.
L'HTML et le CSS n'est pas vraiment des langages de développement, mais plutôt de mise en forme.
Le PHP est un langage très simple et de haut niveau. Je ne sais pas si tu comprends la différence entre le PHP et ce que tu vas devoir faire.
Connaître le PHP ne t'avance à rien. Il n'y a aucune gestion bas niveau. Dans ton OS, tu vas devoir gérer les bits, les transactions mémoires, les overflows, etc.
Bonne chance en tout cas, mais sache que pour faire un OS fonctionnelle, tu vas mettre dans les 5-10 ans.
@+
Ce lien, qui t'a déjà été donné te donne une idée de l'ampleur des connaissances à intégrer https://wiki.osdev.org/Main_Page
Un bon moyen de saisir la complexité de la tâche est d'utiliser des docs avec une présentation plus séquentielle, comme celle-ci :
http://www.brokenthorn.com/Resources/OSDevIndex.html
qui te présentent les différentes étapes et problèmes à résoudre, en commençant par le début, pour être en mesure de créer un système d'exploitation rudimentaire.
Pour utiliser un tel document, il faut déjà commencer par apprendre le C et l'assembleur (puis ... les désapprendre dans une certaine mesure, car de nombreux concepts valides lorsque tu conçois des logiciels applicatifs ne sont plus applicables quant on développe un système d'exploitation, ou on utilise par exemple les interruptions du BIOS ou la programmation directe du matériel, sans disposer des bibliothèques standard).
C'est peut-être un document comme celui-là que tu cherches.
Bon courage :-)
Dal
Un navigateur étant un logiciel applicatif, il a besoin lui-même d'un système d'exploitation pour fonctionner.
J'avoue ne pas bien comprendre.
https://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation
Dal
Ce n'est pas vraiment un système d'exploitation (vu que ça n'exploite rien du tout niveau matériel), c'est juste une interface graphique web imitant celles des OS.
Ca n'a strictement rien à voir au niveau de la démarche.
Mais c'est effectivement beaucoup (beaucoup beaucoup beaucoup) plus simple, tu passe de 10 ans de travailles à 1 mois. ;-)
Pour comprendre comment fonctionne un OS, tu te lancer dans l'aventure linux from scratch, il parrait que c'est très formateur.
Ton projet est clairement le rêve de beaucoup rien que pour l'expérience que l'on peut acquérir.
Comme ça été dit avant oui c'est possible, très long mais possible. Suffit de regarder le temps qu'a mis Linux a vraiment être fonctionnel et ensuite à être vraiment utilisable par des gens extérieurs sans trop de problème.
Comme l'a dit Alming un WebOS c'est déjà pas mal et plus "concret" à court terme du fait que les première base sont affichable au bout de quelques jours/semaines (en fonction de ce que tu veux faire, ta vitesse de programmation et de si t'es bien organisé) alors qu'un OS complet te faudra peut-être des mois pour affiché un "Hello World !" à l'écran. Mais par contre la tu pourras te dire maîtriser ton pc.
Honnêtement si tu veux mon avis commences par regarder du côté d'une installation Linux très basique, genre ArchLinux ou Ubuntu alternate. Avec ce genre de distro tu pars d'un live pour installer un noyau et tous les composants un par un à la main et ça te permet déjà de comprendre comment un OS fonctionne à haut niveau.
Ensuite si t'arrive à faire tourner un système complet comme ça, regarde du côté de Gentoo ou Slackware qui sont fourni à l'état de source ou un Linux From Scratch (rien de fourni faut se débrouiller à partir d'une documentation), donc faut compiler chaque paquet individuellement, ce qui te donnera une vue plus précise encore qu'avec Archlinux. Si t'arrives à poser un système entièrement fonctionnel là t'auras appris beaucoup de chose encore.
Franchement j'ai jamais fait de Linux From Scratch mais rien qu'en lisant une bonne partie de la docuementation c'est fou ce que j'ai appris.
Une fois que t'auras fait ça je pense que déjà t'auras une meilleurs vue d'un point de vue logiciel de ce qu'est un système d'exploitation. Ensuite tu sauras un peu plus ce dont t'auras besoin pour créer un mini OS.
Clairement si tu te lances, fait un blog ou un site pour suivre le projet parce que franchement je veux suivre (et pourquoi pas te filer un coup de main si besoin) !
Et presque plus important que la programmation, c'est surtout l'architecture d'un OS qu'il faut que tu comprenne, pour cela debian, gentoo et LFS (dans ordre de difficulter croissant) peuvent vraiment t'aider.
Sinon, si tu veut prendre peut tout de suite, tu peut jeter un oeil sur les sources de linux en les téléchargeant sur le site https://www.kernel.org/
Si les mots ont un sens, un système d'exploitation est une couche logicielle permettant aux logiciels applicatifs d'utiliser les ressources de la machine, sans avoir à programmer directement le matériel, ou utiliser directement le BIOS.
Les tâches d'un système d'exploitation au sens strict sont donc, notamment : gérer l'affichage à l'écran de caractères et de graphiques, gérer la mémoire vive, la mémoire de masse, y compris le(s) système(s) de fichie(s) supportés, l'ordonnancement des tâches, etc.
Si ce que tu te proposes de faire ne comprend pas cela, tu ne fais pas un système d'exploitation. Tu fais autre chose, et tu t'es trompé dans la formulation de ta question.
Le terme "WebOS" est l'appellation commerciale utilisée par Palm, puis par HP, pour désigner un système d'exploitation pour téléphone mobiles se basant sur un noyau Linux. Il est incorrect de dire "un WebOS". "WebOS" est une marque.
C'est désormais sous licence Apache, donc tu peux t'amuser avec si tu veux.
http://www.openwebosproject.org
Dal
Si tu t'y met de façon intensive, dans 10 / 15 ans, tu devrais avoir le niveau de faire un noyau basique avec pourquoi pas une interface texte.
Tu est allez voir les sources linux ?
tu n'es pas le premier à vouloir faire ce genre de choses.
Regarde ce qui a été fait avec bosokernel, par exemple...
Est-ce qu'avec des études, on peut apprendre ça ? Ou à l'école, quoi.
Tu peut regarder du coté des masters info, des DUT ou encore des école d'ingénieurs dans le domaines.
Renseigne toi dans un CIO ou à l'onisep.
Mais ca ne remplacera pas une formation personnel et une curiosité de tout les instants.
Mais il n'y aura pas besoin de c++ par hasard aussi ?
Et aussi, vous n'auriez pas un bon tutoriel pour le langage assembleur ?
Et je pense que tu commences mal. Avant d'apprendre les langages de programmation, commence par lister toutes les tâches que tu auras à accomplir et tous les éléments avec lequel ton OS devra dialoguer pour comprendre comment ils interagissent entre eux. Tu te rendras peut-être compte que du langage machine sera nécessaire (plus que le binaire comme le dit Alming mais je pense que son idée était celle-ci) ou que tu auras d'autres besoins...