Créer son système d'exploitation

Résolu/Fermé
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 - 1 juil. 2013 à 12:52
 Concepteur - 19 avril 2014 à 18:18
Bonjour,

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 :)
A voir également:

19 réponses

MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
1 juil. 2013 à 13:01
Bonjour,

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...
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
1 juil. 2013 à 13:06
Merci pour ta réponse, je vais apprendre dès maintenant le C et l'assembleur.

Mais il n'y aura pas besoin de c++ par hasard aussi ?
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
1 juil. 2013 à 13:09
Ah et aussi, est-ce qu'avec ce tutoriel, je pourrai bien apprendre ce qu'il faut en C.

Et aussi, vous n'auriez pas un bon tutoriel pour le langage assembleur ?
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
1 juil. 2013 à 13:11
Voici le lien du tuto : https://openclassrooms.com/fr/courses
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
Modifié par MrYAU31 le 1/07/2013 à 15:36
C'est mon opinion mais je pense que beaucoup de dév seront d'accord avec moi. Des tutos t'enseigneront la base mais pour acquérir suffisamment de connaissances pour un tel projet, il te faudra programmer des applis toi-même en partant des plus simples en allant vers du très complexe... Pour la base, le tuto que tu donnes est suffisant.

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...
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
1 juil. 2013 à 15:38
Mais justement, je ne connais absolument rien aux os ! Déjà, en plus, ta dans phrase je ne comprends rien, ou pourrais-je me renseigner ?
0
Alming Messages postés 60 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 20 juillet 2013 13
1 juil. 2013 à 13:08
Comme l'a si bien dit MrYAU31, créer un système d'exploitation demande du temps, beaucoup de temps... Il t'est nécessaire de connaitre l'assembleur, le C++ (ou le C) mais aussi le binaire qui est fondamental pour pouvoir interagir avec les différentes composantes de l'ordinateur. Mais je trouve que le plus compliqué dans un OS, c'est le travail qu'il faut fournir afin d'assurer une bonne compatibilité des programmes. Bref, un travail hors-norme qui peut prendre des dizaines et dizaines d'années !
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
Modifié par blux le 5/07/2013 à 10:40
mais aussi le binaire
Le binaire n'est pas un langage, mais une représentation de nombres dans une base particulière, donc rien de nécessaire pour interagir avec les composants physiques...
0
Utilisateur anonyme
1 juil. 2013 à 13:11
Par contre "modifier" un système d'exploitation est possible
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
1 juil. 2013 à 13:13
Oui, je sais mais j'aimerais que mon os soit 100 % maison :D
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
2 juil. 2013 à 20:55
Je suis tombé par hasard sur un lien sympa qui va t'intéresser. Par contre, il est en anglais.

https://wiki.osdev.org/Expanded_Main_Page
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SlyK Messages postés 854 Date d'inscription vendredi 11 mars 2011 Statut Contributeur sécurité Dernière intervention 6 octobre 2014 147
2 juil. 2013 à 21:06
Hello,

Je 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 ?


@+
0
Ah!et moi qui pensait que je suis le seul a faire un reve pareil.lorsque je parle de ca les gens pensent que moi je suis fou.c est toujours mon reve de créer mon propre systeme d exploitation.
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.
0
MrYAU31 Messages postés 3808 Date d'inscription samedi 23 février 2013 Statut Membre Dernière intervention 8 juillet 2017 1 611
2 juil. 2013 à 22:15
Bien sûr que c'est possible. On a jamais dit le contraire.
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.
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
3 juil. 2013 à 07:35
Merci beaucoup pour vos conseils !
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
3 juil. 2013 à 07:51
Pour répondre à SlyK, oui, j'ai des connaissances en développement, je sais programmer en css, en html, en php et je connais les bases du c++.
0
SlyK Messages postés 854 Date d'inscription vendredi 11 mars 2011 Statut Contributeur sécurité Dernière intervention 6 octobre 2014 147
3 juil. 2013 à 12:58
Re !

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.


@+
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
3 juil. 2013 à 10:30
Est-ce que vous pourriez me donner une liste précise de tout ce que je dois savoir avant de commencer à programmer ???
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
3 juil. 2013 à 10:31
Enfin avant de commencer mon os, quoi
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 3/07/2013 à 13:14
Non, on ne peut pas.

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
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
3 juil. 2013 à 13:21
Merci :)
0
Alming Messages postés 60 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 20 juillet 2013 13
3 juil. 2013 à 16:26
Par contre, tu peux te tourner vers la création d'un WebOS : c'est un système d'exploitation disposé à être utilisé sur navigateur. C'est plus simple à mettre en oeuvre et ça prend moins de temps à le réaliser.
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 3/07/2013 à 18:06
Peux-tu détailler ce que tu entends par "WebOS" ou ta définition de ce que tu considères comme étant un "système d'exploitation", donner des références, des liens ?

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
0
Alming Messages postés 60 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 20 juillet 2013 13
4 juil. 2013 à 11:04
https://fr.wikipedia.org/wiki/WebOS

Voilà, j'espère que cela t'aidera ! :)
0
Pierrecastor Messages postés 41466 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 5 avril 2024 4 131
4 juil. 2013 à 11:08
Salut

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. ;-)
0
Alming Messages postés 60 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 20 juillet 2013 13
4 juil. 2013 à 22:47
Je sais bien que ce n'est pas un système d'exploitation à proprement parlé mais l'idée et le concept y sont présents.
0
Bogomips Messages postés 123 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 18 mars 2015 16
9 juil. 2013 à 01:07
Salut,

Windows 3.1 existe en WebOS: http://www.michaelv.org/
0
Pierrecastor Messages postés 41466 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 5 avril 2024 4 131
3 juil. 2013 à 18:09
Salut

Pour comprendre comment fonctionne un OS, tu te lancer dans l'aventure linux from scratch, il parrait que c'est très formateur.
0
katsuo49 Messages postés 330 Date d'inscription vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
3 juil. 2013 à 18:25
Salut,

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) !

0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
3 juil. 2013 à 19:02
Merci beaucoup pour ta réponse, mais pour l'instant, je viens d'apprendre le binaire, je suis loin de tout savoir, pour l'instant, ça reste un projet mais je pense qu'il va se réaliser et quand j'aurai commencé à coder, quand j'aurai finit d'apprendre, là, je chercherai un nom et je créerai un site web. Et sinon, j'aimerais bien que tu m'aides :) on se reparle en message privé ?
0
Pierrecastor Messages postés 41466 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 5 avril 2024 4 131
3 juil. 2013 à 19:14
L'aide sur les forum se fait sur les forums, pour que cela profite à tout le monde. ;-)

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/
0
katsuo49 Messages postés 330 Date d'inscription vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
3 juil. 2013 à 19:43
Je suis d'accord avec Pierrecastor, tant que t'en es au stade de recherche pure autant que ça reste sur le forum. Sinon oui une fois que t'auras un peu plus avancé, tu m'envoies un message privé sans soucis ;) même plutôt un mail à l'adresse dans mon profil ;)
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
4 juil. 2013 à 09:55
Ok
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
4 juil. 2013 à 14:40
Donc le mieux serait, pour m'entraîner, que je fasse un WebOS ?
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
4 juil. 2013 à 15:43
En dehors du système d'exploitation de HP, je ne vois pas ce que l'on entend par WebOS.

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
0
Pierrecastor Messages postés 41466 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 5 avril 2024 4 131
4 juil. 2013 à 16:50
Le mieux serait de monter une linux from scratch, ou au moins une gentoo pour y allez plus tranquile.

Tu as des base en OS linux / unix / BSD ?
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
4 juil. 2013 à 19:10
Je n'ai aucune base en os, je commence :D
0
Pierrecastor Messages postés 41466 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 5 avril 2024 4 131
4 juil. 2013 à 19:21
Ouais, donc avant de te lancer de la programmation, commence déjà par étudier le fonctionnement, puis l'architecture de différents OS.

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 ?
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
4 juil. 2013 à 19:41
Je vais le faire, mais pour l'instant, comme je te l'ai dit, je ne sait rien aux os, d'ailleurs je n'ai rien compris quand tu as dit "Tu as des base en OS linux / unix / BSD ?" mais bon, merci quand même pour toutes tes réponses, je vais me renseigner sur l'os linus, unix et "BSD"
0
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
5 juil. 2013 à 10:43
Salut,

tu n'es pas le premier à vouloir faire ce genre de choses.

Regarde ce qui a été fait avec bosokernel, par exemple...
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
6 juil. 2013 à 20:23
Et encore, une dérnière question, après je met je sujet en résolu :

Est-ce qu'avec des études, on peut apprendre ça ? Ou à l'école, quoi.
0
Pierrecastor Messages postés 41466 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 5 avril 2024 4 131
7 juil. 2013 à 18:16
Avec des études, tu peut avoirs les bases de programmation et d'apprentissage sur le fonctionnement d'un PC ou d'un OS qui te permettrons 'y voir plus clair.

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.
0
OSProgrammeur Messages postés 127 Date d'inscription lundi 1 juillet 2013 Statut Membre Dernière intervention 29 janvier 2014 10
7 juil. 2013 à 18:20
Ok, merci :)
0
Alming Messages postés 60 Date d'inscription dimanche 30 juin 2013 Statut Membre Dernière intervention 20 juillet 2013 13
7 juil. 2013 à 18:06
Non. En revanche, il t'est possible d'apprendre les composantes de l'ordinateurs et les méthodes d'interactions entre ces-dernières.
0
Bonjour.Je ne sait pas si ca peut t'aider mais sur ses pages voir:
http://fr.scribd.com/doc/30890650/cours-systeme-d-exploitation-CUP

http://www.google.tg/...

http://fr.scribd.com/doc/122329605/Note-de-cours-systeme-d-exploitation-Server-2k3
0