Ich habe mich nur gefragt, wer weiß, aus welchen Programmiersprachen Windows, Mac OS X und Linux bestehen und welche Sprachen für jeden Teil des Betriebssystems verwendet werden (z. B. Kernel, Plug-In-Architektur, GUI-Komponenten usw.).
Ich gehe davon aus, dass es für jede Sprache mehrere Sprachen gibt und ich weiß natürlich, dass der Linux-Kernel in C geschrieben ist.
Ich vermute hier völlig, dass Mac OS X viel Objective-C-Code enthält, da es sich um Apples Sprache handelt, die von NeXT abgeleitet ist.
Ich habe gehört, dass Windows C, C ++ und Intel Assembly enthält. Enthält Linux oder Mac OS Assembly-Code?
Gibt es auch Skriptsprachen wie Ruby, Python usw., die von den Betriebssystementwicklern zum Skripten von Teilen des Betriebssystems verwendet werden? Welche Teile des Betriebssystems würden in jeder Sprache geschrieben?
quelle
Antworten:
Alle Kernel verwenden auch Assembler-Code.
quelle
Linux: C. Einige Teile in Montage.
Mac OS X: Kakao hauptsächlich in Objective-C. Kernel in C geschrieben, einige Teile in Assembly.
Windows: C, C ++, C #. Einige Teile im Assembler.
Unix: C. Einige Teile in Montage. (Quelle)
quelle
Mac OS X verwendet in einigen Bibliotheken große Mengen an C ++, wird jedoch nicht verfügbar gemacht, da sie befürchten, dass der ABI beschädigt wird.
quelle
IOKit
,WebKit
undGLKit
. Werfen Sie auch einen Blick aufdyld
. Die sind sehr C ++ schwer.Ich verstehe, dass dies ein alter Beitrag ist, aber Windows ist definitiv nicht in C ++ geschrieben. Es gibt viel C ++, aber was wir technisch als Betriebssystem definieren, ist nicht in C ++. Die Windows-API, der Windows-Kernel (beide sind im Wesentlichen das, was ein Betriebssystem ist) sind in C geschrieben. Vor Jahren erhielt ich einen durchgesickerten Code für Windows 2000 und Windows XP. Der Code war bei weitem nicht vollständig genug, um den Kernel oder die API zu kompilieren, aber wir konnten einzelne Programme und Dienste kompilieren. Zum Beispiel konnten wir Notepad.exe, mspaint.exe und den Dienst spoolsv.exe (Druckerspooler) erfolgreich kompilieren. Alles in C geschrieben. Ich habe nicht noch einmal nachgesehen, aber ich bin sicher, dass durchgesickerter Code immer noch als Torrent-Dateien da draußen überlebt, die möglicherweise noch verfügbar sind.
quelle
Windows: Meistens C und C ++, einige C #
quelle
quelle
Beeindruckend!!! 9 Jahre Frage, aber ich bin gerade auf eine Reihe interner Artikel zum Windows-Befehlszeilenverlauf gestoßen, und ich denke, ein Teil davon könnte für die Windows-Seite der Frage relevant sein:
quelle
Sie haben Recht, MacOSX hat Objective-C im Kern.
Windows C ++
Linux C.
Über die Skriptsprachen, nein, sie sind ziemlich hoch.
quelle
Ich habe gelesen oder gehört, dass Mac OS X hauptsächlich in Objective-C geschrieben ist, wobei einige der untergeordneten Teile wie der Kernel und Hardware-Gerätetreiber in C geschrieben sind. Ich glaube, dass Apple sein eigenes Hundefutter "isst" ", was bedeutet, dass sie Mac OS X mit ihren eigenen Xcode Developer Tools schreiben . Der GCC- Compiler-Linker (GNU Compiler Collection) ist das Unix-Befehlszeilentool, das xCode zum Kompilieren und / oder Verknüpfen von ausführbaren Dateien verwendet. Ich weiß, dass GCC unter anderem Quellcode aus den Sprachen C, Objective-C, C ++ und Objective-C ++ kompiliert.
quelle
Der Linux-Kernel ist meistens in C geschrieben (und ein bisschen Assemblersprache, wie ich mir vorstellen kann), aber einige der wichtigen Userspace-Dienstprogramme (Programme) sind Shell-Skripte, die in der Bash-Skriptsprache geschrieben sind. Darüber hinaus ist es schwierig, "Linux" zu definieren, da Sie im Grunde genommen ein Linux-System erstellen, indem Sie die gewünschten Teile auswählen und zusammenfügen. Je nachdem, was ein einzelner Linux-Benutzer wünscht, können Sie so ziemlich jede Sprache einbeziehen. (Wie Paul sagte, spielen Python und C ++ wichtige Rollen)
quelle
Als Ergänzung zum Kern von Mac OS X war Finder vor Snow Leopard noch nicht in Objective-C geschrieben worden. In Snow Leopard wurde es in Cocoa, Objective-C geschrieben
quelle
Siehe unter der Überschrift Ein Betriebssystem, das auf mehreren Plattformen ausgeführt wird, wo es heißt:
quelle
Windows ist offensichtlich nicht in C # (!) Geschrieben
Sehen Sie einfach den Quellcode von Windows und Sie werden sehen ...
quelle