Sistema Operativo (SO)

Cada día son millones y millones de personas los que encienden su ordenador del trabajo o de casa para trabajar, navegar por Internet o realizar todo tipo de tareas. En este caso, la mayoría de usuarios únicamente se preocupan de si el ordenador va más o menos rápido, si se quedan sin espacio en disco, pueden comprar un monitor de mayor calidad o ampliar la memoria RAM para que todo vaya más fluido. Sin embargo, hay un elemento clave para el funcionamiento de nuestro equipo, y ese es el sistema operativo.

Ahora bien, ¿Qué es un sistema operativo? ¿Qué tipo de sistemas operativos existen?. Esas preguntas serán resueltas en este espacio.

¿Qué es un sistema operativo?

Un sistema operativo es el software que maneja el hardware. Comprende un conjunto de programas que controla el funcionamiento del componente físico, facilitando al usuario el uso de la computadora u otro equipo.

El sistema operativo administra los recursos ofrecidos por el hardware y actúa como un intermediario entre la computadora y su usuario. Además, proporciona un ambiente en donde el usuario pueda ejecutar programas en una forma conveniente y eficiente.

Los programas de aplicación hacen uso del sistema operativo al realizar 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 de usuario gráfica (GUI).

Logo de Windows 10
Sistema Operativo Windows 10

Un sistema operativo aporta poderosos beneficios al software informático y al desarrollo de software. Sin un sistema operativo, cada aplicación debería incluir su propia interfaz de usuario, así como el código completo necesario para manejar todas las funciones de bajo nivel de la computadora subyacente, como almacenamiento en disco, interfaces de red, etc. Teniendo en cuenta la amplia gama de hardware subyacente disponible, esto aumentaría enormemente el tamaño de cada aplicación y haría que el desarrollo de software no fuera práctico.

Una vez instalado, el sistema operativo se basa en una amplia biblioteca de controladores de dispositivos para adaptar los servicios del sistema operativo al entorno de hardware específico. Por lo tanto, cada aplicación puede realizar una llamada común a un dispositivo de almacenamiento, pero el sistema operativo recibe esa llamada y usa el controlador correspondiente para traducir la llamada en acciones (comandos) necesarios para el hardware subyacente en esa computadora específica. 

Hoy en día, el sistema operativo proporciona una plataforma integral que identifica, configura y administra una variedad de hardware, incluidos los procesadores; dispositivos de memoria y gestión de memoria; conjuntos de chips; almacenamiento; redes; comunicación de puertos, como Video Graphics Array (VGA), High-Definition Multimedia Interface (HDMI) y Universal Serial Bus (USB); e interfaces de subsistema, como Peripheral Component InterConnect Express (PCIe).

Tipos de sistemas operativos

Monousuario

Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Es un sistema en el cual el tipo de usuario no está definido y, por lo tanto, los datos que tiene el sistema son accesibles para cualquiera que pueda conectarse significa que el sistema no distingue a distintos usuarios con distintos privilegios. 

Todos los usuarios de la computadora pueden realizar las mismas tareas y controlar todos los recursos: instalar, borrar, crear, etc. No existe un administrador del sistema que tenga todos los privilegios y que se diferencie de los usuarios habituales. 

La seguridad es muy escasa porque cualquier usuario (de forma intencionada o no) puede destruir datos y hasta el propio sistema. Este es el caso de los sistemas operativos más antiguos como MS-DOS y algunos más recientes como la serie Windows 95/98/Me de Microsoft o MacOS (antes de MacOS X) de Macintosh. 

En estos sistemas no existe una diferenciación clara entre las tareas que realiza un administrador del sistema y las tareas que realizan los usuarios habituales, no disponiendo del concepto de multiusuario, un usuario común tiene acceso a todas las capacidades del sistema, pudiendo borrar, incluso, información vital para su funcionamiento. 

Un usuario malicioso (remoto o no) que obtenga acceso al sistema podrá realizar todo lo que desee por no existir dichas limitaciones. Estos son algunos de los sistemas operativos que soportan un solo usuario por vez:

  • MS-DOS.
  • AmigaOS.
  • Classic Mac OS.
  • Windows 1.0.
  • Windows 2.0.
  • Windows 3.0.
  • Windows 3.1x.
  • Windows 95.
  • Windows 98.
  • Windows ME.

Multiusuarios

Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente. Ejemplos de sistemas operativos con característica de multiusuario son VMS y Unix, así como sus múltiples derivaciones (e.g. IRIXSolaris, etc.) y los sistemas tipo Unix como LinuxFreeBSD y Mac OS X.

En la familia de los sistemas operativos Microsoft Windows, desde Windows 95 hasta la versión Windows 2000, proveen soporte para ambientes personalizados por usuario, pero no admiten la ejecución de múltiples sesiones de usuario mediante el entorno gráfico.

Las versiones de Windows 2000 server y Windows 2003 server ofrecen el servicio Terminal Server el cual permite la ejecución remota de diferentes sesiones de usuario. Estos son diferentes sistemas operativos con característica de multiusuarios:

  • ·         Mac OS X
  • ·         Linux
  • ·         FreeBSD
  • ·         NetBSD
  • ·         OpenBSD
  • ·         Solaris
  • ·         Plan 9
  • ·         QNX
  • ·         BeOS
  • ·         GNU HURD
  • ·         AIX
  • ·         VMS
  • ·         HP-UX
  • ·         IRIX
  • ·         Tru64
  • ·         VxWorks

Monotareas

Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo, pero cada uno de ellos puede estar haciendo solo una tarea a la vez. Claro ejemplo de sistema operativo monotarea es el MS-DOS.

Multitareas

Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.

· Tipos de sistemas operativos multitarea

Entre los sistemas operativos multitarea, podemos encontrar la siguiente clasificación:

Cooperativa: Los procesos de usuario son quienes ceden la CPU al sistema operativo a intervalos regulares. Muy problemática, puesto que, si el proceso de usuario se cuelga y no cede la CPU al sistema operativo, todo el sistema quedará entonces colgado. Da lugar también a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en sistemas operativos de tiempo real. Un ejemplo seria Windows, hasta la versión 3.11.

· Preceptiva: El sistema operativo es el encargado de administrar el/los procesadores, repartiendo el tiempo de uso de este entre los procesos que estén esperando para utilizarlo. Cada proceso utiliza el procesador durante cortos periodos de tiempo, pero el resultado final es prácticamente igual que si estuviesen ejecutándose al mismo tiempo. Ejemplos de sistemas de este tipo serian Unix y clones (FreeBSD, Linux, etc.), VMS y derivados, AmigaOS, etc.

· Real: Solo se da en sistemas multiprocesador. Es aquella en la que varios procesos se ejecutan realmente al mismo tiempo, en distintos microprocesadores. Suele ser también preceptiva. Ejemplos de sistemas operativos con esa capacidad: Linux y OS X

Uniproceso

En el sistema monoprocesador o uniprocesador existe una sola unidad de procesamiento central (CPU) capaz de ejecutar una serie de instrucciones de índole general. Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS.

Multiproceso

Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. También llamados sistemas paralelos o estrechamente acoplados, los sistemas multiprocesadores tienen dos o más CPU que comparten buses y a veces el reloj, la memoria y los dispositivos periféricos. Los hay de dos tipos simétrica o asimétricamente:

  • multiprocesador asimétrico: cada procesador tiene una tarea específica.
  • multiprocesador simétrico: todos los procesadores realizan las mismas tareas.

Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema. Un aspecto importante que considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores.

En tiempo real

Un sistema operativo de tiempo real es aquel que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo.

Un sistema operativo en tiempo real (RTOS), es un sistema operativo ligero que se utiliza para facilitar la multitarea y la integración de tareas en diseños con recursos y tiempo limitados, como suele ocurrir en los sistemas integrados. Además, el término "tiempo real" indica previsibilidad/determinismo en el tiempo de ejecución más que velocidad bruta, por lo que normalmente se puede demostrar que un RTOS satisface los requisitos de tiempo real duro debido a su determinismo.

De red

Un sistema operativo de red (NOS) es un sistema operativo de computadora (OS) que está diseñado principalmente para soportar estaciones de trabajo, computadoras personales y, en algunos casos, terminales antiguos que están conectados en una red de área local (LAN). El software que hay detrás de un NOS permite que varios dispositivos de una red se comuniquen y compartan recursos entre sí.

La composición de hardware que suele utilizar un NOS incluye varias computadoras personales, una impresora, un servidor y un servidor de archivos con una red local que los conecta entre sí. La función del NOS es entonces proporcionar servicios y características básicas de red que soporten múltiples solicitudes de entrada simultáneamente en un entorno multiusuario.

Debido a que las versiones anteriores de los sistemas operativos básicos no estaban diseñadas para su uso en red, los sistemas operativos en red surgieron como una solución para las computadoras de un solo usuario.

Tipos de sistemas operativos en red

Existen dos tipos básicos de sistemas operativos en red, él NOS peer-to-peer y él NOS cliente/servidor:

  1. Los sistemas operativos de red peer-to-peer permiten a los usuarios compartir recursos de red guardados en una ubicación de red común y accesible. En esta arquitectura, todos los dispositivos son tratados por igual en términos de funcionalidad. Peer-to-peer suele funcionar mejor en redes LAN pequeñas y medianas y es más barato de configurar.
  2. Los sistemas operativos de red cliente/servidor proporcionan a los usuarios acceso a los recursos a través de un servidor. En esta arquitectura, todas las funciones y aplicaciones están unificadas bajo un servidor de archivos que puede utilizarse para ejecutar acciones individuales de los clientes, independientemente de su ubicación física. El modelo cliente/servidor suele ser el más caro de implementar y requiere una gran cantidad de mantenimiento técnico. Una ventaja del modelo cliente/servidor es que la red se controla de forma centralizada, lo que facilita la incorporación de cambios o adiciones a la tecnología.