Warum funktioniert ein ausführbares Programm für eine bestimmte CPU unter Linux und Windows nicht?

Ein ausführbares Problem wie exe funktioniert nicht unter Linux (ohne Wein). Beim Kompilieren von Quellcode erzeugen Compiler Objektcode, der für eine bestimmte CPU-Architektur spezifisch ist. Dieselbe Anwendung funktioniert jedoch nicht auf einem anderen Betriebssystem mit derselben CPU. Ich weiß, dass der Code möglicherweise betriebssystemspezifische Anweisungen enthält, die das Ausführen von ausführbaren Dateien verhindern. Aber was ist mit einem einfachen Programm 2 + 2? Ein verwirrender Teil ist, was zum Teufel, dass der Maschinencode das Arbeiten verhindert. Maschinencode spezifisch für CPU oder? Wenn wir das ausführbare Dateiformat entfernen, sehen wir dann den gleichen Maschinencode (wie 2 + 2) für beide Betriebssysteme?

Noch eine Frage: Was ist mit Assemblersprache? Verwenden Windows und Linux unterschiedliche Assemblersprachen für dieselbe CPU ?.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage