Bonjour,
J'aimerais apprendre à créer un système d'exploitation assez simple sans interface graphique, qui peut comprendre des commandes et lire des fichiers.
J'aimerais savoir quels languages apprendre, sur quoi faut-il me documenter et si je doit me servir d'un noyau déjà fait ou pas (comme le noyau Linux par exemple). Sachant que je connais le Java (mais je pense pas que ça me servira) et un peu le C.
Je sais qu'il faut que j'apprenne l'assembleur mais je ne sais pas lequel choisir et je crois qu'il faudrait aussi connaître le C++. Je sais aussi que cela peut prendre des semaines ou des mois.
Pour infos, je ne suis qu'en troisième mais je connais déjà plein de choses. J'arrive à comprendre l'anglais (même si je préfèrere les documentations en français :D) et me débrouille assez bien en maths.
J'ai déjà cherché des sujets sur internet mais la plupart dates de 2004-2008 et sachant que les languages de programmation ont évolué et que d'autres sont apparus...
En espérant que vous pourrez m'aider
Merci d'avance.
edit : j'ai un processeur intel i5 6400. Ça pourra peut-être servir pour le language assembleur
Développer un OS en partant de rien est vraiment très difficile, si tu hésites, cela indique que tu manque d’expérience.
Je te recommande donc déjà d'essayer de faire des programmes plus simple avant de t'attaquer à cela.
J'ai déjà fait des programmes simple comme créer des mods pour des jeux, mais j'ai envie de me documenter pour apprendre à créer un OS.
Je ne compte pas en faire un gros qui rivalisera avec Windows ou Linux. Je veux juste en faire un simple qui comprend des commandes simples (comme bash sur linux ou batch sur windows). Par exemple la commande 'echo' qui affiche un message comme Hello World !
Oui, mais un OS fait plein de choses, entre autre, la gestion de la RAM, la gestion du matériel avec les drivers (mémoire, processeur, Controleur de disque, ... ) rien que ça tu vas t'amuser pendant un moment.
Cela te prendra largement plus que 1 mois.
Désolé, je n'ai pas assez de connaissance sur le sujet pour vraiment t'aiguiller.
Il te faudra au minimum :
- Un bootloader
- Gestion des disques (SSD, HDD, USB aussi, je pense)
- Gestion de l'affichage
- Gestion de la RAM
- Gestion des E/S (clavier/écran)
- ...
Plus toute la logique pour interpréter les commandes et faire des actions.
Même si cela semble simple, il faudra le faire à un bas niveau matériel (assembleur, ou au plus haut C ).
Comme il te faudra communiquer avec le matériel, la machine de test sera importante, je te recommande une VM pour commencer (moins grave si plantage et plus facile à manipuler/deboguer).
Le minimum disque dur, ram, affichage etc.. je le savais déjà.
Pareil pour le C et l'assembleur. Je suis d'ailleurs en train de reviser entièrement tout le language C.
Je sais aussi que une machine virtuelle est plus simple car il n'y a pas besoin de redémarrer, mais en quoi cela est-il moins grave si jamais l'ordi plante ?
Car avec les traces de la VM tu pourras plus facilement tracer la source du problème.
Après comme dit dans mon message précédent, je ne connais pas bien cette partie.
Une recherche avec "how to develop simple os" donne déjà quelques pistes.
(Et si tu trouves que j'ai un peu bloqué le message, c'est que très souvent, les personnes demandant ce genre de conseils sont de grands débutants qui ne s'imaginent pas l'ampleur de la tâche)
23 mars 2018 à 09:26
Je ne compte pas en faire un gros qui rivalisera avec Windows ou Linux. Je veux juste en faire un simple qui comprend des commandes simples (comme bash sur linux ou batch sur windows). Par exemple la commande 'echo' qui affiche un message comme Hello World !
23 mars 2018 à 18:20
23 mars 2018 à 20:16
24 mars 2018 à 22:57
Désolé, je n'ai pas assez de connaissance sur le sujet pour vraiment t'aiguiller.
Il te faudra au minimum :
- Un bootloader
- Gestion des disques (SSD, HDD, USB aussi, je pense)
- Gestion de l'affichage
- Gestion de la RAM
- Gestion des E/S (clavier/écran)
- ...
Plus toute la logique pour interpréter les commandes et faire des actions.
Même si cela semble simple, il faudra le faire à un bas niveau matériel (assembleur, ou au plus haut C ).
Comme il te faudra communiquer avec le matériel, la machine de test sera importante, je te recommande une VM pour commencer (moins grave si plantage et plus facile à manipuler/deboguer).
24 mars 2018 à 23:38
Pareil pour le C et l'assembleur. Je suis d'ailleurs en train de reviser entièrement tout le language C.
Je sais aussi que une machine virtuelle est plus simple car il n'y a pas besoin de redémarrer, mais en quoi cela est-il moins grave si jamais l'ordi plante ?