On peut voir que les systèmes d'exploitation tel que les UNIX ou Windows ont été développé en C. Ma question est donc la suivante :
Quel langage peut-on utiliser pour développer un système d'exploitation ?
Version imprimable
On peut voir que les systèmes d'exploitation tel que les UNIX ou Windows ont été développé en C. Ma question est donc la suivante :
Quel langage peut-on utiliser pour développer un système d'exploitation ?
essaies de savoir en quoi était développé VMS... tu seras surpris :P
pour infos, java est un joli mot, mais il y a pas mal de bindings vers le C/C++ via la JNI... et il est probable qu'en fait tous les morceaux critiques de leur OS seront en C ;)
si tu as un lien vers ce projet, je suis preneur :roll:
Oui, je viens de lire un articles en arabe qui dit que JAVA n'est pas fait pour attindre un niveau bas de la machine, contrairement au C!
Mais il n'ya rien d'autre pour créer un système d'exploitation que C?!!8O
Citation:
Envoyé par overon
lis mieux ma réponse précédente... et tu trouveras :P
Le langage Machine :mrgreen:
01100001000001110001110001
Le système d'exploitation des machines SUN est fondé sur le système UNIX qui a été développé plusieurs décénnies avant que JAVA n'existe... Donc pas de soucis là dessus, l'OS de SUN n'est pas écrit en JAVA (à moins d'une faille spatio-temporelle ... :mouarf:).
JAVA est beaucoup trop lent pour être utilisé pour un OS. Le seul autre langage possible étant l'ASM.
Mais là, il ya tellement de version différentes que l'on ne pas comparer un ASM skip à un ASM vizir (Non c'est décidé, je garde le mien :mouarf:).
Certains étant quasiment comme du C.
Citation:
Envoyé par mchk0123
je ne suis pas d'accord, et plusieurs grands OS ont été écrits ni en asm, ni en C (ni avec un mixte des deux)
perso, je dirais juste les premières versions de MacOS et VMS... :roll:
Tiens je savais pas pour MacOS ! Ils a été écrit en quel langage ?Citation:
Envoyé par gorgonite
Si tu LISAIS les réponses qu'on te donne, tu saurais déjà qu'il y a d'autres possibilités (VMS en BLISS par exemple)... Globalement n'importe quel langage peut servir à implanter un OS pourvu qu'on lui crée un compilateur dédié à créer du code pouvant tourner sans OS en dessous et qu'on écrive l'initialisation en assembleur.Citation:
Envoyé par @v@lon
Tu as des OS en Haskell (HOUSE), en Squeak (SqueakNOS, Squeak est une version de Smalltalk), en OCaml (Desert Spring-Time), en Java (JavaOS)....
Bien sûr certains langages sont plus adaptés que d'autres.
--
Jedaï
Citation:
Envoyé par mchk0123
à ma connaissance, les premières versions de MacOS étaient écrites dans un langage pascalien ;)
sur quel système ?
unix -> c
windows -> aucune idée, je dirais c++
Je crois que j'ai mal formulé ma question, je veux dire que je veux apprendre à programmer des systèmes d'exploitation, alors quels langages?!
Merci pour vos repoances
Langage C
Tu trouvera tout pour le langage C ici : http://c.developpez.com/
Citation:
Envoyé par Marc Lussac
toutefois, il y aura certainement quelques petits morceaux en assembleur, pour effectuer des opérations tel que la préemption ;)
tu peux lire ces tutos http://pagnotte.developpez.com/cours...-exploitation/
http://pellegrini.developpez.com/systemes-exploitation/
ça te donnera une idée de ce qu'il faudra que tu fasses :)
Pour résumer : Assembleur et C (c++ je ne pense pas que ce soit une bonne idée pour demarrer)
bah c'est pas pour rien que tous les OS utilisent C et asm ..Citation:
Envoyé par _SamSoft_
Je ne m'avancerais pas trop pour le C => http://www.developpez.net/forums/sho...d.php?t=304508Citation:
Envoyé par souviron34
ok, mais aujourdhui, il reste (vaguement) VMS, et sinon tout ce qui unixoide c'est C, Windows c'est C.... Reste plus que quelques uns à gauche à droite...
Et VMS c'est écrit en quoi alors ?Citation:
Envoyé par souviron34
bien qu'ayant fait beaucoup de programmation système sous VMS, je ne le sais pas.Citation:
Envoyé par Luc Orient
Mais d'après le lien donné par Woufeil (http://www.developpez.net/forums/sho...2&postcount=10) ce serait en Bliss (que je connais pas plus).
un os en C++ ? ca serait largement mieux
Citation:
Envoyé par epsilon68
Tu peux développer ? Dans tous les cas, il sera nécessaire de recoder un éditeur des liens pour que le format des exécutables correspondent à son système...
apres il existe aussi des projets de systeme d'exploitation dans d'autres langages (par exemple java http://www.jnode.org/ ), mais c'est pas commun.
(y'a un peu d'asm quand meme)
Quel en serait l'avantage ??Citation:
Envoyé par epsilon68
Avantage dans la facilite du code (plus intuitif, moins lourd, ...)
Les avantages de l'objets.
Citation:
Envoyé par Anthony.Desvernois
moins lourd et objet ne font pas toujours bon ménage... ;)
Moins lourd en terme de lisibilite lol ^^ pas en terme de perfs ;)
mwé...Citation:
Envoyé par Anthony.Desvernois
Même si je ne suis pas d'accord avec le premier élément de ta rréponse, le second est rédhibitoire por un OS.. :aie:
Un bon code objet permet d'avoir un ensemble plus haut niveau, donc plus lisible, non ?
Apres en terme de perf, l'objet n'est pas forcement plus lourd (meme si, dans la pratique...)
Il me semble que Microsoft voulait faire un OS en C++ ?
en C#, ca s'apelle singularity. meme genre que jnodeCitation:
Envoyé par Anthony.Desvernois
Ok merci de la precision ;)
bah je ne sais pas.. Je trouve que bien évidemment cela dépend de la conception.. (on revient sur le débat parallèle... :roll: ). Un bon code fonctionnellement bien spécifié et bien découpé est à mon avis tout aussi clair...Citation:
Envoyé par Anthony.Desvernois
Et de l'optimisation en objet je ne sais pas si c'est vraiment plus lisible que de l'optimisation en non-objet.. :aie:
Citation:
Envoyé par souviron34
Ouais... Je suis d'accord, il y a beaucoup de partie bourrine très optimisée dans le code de noyau, il y a pas mal de goto qui traine à droite à gauche. C'est assez rapidement illisible :( En plus qu'il y a fréquemment des problèmes liés à des accès concurrents lorsque ça ne tourne pas en mode kernel... c'est très marrant :aie:
A mon avis, c'est plutôt l'allocation statique de ressources qui poserait problème si on écrivait en C ++ : quasiment rien n'est alloué dynamiquement dans un noyau, et malheureusement, les langages objet comme le C ++ ne connaissent pratiquement que l'allocation dynamique comme mode d'allocation.
De plus, je suis assez d'accord avec ce qui a été dit : l'objet n'apporterait rien ni au niveau de l'abstraction ni au niveau des performances... on se retrouverait surtout avec un truc plus lourd, difficile à maintenir.
Citation:
Envoyé par InOCamlWeTrust
c'est une blague j'espère 8O
c++ n'est pas java... et il y a une différence entre
Code:
1
2
3
4
5
6
7
8
9
10 class A { ... }; int main (...) { A a; ... }
et
Code:
1
2
3
4
5
6
7
8
9
10 class A { ... }; int main (...) { A* a = new A(); ... }
Ce que tu décris-là c'est l'allocation automatique, moi je parlais d'allocation statique, celle qui se fait "en dehors des accolades", mais c'est vrai que j'ai peut-être parlé trop vite.Citation:
Envoyé par gorgonite
tous ça est bien, mais pour les protocoles on fait comment?!
Euh, tu peux préciser un peu là ? De quels protocoles tu parles ? Les protocoles réseaux ? 8OCitation:
Envoyé par overon
Non, parce que si c'est le cas, autant te dire que tu vas avoir du boulot avoir de devoir t'intéresser à ce genre de sujets :mouarf:
Bonjour,
Je pense que C++ est le langage le plus approprié pour développer un OS.
On peut le faire aussi en assembleur mais ça prendrait des années pour en faire un comme Win98.
Voici un lien intéressant: http://minso.free.fr/cavinfo/systeme/sos.html
Je pense que c'est un projet irrealiste tout de meme : vouloir coder un systeme d'exploitation sans avoir d'idee sur le(s) langage(s) a utilise...