¿Por qué un PC necesita un SO Microsoft Windows, Apple macOS o Linux?

Da igual si utilizas Windows, Linux, macOS o cualquier otro sabor de sistema operativo. Todos ellos cumplen la misma función que es el comunicar el software con el hardware, realizar la gestión de las rutinas y procesos y muchas otras tareas. ¿Cuál es el papel del sistema operativo en tu sistema y cómo se relaciona este con el hardware?

Todo PC no es más que un sistema integrado de hardware y software donde el sistema operativo es lo que podríamos llamar el programa más importante al servir como puente entre los programas y el propio hardware. Sin el sistema operativo entonces los programas no podrían interactuar con el hardware, dado que hablamos de dos mundos distintos: el primero que en el fondo es intangible y que es el de los programas o software, y el segundo, que es el de los procesadores y las memorias.

Mujer usando portátil

En realidad cuando cualquiera de nosotros hace uso de una aplicación en el ordenador no estamos haciendo uso de esa aplicación solamente, la aplicación usa el sistema operativo, el cual a su vez usa el hardware. Por lo que si por ejemplo ahora te encuentras escribiendo un correo electrónico o leyendo este artículo, entonces has de saber que lo que estás viendo en pantalla es producto de esta relación del software, el sistema operativo y el hardware.

Los primeros sistemas operativos eran sencillos, pero a medida que la potencia del hardware fue subiendo se hizo posible que estos pudieran hacer más y más cosas, mientras que al mismo tiempo el sistema operativo tenía que gestionarlas. Tampoco nos podemos olvidar de la enorme variedad de hardware que existe para PC a día de hoy. La mayoría son productos genéricos, pero otros requieren de una comunicación concreta para funcionar de manera adecuada.

El Sistema Operativo decide qué, dónde y cuándo se ejecutan las cosas

Procesos Sistema Operativo

Los programas no son más que una serie de instrucciones secuenciales que la CPU ha de ejecutar, bien es cierto que un programa tiene saltos y bucles, si somos estrictos un programa no es más que eso. Dentro de cada programa pueden existir varios subprogramas que se ejecutan en paralelo o en serie. Sea como sea, estos se han de ejecutar en la CPU y son decenas de rutinas y procesos que el sistema operativo ha de gestionar en cada momento.

Los programas no deciden qué proceso o rutina se ejecuta en cada momento, tampoco dónde y mucho menos cuando. Esto es trabajo del núcleo o kernel del sistema operativo que gestiona los diferentes procesos. Seguro que alguna vez le habréis dado al administrador de tareas, en concreto a la pestaña de procesos en segundo plano.

Pues todo eso es lo que el sistema operativo ha de gestionar y lo ha de hacer de tal manera que cada uno de los programas recibe el tiempo de proceso de la CPU que requiere. Cuando un programa va lento o el PC, esto es debido a que el sistema operativo no tiene la suficiente potencia (u optimización dado el caso) por parte de la CPU para realizar sus tareas en el día a día.

Cliente VIP en la memoria RAM y el procesador

Sistema Operativo Procesos Memoria

El sistema operativo se ejecuta al igual que el resto de programas en la memoria RAM, pero para evitar que el resto de programas puedan interferir en su funcionamiento e incluso modificar los datos y las instrucciones que maneja el sistema operativo lo que se hace es reservar un espacio en la RAM exclusivo para el sistema operativo al que ningún otro programa puede bajo ningún concepto bajo condiciones normales.

Debido a que el sistema operativo es el que se comunica con el hardware este tiene una jerarquía que está por encima del resto de programas, ya que este al gestionar la ejecución de las rutinas el sistema operativo también tiene acceso al espacio de la RAM de los programas. Dicho de otra manera, el sistema operativo es como una ama de llaves que tiene acceso a todas las habitaciones de la mansión que sería la memoria, mientras que los programas tendrían acceso limitado. En el caso de que estemos ejecutando un sistema operativo virtualizado, entonces el hipervisor del sistema operativo es el que tiene acceso al hardware de manera directa.

No obstante nada es perfecto y hay veces en la que se pueden crear agujeros de seguridad que son aprovechados por ciertos programas para ejecutar código en el espacio del sistema operativo. Por ejemplo, a los virus informáticos se les llama así por el hecho que consiguen infectar con su código la parte de la memoria asignada al sistema operativo, lo que les permite escapar a su control.

La comunicación entre el sistema operativo y el hardware

sistema operativo driver

En el PC el acceso al hardware se realiza haciendo uso de ciertas direcciones de memoria, las cuales a la hora de enviar un dato a las mismas no provocan un efecto de lectura o escritura del mismo en la RAM, sino que acaban generando una acción concreta sobre el hardware asociado a dicha dirección de memoria. Ya sea de forma automática o en su defecto, el dato sirve como método de entrada para dicha función. A día de hoy debido a la enorme cantidad de rutinas y procesos que se ejecutan se hace uso de los drivers o controladores para comunicar los programas con el hardware.

Por ello, cuando el SO requiere acceder a ciertas funciones del hardware hace servir los drivers. Un driver no es más que una abstracción de cómo funciona el hardware. En informática llamamos abstracción a un programa que emula en lo máximo posible un elemento. En el caso concreto del driver este no emula al hardware en su funcionamiento íntegro, sino que lo que hace es emular su interfaz de comunicación. El mismo driver es luego el que transforma esto en instrucciones que el hardware sí que entiende para que el sistema operativo se pueda comunicar con los diferentes componentes y dispositivos en el PC.

Pese a que en la arquitectura x86 el direccionamiento de memoria y E/S está unificado a niveles prácticos y a día de hoy se encuentra separado, ya que el acceso en general aunque se realiza a través de la MMU, es la IOMMU la que se encarga de la comunicación con los periféricos, la cual está subordinada a la primera.

En definitiva, hardware y sistema operativo son imprescindibles entre ellos, no funcionan en ningún caso solos y necesitan de un tercer actor como son los drivers, lo que complica todo el entramado todavía más en todas sus funciones.