1. Hardware del sistema: Esta es la base:la CPU, memoria, dispositivos de almacenamiento, dispositivos de entrada/salida (teclado, mouse, pantalla, etc.).
2. Firmware: Este es un software de bajo nivel integrado directamente en hardware (como el BIOS/UEFI en una computadora). Inicializa el hardware y permite que el sistema operativo se cargue. Es el puente entre el hardware y el sistema operativo.
3. Sistema operativo (OS): El sistema operativo es el software del sistema central. Actúa como intermediario entre el hardware y el software de la aplicación. Las funciones clave incluyen:
* Abstracción de hardware: El sistema operativo oculta las complejidades del hardware del software de aplicación. Las aplicaciones no necesitan conocer los detalles del controlador del disco duro; Simplemente solicitan datos, y el sistema operativo maneja la interacción con el hardware.
* Gestión de recursos: El sistema operativo administra el tiempo de la CPU, la memoria, el espacio de almacenamiento y los periféricos. Asigna estos recursos a diferentes procesos y aplicaciones de manera eficiente. Esto incluye procesos de programación, gestión de la asignación de memoria (memoria virtual) y sistemas de archivos de manejo.
* Gestión de procesos: El sistema operativo crea, administra y termina los procesos (en ejecución de programas). Asegura los procesos se ejecutan simultáneamente sin interferir entre sí.
* Gestión del sistema de archivos: El sistema operativo organiza archivos y directorios en dispositivos de almacenamiento, proporcionando una forma estructurada de almacenar y recuperar información.
* Seguridad: El sistema operativo proporciona características de seguridad para proteger el sistema del acceso no autorizado y el malware. Esto incluye autenticación del usuario, control de acceso y actualizaciones de seguridad.
* Entrada/salida (E/S) Administración: El sistema operativo maneja la comunicación entre la computadora y los dispositivos externos.
4. Software del sistema (más allá del sistema operativo): Esta capa incluye programas que admiten y mejoran el sistema operativo. Los ejemplos incluyen:
* Controladores del dispositivo: Estos son pequeños programas que permiten que el sistema operativo se comunique con dispositivos de hardware específicos (impresoras, tarjetas de sonido, etc.). Son cruciales para que el sistema operativo interactúe con el hardware de manera efectiva.
* Utilidades: Estos son programas que realizan diversas tareas de mantenimiento del sistema, como limpieza de disco, desfragmentación, copia de seguridad y monitoreo del sistema.
* Bibliotecas del sistema: Colecciones de código preescritado que proporcionan funciones comunes al software de aplicaciones, reduciendo el tiempo y el esfuerzo de desarrollo. Estos a menudo proporcionan funciones de entrada/salida, rutinas de gestión de memoria y más.
* Compiladores/intérpretes de lenguaje de programación: Estos traducen el código legible por humanos en el código de la máquina que la CPU puede ejecutar.
Cómo trabajan juntos:
Imagina pedir comida en un restaurante. El hardware es la cocina y los ingredientes, el firmware es la configuración básica de la cocina (hornos, estufas), el sistema operativo es el camarero que toma su pedido, administra el personal de la cocina (procesos) y le brinda sus alimentos (resultados de las aplicaciones) y el software del sistema son las recetas (bibliotecas) y las herramientas de cocina (utilidades y controladores) que ayudan a los alimentos. El software de aplicación es su solicitud de comida.
El sistema operativo se basa en el firmware para inicializar el hardware. Luego, el sistema operativo utiliza software del sistema (controladores, bibliotecas, utilidades) para administrar y controlar el hardware, creando un entorno donde el software de aplicaciones puede ejecutarse sin interactuar directamente con las complejidades del hardware. El software de aplicación solicita recursos y servicios del sistema operativo, lo que a su vez interactúa con el software y el hardware del sistema subyacente para cumplir con esas solicitudes. Toda la estructura funciona en colaboración para proporcionar una experiencia informática funcional y eficiente.