Je me demandais simplement qui sait de quels langages de programmation Windows, Mac OS X et Linux sont constitués et quels langages sont utilisés pour chaque partie du système d'exploitation (par exemple: noyau, architecture de plug-in, composants GUI, etc.).
Je suppose qu'il y a plusieurs langues pour chacune et, évidemment, je sais que le noyau Linux est écrit en C.
Je suppose que Mac OS X contient beaucoup de code Objective-C car c'est le langage d'Apple dérivé de NeXT.
J'ai entendu dire que Windows contient C, C ++ et Intel Assembly. Linux ou Mac OS contiennent-ils du code d'assemblage?
Existe-t-il également des langages de script tels que Ruby, Python, etc. Quelles parties du système d'exploitation seraient écrites dans chaque langue?
windows
linux
macos
programming-languages
operating-system
Brock Woolf
la source
la source
Réponses:
Tous les noyaux utiliseront également du code d'assembly.
la source
Linux: C. Quelques pièces en assemblage.
Mac OS X: cacao principalement en Objective-C. Noyau écrit en C, quelques pièces en assemblage.
Windows: C, C ++, C #. Quelques pièces en assembleur.
Unix: C. Certaines pièces en assemblage. (La source)
la source
Mac OS X utilise de grandes quantités de C ++ dans certaines bibliothèques, mais il n'est pas exposé car ils ont peur de la rupture d'ABI.
la source
IOKit
,WebKit
etGLKit
. Jetez également un œil àdyld
. Ceux-ci sont très lourds en C ++.Je comprends qu'il s'agit d'un ancien article, mais Windows n'est certainement pas écrit en C ++. Il y a beaucoup de C ++ mais ce que nous définissons techniquement comme un système d'exploitation n'est pas en C ++. L'API Windows, le noyau Windows (les deux sont essentiellement ce qu'est un système d'exploitation) sont écrits en C. Il y a des années, on m'a donné une fuite de code pour Windows 2000 et Windows XP. Le code n'était pas assez complet pour compiler le noyau ou l'API, mais nous avons pu compiler des programmes et des services individuels. Par exemple, nous avons réussi à compiler Notepad.exe, mspaint.exe et le service spoolsv.exe (spouleur d'impression). Tout est écrit en C. Je n'ai pas regardé à nouveau mais je suis sûr que le code divulgué survit toujours sous la forme de fichiers torrent qui peuvent toujours être disponibles.
la source
Windows: principalement C et C ++, certains C #
la source
la source
Sensationnel!!! 9 ans de question, mais je viens de tomber sur une série d' articles internes sur l'historique de la ligne de commande Windows et je pense qu'une partie peut être du côté Windows pertinent de la question:
la source
Vous avez raison MacOSX a Objective-C dans le noyau.
Windows C ++
Linux C
À propos des langages de script, non, ils sont à peu près de haut niveau.
la source
J'ai lu ou entendu que Mac OS X est écrit principalement en Objective-C avec certaines des parties de niveau inférieur, telles que le noyau et les pilotes de périphériques matériels écrits en C. Je crois qu'Apple "mange (nt) sa propre nourriture pour chien" ", ce qui signifie qu'ils écrivent Mac OS X à l'aide de leurs propres outils de développement Xcode . Le compilateur-éditeur de liens GCC (GNU Compiler Collection) est l'outil de ligne de commande Unix que xCode a utilisé pour la plupart de sa compilation et / ou de sa liaison d'exécutables. Parmi d'autres langages possibles, je sais que GCC compile le code source des langages C, Objective-C, C ++ et Objective-C ++.
la source
Le noyau Linux est principalement écrit en C (et un peu de langage d'assemblage, j'imagine), mais certains des utilitaires (programmes) importants de l'espace utilisateur sont des scripts shell écrits dans le langage de script Bash. Au-delà de cela, il est difficile de définir "Linux" car vous construisez un système Linux en sélectionnant les morceaux que vous voulez et en les assemblant, et selon ce que veut un utilisateur Linux individuel, vous pouvez impliquer à peu près n'importe quel langage. (Comme Paul l'a dit, Python et C ++ jouent des rôles importants)
la source
En plus du noyau de Mac OS X, Finder n'avait pas été écrit en Objective-C avant Snow Leopard. Dans Snow Leopard, il a été écrit en Cocoa, Objective-C
la source
Voir sous le titre Un système d'exploitation fonctionnant sur plusieurs plates-formes où il est indiqué:
la source
Windows n'est évidemment pas écrit en C # (!)
Il suffit de voir le code source de Windows et vous verrez ...
la source