diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index a66ea3a..1846166 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -4,36 +4,24 @@
"type": "split",
"children": [
{
- "id": "c841a021395cc4d3",
+ "id": "84c5dfd2b48489b3",
"type": "tabs",
"children": [
{
- "id": "d8a559569207f8b1",
+ "id": "af3658905894d992",
"type": "leaf",
"state": {
- "type": "image",
+ "type": "markdown",
"state": {
- "file": "TERCERO/SPD/images/Pasted image 20241022150214.png"
+ "file": "TERCERO/SS/SS 24-25.md",
+ "mode": "source",
+ "source": false
},
- "icon": "lucide-image",
- "title": "Pasted image 20241022150214"
- }
- },
- {
- "id": "2cf8494471daa0d9",
- "type": "leaf",
- "state": {
- "type": "diff-view",
- "state": {
- "file": "conflict-files-obsidian-git.md",
- "staged": false
- },
- "icon": "git-pull-request",
- "title": "Diff View (conflict-files-obsidian-git)"
+ "icon": "lucide-file",
+ "title": "SS 24-25"
}
}
- ],
- "currentTab": 1
+ ]
}
],
"direction": "vertical"
@@ -89,7 +77,8 @@
}
],
"direction": "horizontal",
- "width": 300
+ "width": 300,
+ "collapsed": true
},
"right": {
"id": "44cf06183e1c1c7d",
@@ -186,10 +175,12 @@
"obsidian-git:Open Git source control": false
}
},
- "active": "2cf8494471daa0d9",
+ "active": "af3658905894d992",
"lastOpenFiles": [
- "conflict-files-obsidian-git.md",
+ "Pasted image 20241024113018.png",
+ "Pasted image 20241024090239.png",
"TERCERO/SPD/images/Pasted image 20241022150214.png",
+ "conflict-files-obsidian-git.md",
"TERCERO/ATR1/images/Pasted image 20241020204947.png",
"TERCERO/ATR1/images/Pasted image 20241020204701.png",
"TERCERO/ATR1/images/Pasted image 20241020204340.png",
@@ -200,7 +191,6 @@
"TERCERO/SPD/Teoría_2425.md",
"TERCERO/SPD/images/Pasted image 20241022134454.png",
"Imagen de WhatsApp 2024-10-22 a las 11.43.21_270060da.jpg",
- "TERCERO/IA/images/tic-tac-toe.gif",
"TERCERO/IA/Teoría_2425.md",
"TERCERO/SS/SS 24-25.md",
"TERCERO/ATR1/Teoría_2425.md",
diff --git a/Pasted image 20241024090239.png b/Pasted image 20241024090239.png
new file mode 100644
index 0000000..3b874d0
Binary files /dev/null and b/Pasted image 20241024090239.png differ
diff --git a/Pasted image 20241024113018.png b/Pasted image 20241024113018.png
new file mode 100644
index 0000000..931ec43
Binary files /dev/null and b/Pasted image 20241024113018.png differ
diff --git a/TERCERO/SS/SS 24-25.md b/TERCERO/SS/SS 24-25.md
index 3d99a2d..9af7ee8 100644
--- a/TERCERO/SS/SS 24-25.md
+++ b/TERCERO/SS/SS 24-25.md
@@ -182,3 +182,36 @@ A diferencia del **enlace estático**, donde el ejecutable se construye totalmen
- Si lo hay, localiza la función en memoria y la enlaza. Además crea una nueva sección de datos para `printf` en el espacio de memoria virtual del nuevo programa.
- Al cerrarse todos los programas que usan ese código, se descarga de memoria.
**El objetivo es que todo programa en ejecución comparta el código de printf.obj pero que cada uno tenga una copia privada de los datos definidos en este.**
+
+# TEMA 4: Modelo de programación de un SO
+### Arquitectura de un SO
+
+![[Pasted image 20241024090239.png|600]]
+
+## 1. Para qué programar directamente con el SO
+
+![[Pasted image 20241024113018.png|600]]
+### Como se usa indirectamente
+Vía bibliotecas/runtime/frameworks del lenguaje. Por ejemplo:
+```C
+if( (stream = fopen("data", "w+" )) == NULL )
+```
+Flujo de parámetros: `fopen` $\rightarrow$ `CreateFile` $\rightarrow$ `NTCreateFile` $\rightarrow$ `Kernel`
+Flujo de errores es el inverso
+### Como se usa directamente
+En C/C++ parece fácil: usándolo. La mayoría de SO están escritos en C así que la API es accesible con C/C++.
+### Por qué usarlo directamente
+- Se ahorra sobrecarga de la biblioteca/framework.
+- Acceso a todas las capacidades del SO
+ - Ejemplos: `system`, `CreateProcess`
+- Más control de errores
+## 2. Versiones de un SO
+- Qué cambia entre versiones de un SO:
+ - Si se incluyen o no algunos módulos
+ - Evolución del kernel
+- Soporte del procesador
+ - En Windows (NT): x86, x64... Poca variedad comparado con otros SO.
+- ¿Qué implica?
+ - Portabilidad: binaria (raramente), source (hay que recompilar).
+ - API: nuevas funciones con cada versión y funciones deprecated.
+## 3. Programación en Windows desde C/C++
diff --git a/conflict-files-obsidian-git.md b/conflict-files-obsidian-git.md
deleted file mode 100644
index d8bbd4f..0000000
--- a/conflict-files-obsidian-git.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Conflicts
-Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push`
-(This file will automatically be deleted before commit)
-[[#Additional Instructions]] available below file list
-
-- Not a file: .obsidian/workspace.json
-
-# Additional Instructions
-I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text.
-
-```diff
-<<<<<<< HEAD
- File changes in local repository
-=======
- File changes in remote repository
->>>>>>> origin/main
-```
\ No newline at end of file