diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 78eca8b..4212d9c 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -4,11 +4,11 @@ "type": "split", "children": [ { - "id": "d7daec3383317892", + "id": "0d1ea4f169e4254d", "type": "tabs", "children": [ { - "id": "5a867c9b37d93159", + "id": "63151d4aca9e230c", "type": "leaf", "state": { "type": "markdown", @@ -69,7 +69,8 @@ } ], "direction": "horizontal", - "width": 300 + "width": 300, + "collapsed": true }, "right": { "id": "44cf06183e1c1c7d", @@ -142,7 +143,7 @@ } ], "direction": "horizontal", - "width": 300 + "width": 749.5 }, "left-ribbon": { "hiddenItems": { @@ -156,12 +157,14 @@ "obsidian-git:Open Git source control": false } }, - "active": "5a867c9b37d93159", + "active": "b40a18c39aef8e17", "lastOpenFiles": [ + "TERCERO/SS/images/Pasted image 20241010115957.png", + "TERCERO/SS/SS 24-25.md", + "TERCERO/SS/images/Pasted image 20241010120358.png", "TERCERO/IA/Teoría_2425.md", "TERCERO/SPD/Teoría_2425.md", "TERCERO/ATR1/Teoría_2425.md", - "TERCERO/SS/SS 24-25.md", "TERCERO/SS/images/Pasted image 20241010092102.png", "TERCERO/SS/images/Pasted image 20241010091834.png", "TERCERO/SPD/images/Imagen de WhatsApp 2024-10-09 a las 21.20.30_7d2eb4f4.jpg", @@ -172,8 +175,6 @@ "TERCERO/SS/images/Pasted image 20241003113528.png", "TERCERO/SS/SS Lab.md", "SEGUNDO/ADDA/Teoría_2324.md", - "TERCERO/SS/images/Pasted image 20241002112436.png", - "TERCERO/SS/images/Pasted image 20241002112350.png", "TERCERO/IA/Apuntes Julia.md", "SEGUNDO/IISSI2/Teoría_2324.md", "SEGUNDO/IISSI1/Teoría_2324.md", diff --git a/TERCERO/SS/SS 24-25.md b/TERCERO/SS/SS 24-25.md index 62cd5dd..bc386bf 100644 --- a/TERCERO/SS/SS 24-25.md +++ b/TERCERO/SS/SS 24-25.md @@ -133,4 +133,32 @@ Hay al menos tres formatos: ## 4. Tipos de archivo ejecutable Hay tantos tipos de ejecutable como mecanismos de carga distintos. Los detalles del mecanismo de carga dependen del SO. ### Imágenes binarias -El ejecutable es un **mapa de memoria**. Es el formato más simple, sin información de carga/reubicación. En el archivo están las zonas de memoria que usa el programa (el SO lo carga y se ejecuta). Se usan en computadores donde el SO o es muy simple o no existe (embedded). +- El ejecutable es un **mapa de memoria**. +- Es el formato más simple, sin información de carga/reubicación. +- En el archivo están las zonas de memoria que usa el programa (el SO lo carga y se ejecuta). +- Se usan en computadores donde el SO o es muy simple o no existe (embedded). +### Ejecutables con información de carga/reubicación +- El ejecutable también es un mapa de memoria, pero más complejo +- Hay varios formatos muy utilizados: + - **COFF (Common Object File Format):** UNIX y Windows (sólo para archivos .obj y .lib). + - **PE (Portable Executable):** variante del COFF para Windows con código ejecutable (.exe y .dll). + - **ELF (Executable and Linkable Format):** variante del COFF usado en UNIX. + +¿Qué contiene un ejecutable? +- Descripción de los **recursos iniciales** del programa + - código + - datos inicializados + - atributos estáticos + - constantes + - tamaño de datos no inicializados y pila +- **Instrucción inicial** donde comienza el código +- **Tablas de reubicación** de datos y código +- Información de debug (opcional) + +Las **secciones mínimas** son: +![[Pasted image 20241010115957.png]] +## 5. Generación del ejecutable: enlace (link) +Es el proceso final de la construcción del ejecutable. Hay dos tipos: +- **Estático:** posible en todos los IDE. +- **Dinámico:** posible en algunos SO/IDE. En el dinámico, el SO completa parte del enlace en la carga del programa y/o durante su ejecución. +![[Pasted image 20241010120358.png]] diff --git a/TERCERO/SS/images/Pasted image 20241010115957.png b/TERCERO/SS/images/Pasted image 20241010115957.png new file mode 100644 index 0000000..45f7c63 Binary files /dev/null and b/TERCERO/SS/images/Pasted image 20241010115957.png differ diff --git a/TERCERO/SS/images/Pasted image 20241010120358.png b/TERCERO/SS/images/Pasted image 20241010120358.png new file mode 100644 index 0000000..049428e Binary files /dev/null and b/TERCERO/SS/images/Pasted image 20241010120358.png differ