¿Qué es un Sistema Operativo?
Un sistema operativo (SO) es el programa que, tras cargarse inicialmente en el ordenador mediante un programa de arranque, gestiona todos los demás programas de aplicación en un ordenador. Los programas de aplicación hacen uso del sistema operativo realizando solicitudes de servicios a través de una interfaz de programa de aplicación (API) definida. Además, los usuarios pueden interactuar directamente con el sistema operativo a través de una interfaz de usuario, como una interfaz de línea de comandos (CLI) o una interfaz gráfica de usuario (GUI).
¿Por qué Utilizar un Sistema Operativo?
Un sistema operativo aporta grandes ventajas al software informático y al desarrollo de software. Sin un sistema operativo, cada aplicación tendría que incluir su propia interfaz de usuario, así como el código necesario para gestionar todas las funciones de bajo nivel del ordenador subyacente, como el almacenamiento en disco, las interfaces de red, etcétera. Teniendo en cuenta la gran variedad de hardware disponible, esto sobredimensionaría enormemente el tamaño de cada aplicación y haría inviable el desarrollo de software.
En cambio, muchas tareas comunes, como enviar un paquete de red o mostrar texto en un dispositivo de salida estándar, como una pantalla, pueden descargarse en el software del sistema, que sirve de intermediario entre las aplicaciones y el hardware. El software del sistema proporciona una forma coherente y repetible para que las aplicaciones interactúen con el hardware sin que las aplicaciones necesiten conocer ningún detalle sobre el hardware.
Mientras cada aplicación acceda a los mismos recursos y servicios de la misma manera, el software del sistema — el sistema operativo — puede dar servicio a casi cualquier número de aplicaciones. Esto reduce enormemente la cantidad de tiempo y código necesarios para desarrollar y depurar una aplicación, al tiempo que garantiza que los usuarios puedan controlar, configurar y gestionar el hardware del sistema a través de una interfaz común y bien entendida.
Una vez instalado, el sistema operativo se basa en una amplia biblioteca de controladores de dispositivos para adaptar los servicios del SO al entorno de hardware específico. Así, cada aplicación puede hacer una llamada común a un dispositivo de almacenamiento, pero el SO recibe esa llamada y utiliza el controlador correspondiente para traducir la llamada en acciones (comandos) necesarias para el hardware subyacente en ese ordenador concreto. Hoy en día, el sistema operativo proporciona una plataforma integral que identifica, configura y gestiona una serie de hardware, como procesadores; dispositivos de memoria y gestión de memoria; chipsets; almacenamiento; redes; comunicación de puertos, como Video Graphics Array (VGA), High-Definition Multimedia Interface (HDMI) y Universal Serial Bus (USB); e interfaces de subsistemas, como Peripheral Component Interconnect Express (PCIe).
¿Cuáles son las Funciones del Sistema Operativo?
Un sistema operativo proporciona tres funciones esenciales: Ofrece una interfaz de usuario a través de una CLI o GUI; lanza y gestiona la ejecución de aplicaciones; e identifica y expone los recursos de hardware del sistema a esas aplicaciones — normalmente, a través de una API estandarizada.
INTERFAZ DE USUARIO. Todos los sistemas operativos necesitan una interfaz de usuario que permita a los usuarios y administradores interactuar con el SO para instalarlo, configurarlo e incluso solucionar los problemas del sistema operativo y del hardware subyacente. Existen dos tipos principales de interfaz de usuario: CLI y GUI.
La CLI, o ventana en modo terminal, proporciona una interfaz basada en texto en la que los usuarios confían en el teclado tradicional para introducir comandos, parámetros y argumentos específicos relacionados con tareas concretas. La interfaz gráfica de usuario (GUI), o de escritorio, ofrece una interfaz visual basada en iconos y símbolos en la que los usuarios confían en los gestos que realizan los dispositivos de interfaz humana, como los touchpads, las pantallas táctiles y los ratones.
La GUI es la más utilizada por los usuarios ocasionales o finales que están interesados principalmente en manipular archivos y aplicaciones, como hacer doble clic en el icono de un archivo para abrirlo en su aplicación predeterminada. La CLI sigue siendo popular entre los usuarios avanzados y los administradores de sistemas que deben manejar una serie de comandos altamente granulares y repetitivos de forma regular, como la creación y ejecución de scripts para configurar nuevos ordenadores personales (PC) para los empleados.
Gestión de aplicaciones. Un sistema operativo se encarga del lanzamiento y la gestión de cada aplicación. Suele admitir una serie de comportamientos, como la multiplicidad de procesos o subprocesos en tiempo compartido, de modo que varias tareas puedan compartir el tiempo disponible de los procesadores; manejar las interrupciones que producen las aplicaciones para captar la atención inmediata de un procesador, asegurando que haya suficiente memoria para ejecutar la aplicación y sus datos correspondientes sin interferir con otros procesos; llevar a cabo un manejo de errores que pueda eliminar con gracia los procesos de una aplicación; y realizar la gestión de la memoria sin interrumpir otras aplicaciones o el SO.
Un sistema operativo también puede admitir APIs que permitan a las aplicaciones utilizar funciones del SO y del hardware sin necesidad de saber nada sobre el estado del sistema operativo o del hardware de bajo nivel. Por ejemplo, una API de Windows puede permitir a un programa obtener información de un teclado o un ratón; crear elementos de interfaz gráfica de usuario, como ventanas de diálogo y botones; leer y escribir archivos en un dispositivo de almacenamiento; y mucho más. Las aplicaciones casi siempre se adaptan para utilizar el sistema operativo en el que la aplicación pretende ejecutarse.
Además, un sistema operativo puede realizar los siguientes servicios para las aplicaciones:
- En un sistema operativo multitarea, en el que pueden ejecutarse varios programas al mismo tiempo, el SO determina qué aplicaciones deben ejecutarse en qué orden y cuánto tiempo debe concederse a cada aplicación antes de ceder el turno a otra.
- Gestiona la entrada/salida (E/S) hacia y desde los dispositivos de hardware conectados, como discos duros, impresoras y puertos de acceso telefónico.
- Envía mensajes a cada aplicación o usuario interactivo — o a un operador del sistema — sobre el estado de funcionamiento y los errores que se hayan podido producir.
- Puede descargar la gestión de los trabajos por lotes — por ejemplo, la impresión — para que la aplicación que los inicia no tenga que realizar esta tarea.
- En ordenadores que pueden proporcionar procesamiento paralelo, un sistema operativo puede gestionar cómo dividir el programa para que se ejecute en más de un procesador a la vez.
Todas las principales plataformas informáticas (hardware y software) requieren, y a veces incluyen, un sistema operativo, y los sistemas operativos deben desarrollarse con diferentes características para satisfacer las necesidades específicas de los distintos factores de forma.
Gestión de dispositivos. Un sistema operativo es responsable de identificar, configurar y proporcionar a las aplicaciones un acceso común a los dispositivos de hardware informáticos subyacentes. A medida que el sistema operativo reconoce e identifica el hardware, instala los controladores de dispositivo correspondientes que permiten al sistema operativo y a las aplicaciones que se ejecutan en él utilizar los dispositivos sin ningún conocimiento específico del hardware o los dispositivos.
Un sistema operativo es responsable de identificar la impresora correcta e instalar los controladores de impresora adecuados para que una aplicación sólo tenga que hacer llamadas a la impresora sin tener que utilizar códigos o comandos específicos de esa impresora — ese es el trabajo del sistema operativo. La situación es similar para otros dispositivos, como puertos USB; puertos de red; dispositivos gráficos, como unidades de procesamiento gráfico (GPU); chipsets de placa base; y dispositivos de almacenamiento, como adaptadores de disco Serial-Attached SCSI (SAS) y discos formateados con un sistema de archivos adecuado.
El sistema operativo identifica y configura los dispositivos físicos y lógicos para el servicio y suele registrarlos en una estructura estandarizada, como el Registro de Windows. Los fabricantes de dispositivos parchean y actualizan periódicamente los controladores, y el SO debe actualizarlos para garantizar el mejor rendimiento y seguridad de los dispositivos. Cuando se sustituyen dispositivos, el SO también instala y configura nuevos controladores.
Tipos y Ejemplos de Sistemas Operativos
Aunque las funciones fundamentales de un sistema operativo son omnipresentes, existen innumerables sistemas operativos que atienden a una amplia gama de necesidades de hardware y de usuario.
Sistema operativo de propósito general. Un SO de propósito general representa un conjunto de sistemas operativos destinados a ejecutar multitud de aplicaciones en una amplia selección de hardware, permitiendo al usuario ejecutar una o más aplicaciones o tareas simultáneamente. Un SO de propósito general puede instalarse en muchos modelos diferentes de ordenadores de sobremesa y portátiles y ejecutar aplicaciones que van desde sistemas de contabilidad a bases de datos, pasando por navegadores web o juegos. Los sistemas operativos de propósito general suelen centrarse en la gestión de procesos (hilos) y hardware para garantizar que las aplicaciones puedan compartir de forma fiable la amplia gama de hardware informático presente.
Los sistemas operativos de escritorio más comunes son los siguientes:
- Windows es el sistema operativo estrella de Microsoft, el estándar de facto para ordenadores domésticos y de empresa. Lanzado en 1985, este sistema operativo basado en una interfaz gráfica de usuario ha sido objeto de numerosas versiones desde entonces. La facilidad de uso de Windows 95 fue en gran parte responsable del rápido desarrollo de la informática personal.
- Mac OS es el sistema operativo de la línea Macintosh de ordenadores personales y estaciones de trabajo de Apple.
- Unix es un sistema operativo multiusuario diseñado para ofrecer flexibilidad y adaptabilidad. Desarrollado originalmente en los años 70, Unix fue uno de los primeros sistemas operativos escritos en lenguaje C.
- Linux es un sistema operativo similar a Unix que se diseñó para ofrecer a los usuarios de PC una alternativa gratuita o de bajo coste. Linux tiene fama de ser un sistema eficiente y de rápido rendimiento.
Sistema operativo móvil. Los sistemas operativos móviles están diseñados para adaptarse a las necesidades específicas de la informática móvil y los dispositivos centrados en la comunicación, como los teléfonos inteligentes y las tabletas. Los dispositivos móviles suelen ofrecer recursos informáticos limitados en comparación con los PC tradicionales, y el sistema operativo debe reducirse en tamaño y complejidad para minimizar su propio uso de recursos, garantizando al mismo tiempo recursos adecuados para una o varias aplicaciones que se ejecuten en el dispositivo. Los sistemas operativos móviles tienden a hacer hincapié en un rendimiento eficiente, la capacidad de respuesta del usuario y una gran atención a las tareas de manejo de datos, como el soporte de streaming multimedia. Apple iOS y Google Android son ejemplos de sistemas operativos móviles.
Sistema operativo embebido. No todos los dispositivos informáticos son de uso general. Una enorme variedad de dispositivos dedicados -incluidos los asistentes digitales domésticos, los cajeros automáticos (ATM), los sistemas de aviones, los terminales de puntos de venta (POS) y los dispositivos de Internet de las cosas (IoT)- incluyen ordenadores que requieren un sistema operativo. La principal diferencia es que el dispositivo informático asociado sólo hace una cosa importante, por lo que el sistema operativo está muy despojado y dedicado tanto al rendimiento como a la resiliencia. El SO debe funcionar con rapidez, no bloquearse y gestionar todos los errores con elegancia para seguir funcionando en cualquier circunstancia. En la mayoría de los casos, el SO se suministra en un chip incorporado al propio dispositivo. Por ejemplo, un dispositivo médico utilizado en el equipo de soporte vital de un paciente empleará un sistema operativo embebido que debe funcionar de forma fiable para mantener con vida al paciente. Linux embebido es un ejemplo de SO embebido.
Sistema operativo de red. Un sistema operativo de red (NOS) es otro SO especializado destinado a facilitar la comunicación entre dispositivos que operan en una red de área local (LAN). Un NOS proporciona la pila de comunicación necesaria para entender los protocolos de red con el fin de crear, intercambiar y descomponer paquetes de red. Hoy en día, el concepto de un NOS especializado es en gran medida obsoleto porque otros tipos de SO manejan en gran medida la comunicación de red. Windows 10 y Windows Server 2019, por ejemplo, incluyen capacidades de red completas. El concepto de un NOS todavía se utiliza para algunos dispositivos de red, como enrutadores, conmutadores y cortafuegos, y los fabricantes pueden emplear NOS propietarios, incluidos Cisco Internetwork Operating System (IOS), RouterOS y ZyNOS.
Sistema operativo en tiempo real. Cuando un dispositivo informático debe interactuar con el mundo real dentro de límites de tiempo constantes y repetibles, el fabricante del dispositivo puede optar por utilizar un sistema operativo en tiempo real (RTOS). Por ejemplo, un sistema de control industrial puede dirigir las operaciones de una extensa fábrica o central eléctrica. Una instalación de este tipo producirá señales procedentes de innumerables sensores y también enviará señales para accionar válvulas, actuadores, motores y otros innumerables dispositivos. En estas situaciones, el sistema de control industrial debe responder de forma rápida y predecible a las cambiantes condiciones del mundo real — de lo contrario, puede producirse un desastre. Un RTOS debe funcionar sin búferes, latencias de procesamiento y otros delays, que son perfectamente aceptables en otros tipos de sistemas operativos. Dos ejemplos de RTOS son FreeRTOS y VxWorks.
Las diferencias entre tipos de sistemas operativos no son absolutas, y algunos sistemas operativos pueden compartir características de otros. Por ejemplo, los sistemas operativos de uso general suelen incluir las funciones de red de los NOS tradicionales. Del mismo modo, un sistema operativo embebido suele incluir atributos de un RTOS, mientras que un sistema operativo móvil puede ejecutar numerosas aplicaciones simultáneamente, al igual que otros sistemas operativos de propósito general.