Voici un début de réponse :
Wikipedia
Voici un début de réponse :
Wikipedia
J'ais consulté cette page en premier.
Mais je n'arrive pas à me décider pour un type de noyau ou un autre.
Je pense que le micro noyau est plus ou moins ce qu'il te faut, car il sera plus facile à faire pour une seule personne.
Au débuts les drivers que tu développeras seront que pour ton materiel. Alors tu risques de ne pas être suffisament générique et donc de mécontenté les futurs utilisateurs. Ils ne veront que un nouvel OS qui ne marche pas. Alors qu'avec un micro-noyau, il ne veront qu'un nouvel OS qui n'a pas encore de driver pour son matériel.
De plus en faisant un micro-noyau, la modification des drivers ne risque pas d'apporter une instabilité du système. Et donc tu pourras commencer par des driver simple, du style un driver de disque qui ne gère que le format FAT.
Enfin si tu fais un micro-noyau tu pourras sans ouvrir le code à tout le monde laisser la possibilité au gens de dévellopper des drivers pour leurs matériels.
Enfin tous ceci n'est que mon idée. Il y a surement des coté négatif pour le micro-noyaux que je n'ai pas cité : lenteur du aux multichargements, ...
Mon noyau sera opensource
Je veux faire qqc chose de puissant, c'est pourquoi j'ais envis d'une architecture puissante :
- rapide
- code clair et organisé
- portable
- juste ce qui il a d'utile de chargé
C'est pourquoi je m'orriente vers un micro noyau.
Mais il y a un gros problème : la rapidité. Alors pourquoi pas un noyau hybride qui mélande micro-noyau et noyau modulaire. Mais là je n'ais pas tros d'idées : Quelqu'un pourait-il m'éclairer sur les possibilités ?
Enfin j'aimerais que l'OS soit compatible POSIX
Il y a une excellente suite d'articles la dessus dans linux magazine, ils t'expliquent le fonctionnement d'un OS en se servant de SOS, un petit OS prevu pour apprendre la programmation de system d'exploitation !
Tu en demandes beaucoup à ton OS. Il ne fait que germer qu'il doit déjà porter des fruits?
Commence par un micro-noyau si tu y trouves aussi beaucoup d'avantage. puis tu pourras toujours le modifier plus tard pour en faire un micro-noyau modulaire qui en fait est un micro-noyau où certains des éléments exterieurs sont fondu dans le noyau.
Pour le POSIX vas-y doucement. Implémente d'abord les fonctions de base (POSIX) qui feront fonctionner ton noyau. Une fois que tu auras un noyau stable et fonctionnel tu rajoutera les autres fonctionnalités POSIX que tu ne gères pas déjà.
Dans un premier temps si ton OS n'est que mono-tache on ne t'en voudras pas. Par contre si tu t'arretes dans ton entreprise à cause des difficultés trop nombreuses pour etre écartées simplement, la tu t'en voudras.
Ton OS va etre ton jardin pendant un bon bout de temps jusqu'à ce qu'il arrive à interresser d'autres personnes.
Je connais SOS, car depuis 1 ans je lis Linux Magazine, j'ais donc tout les articles déjà parus sur SOS
D'accord, je vais donc commencer par un micro noyau.
J'ais une décision très importante à prendre :
Le langage avec lequel mon noyau sera codé.
Je pense pour le moment à le codé en C ou en C++ (Choix à faire : pouvez-vous m'aider ? ) tout en incluant des portions d'assembleur pour certain point critique en matière de rapidité et de puissance (un peu à la manière de SOS). Comme ça le noyau sera portable (du moin en théorie), il n'y aura qu'a réécrire les portions en assembleur qui seront vraiment peu nombreuse.
Qu'en pensez-vous ?
C'est le mieux enfin je pense.
Mais pour choisir entre C ou C++. Je pense que tu peux directement passer au C++ qui te permet de faire des choses en objet ce qui à mon avis est plus facilement abordable pour un programmeur qui va lire ton code. Apres le truc c'est de bien écrire ces objets.
L'inconvenient du C++ c'est que le compilateur risque d'être plus dur à faire. Je crois que gcc/gpp est multi-couches c'est à dire les parties du code qui s'occupe de la création du langage machine est remplaçable par une autre qui va gérer une autre machine, etc.
Bonjour,
Il y a t-il d'autres avis sur le choix d'un langage pour programmer le noyau ?
vu que le C/C++ et l'ASM sont les plus rapides
tu n'a pas trop le choix
en plus toutes les applis qui vont tourner reposent sur la rapidité de l'OS, donc...
"Les gardiens de la paix, au lieu de nous la garder, ils feraient mieux de nous la foutre." (Coluche)
Ma Brute
C'est toi qui vois.
lol
Mais les deux sont bien, le fait que tu veuilles du POSIX peu pencher en faveur du C mais le C n'est pas une obligation. Le C++ étant plus récent peu attirer plus de monde, de plus je pense que le C++ est plus flexible que le C. (tu peux faire du C pur plus les espaces de nommage, les objets, et d'autre trucs).
de plus, je fais la remarque que le C a été écrit pout programmer des OS (avec ses fonctions style malloc...) et il est totalement intégrable en C++.
"Les gardiens de la paix, au lieu de nous la garder, ils feraient mieux de nous la foutre." (Coluche)
Ma Brute
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager