In welchem Maschinen-Code sind Betriebssysteme geschrieben?

4 Antworten

Von Experte GandalfAwA bestätigt

Es gibt nicht verschiedene Maschinensprachen. Es gibt nur die eine mit 1 und 0. Um von einer Hochsprache wie C jetzt nach Maschinensprache umzuwandeln, braucht man einen Befehlssatz. Z.B. der x86 von Intel, der sehr weit verbreitet ist, auch bei AMD. Windows wurde zwar in erster Linie mit einer Hochsprache wie C entwickelt, dann aber mit einem Assembler (mit einem x86 Assembler) in Assemblersprache umgewandelt. Da die meisten Intel und AMD Prozessoren x86 sind, läuft das dann auch auf denen


jort93  12.10.2022, 13:06
dann aber mit einem Assembler (mit einem x86 Assembler) in Assemblersprache umgewandelt

Etwas das etwas von eine Sprache in eine niedrigere umwandelt nennt sich Compiler.
Ein Assembler wandelt Assembly Code in Maschinencode um.

Die meisten Compiler wandeln den Code direkt in Maschinencode um, ganz ohne Assembler.

2
DerRoll  13.10.2022, 13:04
Es gibt nicht verschiedene Maschinensprachen.

Natürlich gibt es verschiedene Maschinensprachen. Mit "Maschinensprache" ist nicht die Codierung in Bits gemeint, sondern die Codierung der Bits in Opcodes für den jeweiligen Prozessor.

2
Schachpapa  13.10.2022, 13:09
Es gibt nicht verschiedene Maschinensprachen. Es gibt nur die eine mit 1 und 0

Nach dieser Logik gäbe es auch nur eine menschliche Sprache, die aus mit unserem Sprechapparat produzierbaren Geräuschen im Frequenzbereich 100-10000 Hz besteht.

Die Abfolge der 0 und 1 ist doch für die verschiedenen Prozessor(famili)en spezifisch.

1

Hallo CPP,

Der größte Teil von Windows und Linux ist in den Programmiersprachen C geschrieben (auch C++ und C#)

Diesen C-Quellcode kannst Du dann mithilfe einer IDE (Entwicklungsumgebung) kompilieren in Maschinen-Code. Es gibt viele verschiedene Kompilierer (Compiler), für verschiedene Betriebssysteme und für verschiedene CPUs.

Somit kannst du aus der Prgrammiersprache C für verschiedenste Betriebssysteme und CPUs jeweils funktionierende Anwendungen schreiben.

---

In Assembler ist relativ wenig programmiert.

Hier findest Du ein PDF, das ein ein paar gute Grafiken zur Erklärung:

In welchen Maschinen-Code sind Betriebssysteme geschrieben damit sie auf mehreren Computer laufen können

In garkeinem. Sie sind in der Regel in sprachen wie C oder Rust geschrieben und werden dann für die Architektur kompiliert. Sie werden für x86 kompiliert, oder ARM, je nach dem.

Einige Details werden in Assembler manuell geschrieben. Einfach x86 Assembly. Aber zirka 99% sind einfach C meist.

Es gibt nur einen Maschinencode, nämlich den Byte-Code, den die CPU versteht. Dafür gibt's Befehlssätze, die die CPUs unterstützen. Und wenn man Befehlssätze nutzen möchte, die nicht jede CPU unterstützt, muss man das vorher prüfen.

Der meiste Code dürfte aber in C/C++ geschrieben sein und bei z.B. Windows kommt auch noch C++ CLI oder C# dazu. Da übernimmt das dann der jeweilige Compiler.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler