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 ?
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
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![]()
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?!!![]()
Le langage Machine![]()
01100001000001110001110001
Ne pas me contacter pour le forum et je ne répondrai à aucune question technique. Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts
15 000 offres d'emploi développeurs et informatique
Cours et tutoriels développeurs et informatique
Les FAQ's & Les Livres
Codes sources
Téléchargements
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 ...).
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).
Certains étant quasiment comme du C.
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...![]()
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/
Ne pas me contacter pour le forum et je ne répondrai à aucune question technique. Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts
15 000 offres d'emploi développeurs et informatique
Cours et tutoriels développeurs et informatique
Les FAQ's & Les Livres
Codes sources
Téléchargements
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)
Salut à tous !
Je rectifie ce que j'ai dit : c'est C/C++ qui est selon moi le plus approprié mais surtout le plus utilisé pour écrire des OS, surtout le C car ce langage approche surtout la programmation noyau mais C++ a l'avantage d'utiliser la notion d'objet, le développement d'OS fait de nos jours abstraction aux matériels (pas une abstraction totale mais à 90 %) surtout aujourd'hui où les nouveaux OS sont obtenus en bidouillant le code source gratuit de LINUX.
Je ne connais pas vraiment l'histoire des systèmes d'exploitation mais avec quel langage et quel IDE les OS suivants ont été développés pour la 1ère fois et actuellement:
- UNIX
- MAC OS
- Windows
randriano.dvp.com
Développeur. Product Owner [Agile]. Sites web, mobile apps, système d'information (SI).
En fait par OS, il faut différencier noyau et applications.
Pour moi, la charge du noyau, c'est de supporter le code des applications. Le noyau ne peut pas être écrit autrement qu'en assembleur (au début au moins) simplement parce qu'il n'y a pas de noyau pour supporter les applicationspour parler à une machine, au début on est obligé de comprendre son langage assembleur, sinon ça ne marchera jamais.
Le noyau a besoin, par définition, d'un langage proche de la machine, et par définition l'ASM est fait pour ça. Ensuite, il est certain que de maintenir un noyau en ASM est complétement impossible, on passe alors à un degré d'abstraction supplémentaire en utilisant le C.
Mais le C++ est bien trop abstrait (ne serait-ce justement que par ses mécanismes objet) pour permettre de l'utiliser dans la programmation d'un noyau à mon avis. Ou alors, il ne faut pas utiliser le C, et utiliser directement le C++, mais à mon avis c'est périlleux d'interfacer du C++ avec de l'ASM. Ce sont déjà deux langages trop différents.
Donc je crois que le C, qui a ds liens forts avec l'ASM, est le seul langage évolué qui permet de coder un noyau, donc un OS.
Le fait qu'ils aient abandonner l'idee signifie peut-etre qqchoseEnvoyé par gorgonite
![]()
Je m'excuse pour mon incultureEnvoyé par gorgonite
![]()
Ceci dit , il est vrai que je crois que un langage dédié à la programmation d'OS se doit de pouvoir être interfacé avec de l'ASM, sans quoi ce n'est pas facile.
Enfin il faut toujours garder à l'esprit qu'il y a des raisons techniques à utiliser tel ou tel langage, le C a démontré son efficacité dans le domaine. Tout langage compilé peut satisfaire, à condition qu'il possède une méthode d'interfaçage ASM.
C'est un peu aussi le dilemne de la poule et de l'œuf. qui est venu le premier ?
Pour l'utilisation du C , je crois que le fait que ce soit un langage proche du bas-niveau, lui donne une souplesse particulière et permet les optimisations plus que le C++.
je dirais c'est surtout quel serait l'intérêt à part d'être "dans la mode" d'utiliser autre chose que ce qui a fait ses preuves et est selectionné par l'expérience comme étant le langage de développement des OS ??
Le langage objet n'est qu'une facilité pour le programmeur. Dans le cas du développement d'un OS, comme cela a été dit plus haut, on s'en fout pas mal de savoir si c'est facile à coder ou pas. Ce qu'on veut c'est que l'interaction avec la machine se fasse le mieux et le plus rapidement possible.....
Partager