~/si/ud03 $ cat 01-funciones-y-arquitectura.md
- Sistemas Informáticos
- UD03
- lección 01/06
Funciones y arquitectura del sistema operativo
Abrir las diapositivas de apoyo: Funciones y arquitectura del sistema operativo (pantalla completa)
1.1. Introducción al software de base
Section titled “1.1. Introducción al software de base”En UD01 seguimos cómo cooperan CPU, memoria y entrada/salida; en UD02 localizamos esas funciones en el equipo real y comprobamos su puesta en marcha. Ahora suponemos que el equipo ya dispone de un sistema operativo: queremos comprender cómo permite que varias aplicaciones compartan ese hardware sin tener que controlarlo por su cuenta.
Un sistema informático combina hardware y software. El hardware son los componentes físicos: CPU, memoria, placa base, disco, pantalla o red. El software es el conjunto de instrucciones y datos que hacen que ese hardware realice tareas útiles.
El software puede organizarse en tres grupos principales:
| Tipo | Función | Ejemplos |
|---|---|---|
| Firmware | Inicia o controla un dispositivo concreto desde memoria no volátil. | UEFI, firmware de un router, firmware de una impresora. |
| Software de base | Gestiona recursos y proporciona servicios generales. | Sistema operativo, controladores, utilidades del sistema. |
| Software de aplicación | Resuelve una necesidad de la persona usuaria. | Navegador, entorno integrado de desarrollo (IDE), editor de imágenes, hoja de cálculo. |
El sistema operativo (SO) es el componente central del software de base. Tiene dos papeles complementarios:
- Es un administrador de recursos: reparte CPU, memoria, almacenamiento y dispositivos entre los programas.
- Es una máquina extendida: oculta detalles físicos mediante abstracciones más cómodas, como archivos, ventanas, procesos, cuentas o impresoras.
Por ejemplo, al guardar un archivo, una aplicación no necesita decidir en qué sectores físicos del disco escribir. Solicita ese servicio al sistema operativo, que organiza el sistema de archivos y utiliza el controlador apropiado.
Esta división permite entender la evolución de los sistemas operativos: cuanto más complejo es el hardware y más personas o programas deben usarlo, más necesaria resulta una capa que lo organice.
1.2. Arquitectura básica: kernel, espacio de usuario, shell e interfaz
Section titled “1.2. Arquitectura básica: kernel, espacio de usuario, shell e interfaz”Los sistemas operativos separan las funciones con mayor privilegio de las aplicaciones ordinarias. Esta separación protege el equipo: un error de un editor de texto no debería poder escribir directamente sobre el disco ni detener cualquier proceso del sistema.
1.2.1. Kernel y espacio de usuario
Section titled “1.2.1. Kernel y espacio de usuario”El kernel o núcleo es la parte central del sistema operativo. Se ejecuta con privilegios elevados y administra recursos críticos: CPU, memoria, dispositivos, comunicaciones y seguridad básica.
Las aplicaciones ordinarias utilizan un espacio de usuario separado del espacio reservado al núcleo. Estos espacios describen la organización y protección de la memoria. Los modos de ejecución describen, en cambio, qué operaciones permite realizar la CPU: el código de una aplicación se ejecuta normalmente en modo usuario; el núcleo atiende operaciones protegidas en modo núcleo. Son ideas relacionadas, pero espacio y modo no son sinónimos.
Tampoco equivalen a los permisos de una cuenta. Una aplicación abierta por una persona administradora sigue ejecutándose normalmente en modo usuario: disponer de autorización para modificar un archivo no permite ejecutar por ello cualquier instrucción privilegiada de la CPU.
Cuando una aplicación necesita una operación protegida, solicita una llamada al sistema. Por ejemplo, abrir un archivo, crear un proceso o reservar memoria requiere que el sistema gestione la petición; algunas reservas se satisfacen desde memoria ya disponible en el proceso. Una interfaz de programación de aplicaciones o API ofrece funciones que un programa puede utilizar; una biblioteca puede apoyarse en llamadas al sistema para atenderlas.
Aplicación -> biblioteca o API -> llamada al sistema -> kernel -> hardwareFigura 1.1. De la aplicación al recurso. Lee el esquema desde la petición hacia el hardware. Es un modelo conceptual próximo al Linux del laboratorio: agrupa núcleo y controladores para explicar su cooperación, sin afirmar que todos los SO sitúen sus componentes del mismo modo.
Por ejemplo, un visor ya abierto necesita leer una imagen del SSD para mostrarla:
- El visor solicita abrir y leer el archivo mediante las funciones de una biblioteca; las peticiones necesarias llegan a la interfaz de llamadas al sistema.
- El mecanismo de entrada al núcleo permite ejecutar el código del SO en modo núcleo. El SO comprueba la petición y si la identidad del proceso está autorizada para acceder al archivo.
- El sistema de archivos localiza los datos. El SO puede conservar en RAM una copia de datos leídos anteriormente: es una caché de datos del SO, distinta de la caché de CPU estudiada en UD01. Si la copia está disponible, puede atender la lectura sin acceder de nuevo al SSD.
- Si hace falta una lectura física, el SO coordina la operación con el controlador del dispositivo. La aplicación no elige sectores ni maneja directamente el SSD.
- Cuando los datos están disponibles, el SO los hace accesibles al visor según la interfaz utilizada. La aplicación continúa en modo usuario y puede interpretar la imagen.
El ejemplo simplifica las operaciones internas y no supone que abrir, leer y mostrar sean una única llamada. Su idea central es que la aplicación pide un servicio, el SO comprueba y organiza el acceso y el hardware realiza la operación necesaria.
1.2.2. Controladores y servicios
Section titled “1.2.2. Controladores y servicios”Los controladores traducen las órdenes generales del sistema en operaciones entendibles por un dispositivo concreto. Los servicios son procesos que trabajan en segundo plano ofreciendo funciones, como impresión, red, actualización o registro de eventos.
Un servicio no tiene por qué mostrar una ventana. Puede iniciarse al arrancar el sistema y permanecer a la espera de peticiones.
1.2.3. Shell, terminal e interfaz gráfica
Section titled “1.2.3. Shell, terminal e interfaz gráfica”La persona usuaria necesita una forma de comunicarse con el sistema operativo:
- El shell interpreta órdenes y ejecuta programas. Puede ser textual o formar parte de un entorno más amplio.
- La terminal es la aplicación que proporciona una ventana para usar un shell de texto.
- La interfaz gráfica de usuario (GUI) permite trabajar con ventanas, iconos, menús y puntero.
El shell no es el kernel. Ambos pueden trabajar juntos, pero cumplen funciones distintas: el shell recibe órdenes de la persona usuaria; el kernel administra los recursos necesarios para ejecutarlas.
1.3. Funciones generales del sistema operativo
Section titled “1.3. Funciones generales del sistema operativo”La arquitectura anterior explica quién puede hacer qué. Ahora podemos agrupar las funciones del sistema operativo según el recurso que administra.
| Función | Recurso o problema | Ejemplo visible |
|---|---|---|
| Gestión de procesos | CPU y ejecución concurrente. | Alternar navegador, IDE y reproductor. |
| Gestión de memoria | RAM y memoria virtual. | Evitar que un programa invada la memoria de otro. |
| Gestión de E/S | Teclado, red, disco, impresora, pantalla. | Recibir una pulsación o guardar un archivo. |
| Sistema de archivos | Organización persistente de datos. | Carpetas, nombres, permisos y directorios. |
| Gestión de usuarios y seguridad | Identidad, permisos y aislamiento. | Iniciar sesión con una cuenta y limitar accesos. |
| Interfaz y servicios | Comunicación con la persona usuaria y aplicaciones. | Escritorio, terminal, impresión o actualización. |
Estas funciones no son compartimentos estancos. Abrir un documento puede crear un proceso, reservar memoria, leer datos del almacenamiento, mostrar una ventana y comprobar permisos. En los siguientes apartados veremos primero el reparto de CPU y después el resto de recursos de forma introductoria.
1.4. Formas de organizar el núcleo
Section titled “1.4. Formas de organizar el núcleo”Ampliación
La separación entre usuario y núcleo explica los privilegios, pero no determina por sí sola cómo se distribuye el código interno del SO. En un núcleo monolítico, muchos servicios de gestión y controladores funcionan en el espacio del núcleo. Puede admitir módulos cargables: monolítico no significa que todo sea un único archivo fijo. Linux es un ejemplo de núcleo monolítico modular.
Un micronúcleo conserva en modo privilegiado un conjunto reducido de funciones y sitúa otros servicios en procesos separados. Estos se comunican mediante mensajes. La separación puede facilitar el aislamiento de fallos, aunque introduce comunicación adicional. Los diseños híbridos combinan decisiones de ambos modelos. Estas categorías describen organización; no permiten concluir que un sistema sea siempre más rápido o más seguro solo por su etiqueta.
Figura 1.2. Dos organizaciones del núcleo. Compara dónde se sitúan los servicios y cómo se comunican, manteniendo la separación entre código de usuario y código privilegiado. El esquema es funcional: no representa todos los componentes ni todas las variantes de cada familia.
En el panel izquierdo, la aplicación solicita una operación al núcleo, que reúne gestión de procesos, memoria, archivos y controladores; los módulos amplían ese núcleo sin dejar por ello de ejecutarse con sus privilegios. En el derecho, el servicio de archivos y el controlador aparecen separados en espacio de usuario: cooperan mediante mensajes con el micronúcleo. La diferencia que interesa observar es dónde se ejecutan las funciones y cómo se comunican, no el número de cajas ni una supuesta superioridad de un modelo.
1.5. ¿Qué funciones del SO intervienen?
Section titled “1.5. ¿Qué funciones del SO intervienen?”RA2.b.
Relaciona las situaciones con las funciones del apartado 1.3: gestión de procesos, gestión de memoria, gestión de E/S, sistema de archivos, gestión de usuarios y seguridad, e interfaz y servicios. En una situación puede intervenir más de una función; indica las que consideres necesarias y explica su papel.
| Situación | Funciones del SO que intervienen | ¿Qué aporta cada una? |
|---|---|---|
| Mantienes abiertos un navegador y un editor, y ambos necesitan ejecutar instrucciones. | ||
| Una aplicación solicita espacio de RAM para trabajar con sus datos. | ||
| Abres un documento guardado en el SSD. | ||
| Envías un documento a una impresora. | ||
| Inicias sesión con tu cuenta y accedes a tus archivos. |
Completa la tabla. Después elige dos situaciones en las que cooperen varias funciones y explica esa cooperación en una o dos frases por caso. No basta con enumerar nombres: relaciona cada función con una necesidad de la situación.
1.6. Corrige la explicación técnica
Section titled “1.6. Corrige la explicación técnica”RA2.b.
Un compañero ha escrito estas afirmaciones. Las cuatro contienen un error: reescribe cada una de forma correcta y explica brevemente qué conceptos estaba confundiendo.
| Afirmación que debes corregir | Explicación corregida | ¿Cuál era la confusión? |
|---|---|---|
| «El shell es el núcleo del sistema operativo: interpreta órdenes y administra directamente todos los recursos críticos». | ||
| «Una aplicación abierta con una cuenta administradora ejecuta siempre sus instrucciones en modo núcleo». | ||
| «Cada aplicación controla directamente sus dispositivos, sin solicitar servicios al sistema operativo». | ||
| «Todos los servicios del sistema muestran una ventana para poder funcionar». |
Usa las distinciones entre shell y núcleo, permisos de cuenta y modos de ejecución, aplicación y controlador, y servicio e interfaz. Completa las dos columnas; señalar únicamente que una frase es falsa no explica el error.
1.7. Compara las organizaciones del núcleo
Section titled “1.7. Compara las organizaciones del núcleo”RA2.b.
Observa la figura 1.2 del apartado 1.4, que compara un núcleo monolítico modular y un micronúcleo. Responde tomando como referencia lo que representa el dibujo:
- ¿Dónde se sitúan los controladores y el servicio de archivos en cada panel? Distingue espacio de usuario y espacio privilegiado.
- ¿Cómo se comunican la aplicación, el núcleo y los servicios en cada organización? Apóyate en las flechas y etiquetas de la figura.
- ¿Por qué permitir cargar módulos no convierte un núcleo monolítico en micronúcleo? Explica qué diferencia organizativa seguiría existiendo.
Escribe tres respuestas breves y razonadas. No necesitas buscar productos ni decidir qué modelo es «mejor»: compara la ubicación de las funciones y su forma de comunicación.
Ahora que conocemos los servicios del SO, el siguiente bloque permitirá elegir qué sistema y qué aplicaciones responden a un escenario concreto.