In welchem Maschinen-Code sind Betriebssysteme geschrieben?
Hallo,
Ich habe ein paar Fragen:
- In welchen Maschinen-Code sind Betriebssysteme kompilliert damit sie auf mehreren Computer laufen können? Windows läuft ja auf vielen Intel-Prozessoren und auf vielen AMD-Prozessoren.
- Wo finde ich eine Tabelle die den passenden Maschinen-Code und die passenden Assembler Befehle auflistet
4 Antworten
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
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.
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.
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.
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.