Ich möchte hier sammeln, was passiert, wenn Sie eine ausführbare Datei unter Windows, Linux und OSX ausführen. Insbesondere möchte ich genau die Reihenfolge der Operationen verstehen: Ich vermute, dass das ausführbare Dateiformat (PE, ELF oder Mach-O) vom Kernel geladen wird (aber ich ignoriere die verschiedenen Abschnitte der ELF (Executable und Linkable Format) und ihre Bedeutung), und dann haben Sie den dynamischen Linker, der die Referenzen auflöst, dann wird der __init
Teil der ausführbaren Datei ausgeführt, dann die Hauptversion, dann die __fini
, und dann ist das Programm abgeschlossen, aber ich bin mir sicher sehr grob und wahrscheinlich falsch.Was passiert, wenn Sie ein Programm ausführen?
Bearbeiten: Die Frage ist jetzt CW. Ich fülle für Linux auf. Wenn jemand das gleiche für Win und OSX machen möchte, wäre es großartig.
Ist es nur ich, oder ist der Umfang dieser Frage viel zu weit? – mezoid
Ich denke nicht, dass es zu breit ist, aber sollte wahrscheinlich Community-Wiki –
Ich würde gerne ein Kopfgeld darauf setzen, wenn ich nicht genug Feedback bekomme. Ich werde es nicht tun können, wenn es CW ist. –