Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX


Création d'un OS

Partagez
avatar
SZStore
Nouveau
Nouveau

Masculin Nombre de messages : 24
Age : 15
Localisation : Réunion (Ile de la)
Emploi/loisirs : Programmation en Informatique
Date d'inscription : 18/03/2018

Création d'un OS

Message par SZStore le Ven 13 Juil 2018 - 6:14

Bonjour, 
Je souhaite créer un Système d'exploitation mais je ne sais pas par où commencer. Je sais que ça peut paraître fou et impossible de le faire mais je suis conscient que le développemnt d'un operating system peut prendre beaucoup de temps voir des années de programmation (je suis prêt à me lancer pour des années de codage).
Actuellement, j'apprends le C et C++ sachant qu'auparavant je commençais à apprendre le C#.
Je me suis déjà procuré des IDE pour le développement:
- CodeBlocks
- NotePad++
- Microsoft Visual C++ Express 2010 
- Dev-C++

Voilà. Je précise surtout que je voudrais programmer moi-même le kernel (noyau) du système et non pas ceratins déjà existants comme Cpcdos ou FreeDos.

J'ai 15 ans.

Cordialement,
SZStore
avatar
polien


Masculin Nombre de messages : 2935
Age : 22
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

Re: Création d'un OS

Message par polien le Ven 13 Juil 2018 - 13:23

Bonjour,

Avant de te proposer des pistes, j'aimerai tout de même attirer ton attention sur la complexité d'un tel projet en étant débutant. Le minimum serait d'étudier la programmation bas niveau (Assembleur/C et peut-être C++) pour que tu comprenne comment fonctionne un système d'exploitation. Pour cela par exemple tu peut étudier la gestion des processus UNIX en C (hiéarchie, signaux, handler toussa...)(bien évidemment auparavant il faudra bien maitriser le C) puis étudier de quelle couches est composé un système UNIX (et essayer de reproduire ces couches) et avoir des notions d'assembleur ne serait pas superflu (gestion de la mémoire et des fonctions en assembleur = un régal lol )...

Voici quelques liens/tutos trouvés au vif. Je préfère te prévenir: il n'existe aucun tuto pour créer de façon simple et progressive un OS. Tout les tutos que tu trouveras se basent sur des pré-requis solides (ou alors tu fera du copier coller que tu ne comprendras pas) et seront bien entendu en anglais (sauf de rares exceptions).

https://www.codeproject.com/Articles/1225196/Create-Your-Own-Kernel-In-C
https://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel
https://wiki.osdev.org/Creating_a_64-bit_kernel
https://github.com/cfenollosa/os-tutorial
https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf
https://samypesse.gitbooks.io/how-to-create-an-operating-system/

Voilou, en espérant ne pas avoir été trop sec mais ne met pas la charrue avant les bœuf Wink .

avatar
lereparateurdepc


Masculin Nombre de messages : 5575
Age : 26
Localisation : Calvados
Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
Humeur : toujours cool
Date d'inscription : 31/01/2010

Re: Création d'un OS

Message par lereparateurdepc le Ven 13 Juil 2018 - 14:47

re,


Je m'arrête sur le fait que tu veux créer toi même le kernel ????????


Tu est conscient que le noyau est une sorte d'interface entre le matériel dont le BIOS et l'OS lui-même ?????
Comme dis Polien, ce sont des langages de très bas niveau très complexes à utiliser !!!!!
( Merci Arduino d'avoir simplifié tout ça !!!! )


Un membre de ce forum (Blackorion35) a réalisé un OS mais en utilisant un noyau existant; cet OS a été mis de côté….. pour passer à un WEB OS bien plus "simple" et plus utile.

A mon avis, le mieux serais de commencer par un WEB OS puis, une fois les différents langages bien en tête de passer à un OS avec un noyau existant; par ce que créer un noyau de toute pièce est trop complexe.

EDIT : pour info https://fr.wikipedia.org/wiki/Noyau_de_syst%C3%A8me_d%27exploitation


Cordialement,
Le réparateur de PC



Modérateur & Administrateur du forum
Merci de contacter les membres par MP ou mail que pour "urgences". Le forum est fait pour ça. Merci

@ Contact : franleboss@gmail.com  Smile
Arrow  Visitez mon site : désolé l'hébergeur à fermé Sad

Ma chaine tutube : https://www.youtube.com/channel/UC7iU59NNAHz-tW5wqcgONHA


avatar
SZStore
Nouveau
Nouveau

Masculin Nombre de messages : 24
Age : 15
Localisation : Réunion (Ile de la)
Emploi/loisirs : Programmation en Informatique
Date d'inscription : 18/03/2018

Re: Création d'un OS

Message par SZStore le Ven 13 Juil 2018 - 15:04

@polien
Bonjour,
Justement j'étudie le C et C++ pour pouvoir par la suite commencer à coder mon noyau ; comme je l'ai dit précédemment, je sais que c'est un projet assez complexe à réalisé et que ça demande beaucoup de temps pour le réaliser. J'ai des connaissances qui pourront m'aider sur ce projet. Mais j'ai 2 questions:
- L'Assembleur n'est-il pas utilisé par Microsoft dont-il possède des droits. Si oui, je ne peux pas l'utiliser car je voudrais moi-seul créer un projet indépendant pour éviter des droits d'auteurs.
- Peut-on mélanger le C et C++. Je pense que logiquement c'est possible. Si non, dites moi le contraire.

@lereparateurdepc
Bonjour,
Je suis totalement conscient qu'il va falloir adopter une interface type Console et non-graphique. Je suis prêt à coder avec le BIOS pour pouvoir réaliser le projet. Personnellement, je ne vois pas l’intérêt de créer un WEB OS puisque pour y accéder, il faut obligatoirement passer par un système d’exploitation tel que Windows ou Ubuntu pour ensuite utiliser le WEB OS, ce qui, pour moi est complètement inutile. Même si je devais ou voulais coder un WEB OS je le pourrais car j'ai des connaissances en HTML et CSS sauf pour le PHP et JavaScript dont je n'ai pas encore les bases.

Cordialement,
SZStore
avatar
lereparateurdepc


Masculin Nombre de messages : 5575
Age : 26
Localisation : Calvados
Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
Humeur : toujours cool
Date d'inscription : 31/01/2010

Re: Création d'un OS

Message par lereparateurdepc le Ven 13 Juil 2018 - 15:08

re,

Je ne pense pas que l'assembleur soit la propriété de Microsoft car il est utilisé dans certains automates industriel.

Cordialement,
Le réparateur de PC



Modérateur & Administrateur du forum
Merci de contacter les membres par MP ou mail que pour "urgences". Le forum est fait pour ça. Merci

@ Contact : franleboss@gmail.com  Smile
Arrow  Visitez mon site : désolé l'hébergeur à fermé Sad

Ma chaine tutube : https://www.youtube.com/channel/UC7iU59NNAHz-tW5wqcgONHA


avatar
SZStore
Nouveau
Nouveau

Masculin Nombre de messages : 24
Age : 15
Localisation : Réunion (Ile de la)
Emploi/loisirs : Programmation en Informatique
Date d'inscription : 18/03/2018

Re: Création d'un OS

Message par SZStore le Ven 13 Juil 2018 - 16:04

Si vous le dites. Dans ce cas, il y aura un peu moins de boulot.

Cordialement,
SZStore
avatar
polien


Masculin Nombre de messages : 2935
Age : 22
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

Re: Création d'un OS

Message par polien le Ven 13 Juil 2018 - 16:09

@SZStore a écrit:Justement j'étudie le C et C++ pour pouvoir par la suite commencer à coder mon noyau ; comme je l'ai dit précédemment, je sais que c'est un projet assez complexe à réalisé et que ça demande beaucoup de temps pour le réaliser. J'ai des connaissances qui pourront m'aider sur ce projet. Mais j'ai 2 questions:
- L'Assembleur n'est-il pas utilisé par Microsoft dont-il possède des droits. Si oui, je ne peux pas l'utiliser car je voudrais moi-seul créer un projet indépendant pour éviter des droits d'auteurs.
- Peut-on mélanger le C et C++. Je pense que logiquement c'est possible. Si non, dites moi le contraire.
Ne grille pas les étapes, commence déjà à bien maitriser le C et tu verras que c'est loin d'être si simple une fois que tu as passé le stade condition/boucles/fonctions...

- Comme le dit lereparateurdepc, l'assembleur n'est pas la propriété de Microsoft mais dépend de l’architecture du processeur (32/64 bit) et du jeu d'instruction qu'il utilise. Il ne dépend pas vraiment du système d'exploitation (sauf si tu compile avec les outils propres à un système, voir: https://fr.wikipedia.org/wiki/Programme_assembleur ). Wink

- Tu peut mélanger du C et du C++ dans un compilateur C++ (c'est hautement déconseillé mais techniquement possible). Par contre le C++ ne te sera pas utile pour coder ton kernel.

C'est vrai qu'on as eu pas mal d'OS/web OS qui sont passés sur le forum. Et pour reprendre l'exemple donné par lereparateurdepc, Blackorion35 avait fait un OS avant son webOS: Mantrix ERS (http://forumvelersoftware.bbactif.com/t1530-mantrix-edition-red-serveur-operating-system-projet) et s'était déjà un sacré défi bien que son équipe et lui ne s'occupaient que de l’interface graphique.

Tout ça pour dire: fait comme tu veut mais, pour prendre une métaphore, escalader un baobab en chausson reste discutable lol .

avatar
SZStore
Nouveau
Nouveau

Masculin Nombre de messages : 24
Age : 15
Localisation : Réunion (Ile de la)
Emploi/loisirs : Programmation en Informatique
Date d'inscription : 18/03/2018

Re: Création d'un OS

Message par SZStore le Ven 13 Juil 2018 - 17:21

Woah! MantrixERS avait l'air d'être un bon OS. Dommage qu'il soit crée en Visual Basic.NET. J'avais déjà entendu parler de ce projet lorsque j'ai connu SoftwareZator. Moi-même pensais que c'était impossible de passer à un .exe en natif, d'autant plus que celui-ci se servait du .NET Framework qui lui est indispensable pour le bon fonctionnement de l'OS.
Pour tout vous dire, je ne cherche pas à créer un résultat final en .exe. Je voudrais vraiment pouvoir créer un noyau puis par le biais de celui-ci pouvoir créer un Système d'exploitation. D'ailleurs je vous en remercie pour vos conseils @polien & @lereparateurdepc

Je pense qu'il est temps de vous parler de mon projet en détails.
Voilà, non seulement je ne cherche pas à créer un simple OS pour PC, mais je cherche également à pouvoir créer des OS pour les plateformes suivantes:
- La télévision
- Les téléphones
- Les véhicules connectés
-...

Pour l'instant, je me base uniquement sur un OS pour PC. Puis plus-tard dans 6 ou 7 ans, créer les OS pour les plateformes citées au-dessus.
Et j'aimerais aussi, pour ne pas perdre de temps, si il serait possible de créer un noyau commun pour les différentes plateformes citées (pour ne pas à recréer de noyau pour chaque plateformes). Juste un noyau possédant un code mais par la suite pouvant s'adapter pour les autres plateformes.

Cordialement,
SZStore
avatar
polien


Masculin Nombre de messages : 2935
Age : 22
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

Re: Création d'un OS

Message par polien le Ven 13 Juil 2018 - 19:09

Mantrix utilisait un kernel déjà existant (CPCDOS) et une base Microsoft NT donc le .NET Framework peut-y tourner sans problème...

Pour le noyau, si tu veut te lancer, privilégie l'intérêt éducatif et ne te soucie pas des plateformes sur lequel il va tourner. D'ailleurs au passage le noyau d'une voiture n'est pas le même que celui d'une télévision ou d'un téléphone. On peut citer QNX comme exemple d'OS utilisé par les voitures alors que les TV/mobiles/tablettes sont sur android (tous des dérivés du noyau linux).  (Et bon courage pour proposer ton noyau aux constructeurs automobiles Razz ).

Bonne continuation et de rien Wink

avatar
Admin
Administrateur
Administrateur

Masculin Nombre de messages : 1882
Age : 26
Localisation : Boulogne Billancourt(92100)(France)
Emploi/loisirs : Software Development Engineer
Date d'inscription : 24/01/2008

Re: Création d'un OS

Message par Admin le Ven 13 Juil 2018 - 20:19

Bonsoir (oui je suis vivant haha),

Je viens apporter ma pièce au puzzle : COSMOS ! https://www.gocosmos.org/

COSMOS est un outil + un Framework qui permet de… développer un système d'exploitation en C# (j'avais hésité à l'inclure à SoftwareZator).

Concrètement :
- Ca prend ton code C# et le convertit en Assembleur pour Intel x86 => C'est du natif Very Happy
- COSMOS propose également un langage spécial (X# de souvenir) pour faire des drivers.
- Pour développer, il suffit de Visual Studio 2015 ou 2017 Community (gratuit) avec Virtual Box (gratuit aussi) pour exécuter son OS. Tu peux aussi graver le disque virtuel créé sur CD et booter dessus (mais… les drivers de base sont limités donc ça passe pas partout… enfin tu peux toujours les coder)
- Il y a même un débogueur ! (c'est énorme je trouve !).
- C'est OpenSource.

Pour avoir joué un peu avec il y a quelques années, je dirais que :
- c'est super simple pour commencer et il y a beaucoup de possibilités.
- créer une interface graphique avec une souris et des fenêtres reste très complexe, il y a du challenge, comme pour ceux qui ont créé Windows, Mac et Linux.
- Le programme généré est moins performant que si tu codais en Assembleur et en C++ entièrement en partant de rien (et en admettant que ton code soit optimisé). Mais largement satisfaisant pour ce qu'on en fait.
- A l'époque ou je l'ai utilisé, il y avait déjà un driver par défaut pour supporter un écran de 600x300px, pour utiliser la souris et le clavier, ainsi que pour "lire" (mais pas écrire) sur le disque dur. Mais tu peux faire tes propres drivers du coup.

J'encourage à y jeter un coup d'oeil et au moins à tenter un "hello world" pour voir =)
Au plaisir



Les 4 règles d'or du forum : Bonjour, Merci, Pas de SMS, Et un petit "[RESOLU]" dans le titre du sujet quand le problème est réglé. Wink

Etienne

Site internet : http://www.velersoftware.com
Twitter : http://twitter.com/VelerSoftware
avatar
polien


Masculin Nombre de messages : 2935
Age : 22
Localisation : Bouches du Rhones
Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
Humeur : Je commence tout mais ne finit rien :P
Date d'inscription : 19/05/2011

Re: Création d'un OS

Message par polien le Ven 13 Juil 2018 - 23:08

Bonsoir,

(Comment s'était la cryogenèse ? lol )

Vraiment intéressant ce projet. Surtout pour les débutants qui veulent se lancer dans ce genre d'aventure (rhalala, l'assembleur... la gaffe).

Merci pour le partage !


Contenu sponsorisé

Re: Création d'un OS

Message par Contenu sponsorisé


    La date/heure actuelle est Mer 14 Nov 2018 - 0:36