Qué es un Sistema Operativo

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

1.1. ¿Qué es un Sistema Operativo?

1.1.1. ¿Qué es un Sistema Operativo?

El sistema operativo es el conjunto de programas que:

  • Gestionan y reparten de manera equitativa los recursos que ofrece el hardware entre los programas en ejecución. Concretamente, los recursos a gestionar son tres:
    • La CPU, también conocida como procesador o unidad central de procesamiento. Todo procesador ofrece un conjunto de instrucciones de bajo nivel (lenguaje ensamblador) con operaciones básicas que ejecuta de manera secuencial.
    • La Memoria principal, memoria empleada para almacenar el estado de la ejecución del programa.
    • Los dispositivos de Entrada/Salida, tales como la tarjeta de vídeo, la tarjeta de red, los dispositivos de almacenamiento masivo (disco duro del tipo que sea), teclado, ratón, pantalla, entre muchos otros.
  • Ofrece un lanzador de aplicaciones, que pueden estar basados en:
    • Intérprete de órdenes/comandos (traducción incorrecta del original inglés command, que significa órden), también llamado shell. El dispositivo de entrada empleado es el teclado. Es generalmente complejo pero ofrece funcionalidades avanzadas. Algunos ejemplos son la shell de bash disponible en Linux o el PowerShell disponible en la recientes versiones de MS-Windows. Para ejecutar un programa se escribe su nombre, seguido de opciones (en caso de que las tenga y se pulsa la tecla de Intro).
    • Gestor de ventanas: Son los más populares por su sencillez, aunque ofrecen menor funcionalidad que los basados en intérpretes de órdenes. Los programas se ejecutan mediante un clic sencillo o doble de ratón. En dispositivos portátiles en lugar del ratón se emplea una pantalla táctil.
  • Ofrece una interfaz estable y homogénea a los programas de usuario para solicitar servicios. Esta interfaz se conoce como API (del inglés, Application Programming Interface) del sistema operativo.

El sistema operativo se sitúa entre los programas de usuario en ejecución y el hardware, de manera que los programas siempre deben emplear la API del sistema operativo para acceder a los recursos que ofrece el hardware.

1.1.2. Principios de diseño de un buen Sistema Operativo

Los aspectos a tener en cuenta respecto a la gestión de recursos son:

  • Realizar una gestión eficiente de los recursos.
  • Coordinar la asignación de los mismos entre los programas de ejecución (como se si tratase de un moderador en un debate, asignando el turno de palabra a cada uno de los asistentes).
  • Hacer un reparto equitativo (del diccionario de la RAE, equidad significa "dar a cada uno lo que merece"). Esto no significa hacer una división exacta de los recursos, si no que se tendrán en cuenta la naturaleza de cada programa en ejecución a la hora de hacer el reparto.
  • No ofrecer ninguna interfaz que permita a las aplicaciones acceder directamente los recursos hardware.

Respecto a la API, debe:

  • Ser estable, no debe cambiar con el tiempo.
  • Ser homogénea, guardar una similitud lógica en sus llamadas.
  • Debe abstraer y ocultar los detalles de bajo nivel de los componentes, de manera que los programas lleguen a ser complemente independientes del hardware.

Además de todo esto, un buen sistema operativo es portable, es decir, que soporte diferentes arquitecturas hardware, como por ejemplo la ARM (típicamente empleada en dispositivos móviles con limitaciones importantes en materia de energía), la PC x86 y x86_64 de Intel, las variantes del PC que ofrece AMD, la arquitectura PowerPC (empleada antaño por Apple y desarrollada por IBM) y SPARC (desarrollada por Sun Microsystems, adquirida por Oracle).


1.2. Breve introducción histórica a los sistemas operativos