¿Qué es un Sistema Operativo?

Programa con Paco
7 min readMar 26, 2021

--

Un sistema operativo (SO) se define como el software principal o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes.

Capas de abstracción de un ordenador.

Uno de los propósitos del sistema operativo consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. La mayoría de aparatos electrónicos que utilizan microprocesadores para funcionar, llevan incorporado un sistema operativo (teléfonos móviles, reproductores de DVD, computadoras, enrutadores, etc.). En cuyo caso, son manejados mediante una interfaz gráfica de usuario, un gestor de ventanas o un entorno de escritorio, si es una computadora, mediante una consola o control remoto si es un DVD y, mediante una línea de comandos o navegador web si es un enrutador.

Grosso modo el sistema operativo no es más que un conjunto de software que se encarga de controlar y administrar el funcionamiento del hardware.

Componentes

Todos los componentes de un sistema operativo existen para hacer que las diferentes partes de una computadora trabajen juntas. Todo el software del usuario debe pasar por el sistema operativo para poder utilizar cualquier hardware, ya sea tan simple como un mouse o un teclado o tan complejo como un componente de Internet.

Núcleo

En informática, un núcleo o kernel es un software que constituye una parte fundamental del sistema operativo, y se define como la parte que se ejecuta en modo privilegiado (conocido también como modo núcleo). Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá usar un dispositivo de hardware y durante cuánto tiempo. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware (a través de librerías o interfaces). Esto permite abstraer la complejidad, y proporcionar una interfaz limpia y uniforme lo que facilita su uso al programador.

Controladores de dispositivos

Un controlador de dispositivo o manejador de dispositivo (driver en inglés) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz (posiblemente estandarizada) para utilizar el dispositivo.

Es una pieza esencial del software, y en particular, del núcleo de un sistema operativo, sin la cual el hardware sería inutilizable.

Los drivers o controladores permiten que diversos dispositivos y de diversos fabricantes se comuniquen con el sistema operativo a través de interfaces generalmente estandarizadas.

Gestión de procesos

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de lo siguiente:

  • Crear y destruir procesos.
  • Parar y reanudar procesos.
  • Ofrecer mecanismos para que los procesos puedan comunicarse y se sincronicen.

Gestión de la memoria

La gestión de memoria o administración de memoria es el acto de gestionar la memoria de un dispositivo informático o sea el proceso de asignación de memoria a los programas que la solicitan.​ La gestión de la memoria principal de una computadora es una tarea de suma importancia para el funcionamiento de la misma.

El recolector de basura es la asignación y liberación automática de los recursos de memoria para un programa. La implementación suele ser a nivel del lenguaje de programación en contraposición a la gestión manual de memoria, que asigna y libera los recursos de memoria de una computadora de forma explícita.

La administración de memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.

Sistema de archivos

El sistema de archivos (File System) o sistema de ficheros es el componente del sistema operativo encargado de administrar y facilitar el uso de las memorias periféricas, ya sean secundarias o terciarias.

Sus principales funciones incluyen la asignación de espacio a los archivos, la administración del espacio libre y del acceso a los datos resguardados. Estructuran la información guardada en un dispositivo de almacenamiento de datos o unidad de almacenamiento (normalmente un disco duro de una computadora o un dispositivo de almacenamiento externo), que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos.

La mayoría de los sistemas operativos manejan su propio sistema de archivos. Ejemplos de estos son NTFS de Windows, EXT4 para sistemas GNU/Linux, HFS para MacOS, los multiplataforma FAT32 o exFAT y muchos otros. Prácticamente cada SO tiene uno o varios sistemas de archivos diseñados para interactuar con él y son compatibles con otros tantos.

Los sistemas operativos poseen otros componentes importantes también pero que por razones de brevedad hemos omitido en este artículo.

Funciones

Como ha quedado evidenciado el sistema operativo media entre la capa de aplicaciones (también llamado espacio de usuario) y el hardware.

Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas es la interfaz del SO frente a las aplicaciones o sea son las llamadas que emplean las aplicaciones para obtener resultados del sistema operativo. Constituyen el lenguaje que deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO, y abrimos un programa diseñado para trabajar sobre el anterior, en general el programa no funcionará, a no ser que el nuevo SO tenga la misma interfaz.

Para ello:

  • Las llamadas correspondientes deben tener el mismo formato.
  • Cada llamada al nuevo SO tiene que dar los mismos resultados que la correspondiente del anterior.

Bibliotecas de interfaz de llamadas al sistema

Las llamadas al sistema no siempre tienen una expresión sencilla en los lenguajes de alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de funciones que pueden usarse para efectuar llamadas al sistema. Las hay para distintos lenguajes de programación.

La aplicación llama a una función de la biblioteca de interfaz (mediante una llamada normal) y esa función es la que realmente hace la llamada al sistema. Estas bibliotecas vendrían siendo como librerías específicas que brinda el sistema.

Interrupciones y excepciones

El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones:

  • Algún dispositivo de E/S (entrada y salida) necesita atención.
  • Se ha producido una situación de error al intentar ejecutar una instrucción del programa (normalmente de la aplicación).

En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es decir, no figura en el programa.

Según los dos casos anteriores tenemos las interrupciones y las excepciones:

  • Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la operación de la que se estaba ocupando, ya ha terminado.
  • Excepción: una situación de error detectada por la CPU mientras ejecutaba una instrucción, que requiere tratamiento por parte del SO.

Sistemas operativos en la actualidad

En la actualidad existe una variedad de sistemas operativos para diversos tipos de dispositivos, entornos (empresarial o personal), de código abierto o cerrado, gratuitos o de pago.

En escritorio Microsoft Windows es el sistema operativo dominante con una cuota de mercado de alrededor del 82,74%. MacOS de Apple Inc. ocupa el segundo lugar con una cuota del 13,23%. Y las variedades de GNU/Linux están colectivamente en tercer lugar con una cuota del 1,57%. Es válido aclarar que Linux no es por sí solo un sistema operativo, sino un núcleo de código abierto que se emplea en la construcción de toda una variedad de sistemas operativos.

En el sector móvil (incluidos teléfonos inteligentes y tabletas), la participación de Android es de hasta un 80% .

Las distribuciones Linux son dominantes en los sectores de servidores y supercomputación, en el primer apartado Ubuntu y RedHat Enterprise Linux son dos de los más usados y en las supercomputadoras suele usarse el núcleo Linux y no una distribución GNU/Linux completa para aprovechar al máximo las capacidades del hardware.​.

Si no sabes o no te decides sobre que sistema operativo escoger a continuación te mostramos en una imagen un método muy sencillo para escoger el sistema operativo que mejor se adapta a tus necesidades o expectativas. 😁😁😁

Conclusiones

Los sistemas operativos brindan una capa de abstracción entre el hardware y la capa de aplicaciones permitiendo a los desarrolladores abstraerse del manejo del hardware y reutilizar componentes de software a través de llamadas muy bien definidas.

No olvides dejarnos en los comentarios que tal te pareció el artículo y seguirnos en nuestro canal de Telegram y en nuestra cuenta de Twitter.

--

--

Programa con Paco

Noticias, comentarios, recomendaciones, consejos… principalmente sobre desarrollo de software y tecnología