Me gustaría recopilar aquí lo que sucede cuando ejecuta un archivo ejecutable en Windows, Linux y OSX. En particular, me gustaría entender exactamente el orden de las operaciones: supongo que el kernel carga el formato de archivo ejecutable (PE, ELF o Mach-O), pero ignoro las diversas secciones del ELF (Ejecutable y Linkable Format) y su significado), y luego tiene el enlazador dinámico que resuelve las referencias, luego se ejecuta la parte __init
del ejecutable, luego la principal, luego __fini
, y luego se completa el programa, pero estoy seguro de que es muy duro, y probablemente equivocado.¿Qué sucede cuando ejecuta un programa?
Editar: la pregunta es ahora CW. Me estoy llenando de Linux. Si alguien quiere hacer lo mismo con Win y OSX, sería genial.
¿Soy yo o el alcance de esta pregunta es demasiado amplio? – mezoid
no creo que sea demasiado amplia, pero probablemente debería ser la comunidad wiki –
me gustaría poner una recompensa por él si no tengo suficiente información. No podré hacerlo si es CW. –