1. Clasificación del software. Definición de sistema operativo
Material de estudio basado en la edición de 2014. Borrador pendiente de revisión editorial independiente.
Las dos funciones del SO
La primera es gestionar eficientemente los recursos: CPU, memoria principal y dispositivos. Cuando varios programas compiten por ellos, el sistema reparte el tiempo del procesador, protege el acceso a memoria y coordina los dispositivos. La protección abarca tanto la separación entre usuarios como la del propio sistema frente a los programas de usuario.
La segunda es presentar una máquina virtual más sencilla. Aquí, máquina virtual significa una visión del computador que oculta los detalles del hardware. El usuario puede pedir una operación comprensible sin conocer cómo se realiza físicamente.
El ejemplo del documento es leer un fichero. Sin esa abstracción habría que ocuparse del formato del disco —como FAT, NTFS o EXT2—, su geometría, el posicionamiento de los cabezales y la lectura. El SO permite expresar la petición mediante una operación de lectura. La expresión read(nombre_fichero,pos,reg) del texto es una ilustración conceptual; la firma UNIX concreta se presenta en el apartado 3.1.
Las capas del software
| Capa | Función y ejemplos |
|---|---|
| Hardware | Recursos físicos del computador |
| Sistema operativo o núcleo | Gestión, protección y operaciones privilegiadas |
| Resto del software de sistema | Bibliotecas, shell, compiladores y editores |
| Software de aplicación | Resolver tareas específicas: hojas de cálculo, navegador, correo o juegos |
Una biblioteca reúne rutinas de uso común. El shell, los editores y los compiladores facilitan el trabajo, pero instalarlos junto al SO no los convierte necesariamente en parte de su núcleo. El usuario puede elegir otro intérprete o editor, e incluso implementar uno propio. Modificar el código del SO, en cambio, requiere autorización.
La frontera de protección
Todo el software termina ejecutándose como instrucciones del procesador. Para impedir que cualquier programa realice operaciones reservadas, el procesador distingue modos de ejecución. El código del SO utiliza el modo privilegiado; bibliotecas, aplicaciones de sistema y aplicaciones de usuario se ejecutan en modo usuario o no privilegiado.
Esta distinción explica por qué una aplicación de sistema no equivale al núcleo: su nombre describe su utilidad, no sus privilegios. Algunos textos usan «sistema operativo» para todo el software de sistema; en ese uso amplio, «núcleo» o kernel designa la capa inmediatamente superior al hardware.
Esquema de repaso
- Gestión: repartir CPU, proteger memoria y coordinar dispositivos.
- Abstracción: convertir operaciones complejas en servicios manejables.
- Núcleo: operaciones privilegiadas; herramientas del sistema: programas sustituibles en modo usuario.
Debes poder explicar
- Las dos funciones con un ejemplo de cada una.
- Por qué un shell o compilador no es necesariamente parte del núcleo.
- Qué relación existe entre modos de ejecución y protección.