Windows, Linux in welche Sprachen programmiert ?

#1
Hallo,

mich würd mal folgendes interessieren:
In welche Sprachen sind 1. Windows 2. Linux 3. MacOs programmiert.
Bitte nicht spekulieren, weiss das jemand genau ?

Gruß
 
#2
Windows - C++, C, Assembler
Linux - C, Assembler
MacOSX - C, Assembler

Zumindest was die Kernel angeht. Die Systeme selbst bestehen ja eigentlich aus ein wenig mehr.
 
#3
Danke für die erste Antwort.

1. Wenn die BS in mehreren Sprachen programmiert werden wie werden die nachher zusammengefügt, compiliert ?

2. Ich müsste also C, Assembler können um an OpenSource Projekt Linux teilnehmen zu könne d.h. selber was programmieren.

3. Was heisst die Systeme bestehen eigentlich aus wenig mehr ?

Gruß
 
#4
1. mit einem je nach Sprache unterschiedlichen Compiler ;) Der übersetzt den Quellcode dann in Maschinensprache.

2. Das kommt ganz darauf an, an welchem Teil des Linux-Kernels arbeiten willst. für viele Bereiche reicht auch nur C.

3. Die Sprachen, die Bitmuncher gemannt hat, sind die, die für die Programmierung des Kernels verwendet wurden. Die ganzen Anwendungen, die man dann auf dem Betriebssystem laufen lassen kann, können allerdings in allen möglichen anderen Sprachen geschrieben sein (sofern es denn einen Compiler für diese Sprache gibt)
 
F

fetzer

Guest
#5
1. C++ ist an sich nur eine Erweiterung für C. Somit können beispielsweise C-Libraries auch in C++ genutzt werden. Genauso kann Assembler in C benutzt werden. Du solltest dir hier erstmal sicher sein, was C++, C und ASM überhaupt sind.
2. Nein. Ein Programm hängt nicht vom Kern ab, d.h. es gibt viele versch. Sprachen, die die Funktionen aus dem Kernel nutzen können, jedoch nicht von den im Kernel verwendeten Sprachen abhängig sind. Für die Übersetzung der Sprachen ist ein Compiler/Interpreter nötig, der alles wieder "auf eine Ebene bringt ( bzw für das Betriebssystem lesbar macht )", den sog. Maschinencode ( um es einfach auszudrücken ). Es gibt da z.b. Java, .Net-Sprachen, Delphi, usw. Bei Wikipedia kannst du dir ja mal die Liste der Programmiersprachen [1] anschauen.
Wenn du jedoch direkt am Kern Veränderungen vornehmen willst wird dir gerade bei Linux meistens C empfohlen, da es hier eben am einfachsten ist. Allerdings glaube ich auch, dass andere Sprachen auch möglich wären, je nachdem, was du dir eben vorgenommen hast.
3. Versch. Betriebsystemfunktion wurden in anderen Sprachen geschrieben, z.b. Frontends, Shellskripte zur Automatisierung, usw.

[1] http://de.wikipedia.org/wiki/Liste_der_Programmiersprachen
 
#6
Original von Propylon
1. Wenn die BS in mehreren Sprachen programmiert werden wie werden die nachher zusammengefügt, compiliert ?
Die Assembler-Routinen stellen normalerweise den Bootvorgang dar und initialisieren eine Laufzeitumgebung für das vom Compiler ausgegebene Binärformat. Außerdem bieten gerade C und C++ die Möglichkeit von Inline-Assembler um somit auch innerhalb der C/C++-Umgebung ohne Probleme Assembler nutzen zu können. Mehr dazu findest du in jedem Buch über Systemprogrammierung.

Original von Propylon
2. Ich müsste also C, Assembler können um an OpenSource Projekt Linux teilnehmen zu könne d.h. selber was programmieren.
Wenn du am Kernel mitentwickeln willst, solltest du einiges mehr an Kenntnissen mitbringen als nur C und Assembler. Linux ist nunmal nur der Kernel und alles andere sind Programme, die die Funktionalitäten des Kernels mehr oder weniger direkt nutzen. Detaillierte Kenntnisse über die Funktionsweise des Kernels und der Hardware sind dann auch zwingend erforderlich. Ein guter Anfang ist aber z.B. die Kenntnis über Treiber-Entwicklung unter Linux (also die Programmierung von Kernel-Modulen zur Ansteuerung von Hardware) wozu es ein brauchbares Buch unter http://ezs.kr.hsnr.de/TreiberBuch/html/ gibt.

Original von Propylon
3. Was heisst die Systeme bestehen eigentlich aus wenig mehr ?
Wenn du nur den Kernel hättest ohne Programme drumrum könntest du mit System kaum was anfangen. Schau dir den oben geposteten Link an um zu erfahren was Aufgabe des Kernel ist und mach dir dann ein Bild davon was nicht seine Aufgabe ist, also durch Zusatzprogramme und Programmbibliotheken umgesetzt wird.
 
Oben