| Entendiendo el Mecanismo de Inicio (Initcall) del Kernel de Linux: Creando funciones Dinámicas de apuntadores de Llamadas a Tablas | ||
|---|---|---|
| <<< Anterior | Informacion relacionada | Siguiente >>> |
El enlazador (en nuestro caso, GNU ld) es el responsable de tomar el código burdo que genera el compilador/ensamblador y crear un archivo ELF válido. Los archivos ELF consisten de varias secciones diferentes y tienen diferentes capacidades. En otras palabras, el crear un archivo ELF puede que este disimuladamente involucrado al tener en cuenta todas las opciones que estan disponibles y toda la información que necesita almacenarse. Por consiguiente, el enlazador, usa un script que ayuda a guiar cómo se diseña el archivo. Si le proporcionas un script, se te proporcionara uno implícito por defecto.
Se usan sus diferentes secciones y atributos, por ejemplo el cargador del sistema operativo (cuando quieres ejecutar una aplicación). Por ejemplo, algunas secciones contienen código ejecutable que necesita cargarse en memoria, otras secciones que no contienen ningún tipo de dato, pero más bien le dicen al cargador en donde asignar algo de memoria para uso de la aplicación(a veces esta memoria necesita ser explicitamente vuelta a ceros). Algunas secciones no se usan por el cargador, por ejemplo, el cargador no usara las secciones que contienen informacion de depuración, en vez estas se usaran por el depurador.
Por defecto, el código ejecutable que escribes termina en una sección llamada .text, los datos inicializados en una sección .data , datos de solo-lectura en .rodata, datos no inicializados en .bss...
| <<< Anterior | Inicio | Siguiente >>> |
| Información Relacionada | Arriba | Compilador |