Frage von JCK2000, 20

Wie werden *.exe ausgeführt?

So weit ich weiß sind die .efi und .uefi Dateien die einzigen die vom Prozessor ausgeführt werden können. Werden die Exe Dateien zur Laufzeit kompeliert oder per Interpreter ausgeführt?

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von PWolff, 8

Wie die Datei im einzelnen heißt, ist dem Prozessor völlig egal.

Es geht darum, welche "Maschinenbefehle" darin stehen - das ist das einzige, was der Prozessor wirklich versteht. Die müssen erst einmal in den "Arbeitsspeicher" geladen werden.

Auf dem Mainboard ist ein Chip, der ein sehr einfaches Betriebssystem enthält, das die wichtigsten Einstellungen vornehmen kann und insbesondere andere Betriebssysteme in den Speicher laden kann. (Heute ist das aber nicht sofort das Betriebssystem, mit dem der Benutzer arbeitet, sondern ein "Bootloader", der seinerseits das Betriebssystem lädt. Also eine mindestens dreifache Staffel.) Dieses einfache System nannte sich bis vor kurzem BIOS, jetzt ist es deutlich leistungsfähiger und nennt sich (U)EFI.

Allerdings gibt es unter diesen Maschinenbefehle auch einige, die "Unterprogramme" an anderer Stelle im Arbeitsspeicher ausführen. Für die Frage am wichtigsten sind die Unterprogramme, die für Ein- und Ausgabe zuständig sind, also für Bildschirm und Tastatur (und bei EFI auch Maus).

Ein Betriebssystem ist im wesentlichen eine Sammlung von solchen Treibern und vielen anderen Hilfsprogrammen für Dinge wie eine Fensterverwaltung.

Die Dateiendung ist in erster Linie dafür da, dass wir Menschen erkennen, wofür so eine Datei gut ist. (Und in zweiter Linie, damit der Computer das erkennt - je nach Betriebssystem.) Die .efi- und .uefi-Dateien rufen Unterprogramme vom EFI bzw. UEFI auf. Die .exe-Dateien rufen Unterprogramme vom Betriebssystem Windows auf. Andere Dateien, oft mit der Endung .bin, rufen Unterprogramme vom Betriebssystem Linux auf. Usw.

Diese Dateien haben aber alle gemeinsam, dass sie direkten Maschinencode enthalten, den der Prozessor ohne Übersetzung ausführen kann.

Antwort
von PeterKremsner, 16

Dateien können alle nicht direkt vom Prozessor ausgeführt werden.

Es läuft immer so ab dass in der Datei Programmanweisungen stehen, mit Speicheradresse und dem jeweilige Wert an dieser Stelle. Die werden dann in den Arbeitsspeicher geladen und dort ausgeführt. Das ist aber egal in welchem Format die Dateien sind, sie müssen vor dem Ausführen sowieso geparst werden und dann in den Arbeitsspeicher geladen werden. Das Parsen bzw wie die Daten in der Datei stehen hängt aber vom Dateityp ab. Außerdem stehen, neben dem Programm, noch einige Metadaten in der exe Datei drinnen

Antwort
von Fishmeaker, 11

.exe Dateien sind bereits compilierte Dateien und werden somit nur noch von der Laufzeitumgebung gelesen.


Kommentar von JCK2000 ,

Heißt das jetzt das sie per Interpreter ausgeführt werden?

Kommentar von Fishmeaker ,

Zu was interpretiert ein Interpreter? In einen Maschinencode, oder?
Eine .exe-Datei ist bereits fertig compilierter Maschinencode.
Sie wird also nur noch von der Umgebung ausgeführt.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten