El Sistema Operativo es el software más importante de un equipo de cómputo. Es el que administra los recursos de hardware y provee servicios a las demás aplicaciones. También realiza diferentes funciones de vital importancia para poder usar el equipo.
Los sistemas operativos pueden estar presentes no solo en computadoras. También los podemos encontrar en dispositivos móviles como tabletas, teléfonos o relojes inteligentes, también en enrutadores, switchs, puntos de acceso wifi, televisores, equipos de reproducción de multimedia, equipos médicos, cajeros electrónicos, coches inteligentes, y en un sin fin de dispositivos de los que usamos muy a menudo en nuestra vida diaria. En casi todos los equipos que incluyan microprocesadores de una forma u otra contaremos con sistemas operativos.
El sistema operativo provee funciones a las aplicaciones de usuario para interactuar con el mismo, con otras aplicaciones o con el hardware, a estas funciones se les conoce como “Llamadas al sistema” o “System Calls” y estas son propias de casa sistema operativo.
De forma general los sistemas operativos trabajan en dos modos, modo usuario y modo privilegiado. En el modo usuario o modo restringido el microprocesador puede ejecutar un conjunto reducido de instrucciones y en modo privilegiado o modo kernel esta disponible todo el conjunto de instrucciones del microprocesador. Las aplicaciones se ejecutan en modo restringido y cuando necesitan acceder a alguna función priviligiada se efectúa una llamada al sistema y se produce un cambio de contexto el núcleo pasa a ejecutarse en modo privilegiado resuelve la solicitud de la llamada al sistema y conmuta nuevamente al modo restringido y devuelve el resultado a la aplicación. Este proceso puede ocurrir cientos de veces por segundo.
De forma más técnica y específica podemos resumir algunas de las principales funciones de un sistema operativo moderno en la siguiente lista:
En el contexto de los sistemas operativos modernos una entidad fundamental es el proceso, que es la forma lógica que representa una tarea (código máquina o programa binario) en ejecución y los recursos asignados con las que interactúa dicha tarea.
El sistema operativo permite administrar los recursos de hardware y controla que aplicación puede acceder a un recurso y de hacerlo lleva todas las estadísticas referentes al uso de los mismos.
Es el que controla la seguridad, usuarios, grupos, niveles de privilegios, políticas de seguridad, permisos en sistemas de archivos, etc.
Además proporciona abstracciones de hardware y software para las aplicaciones y ofrece interfaces de uso más simples y genéricas para los dispositivos, así un programador de alguna aplicación de usuario no tiene que preocuparse por tener que escribir código para acceder al disco o a particiones según su sistema de archivos, el programador simplemente en su código especifica que se abra un archivo y toda la complejidad detrás de eso es manejada por el sistema operativo, facilitando así el desarrollo de aplicaciones.
El sistema operativo hace uso eficiente de los recursos los cuales son finitos y escasos (Microprocesador, Memoria RAM, Espacio en disco duro, ancho de banda del bus de acceso a discos duros, acceso a la red y uso del ancho de banda de red disponible, etc)
El SO es el encargado de la ejecución de las tareas (Procesos) y para esto se vale de técnicas como la multiprogramación y multitarea que hace intercambios cientos de veces por segundos de los recursos entre las distintas tareas logrando un avance poco a poco en todas de forma concurrente, para simular que todas las tareas se están ejecutando a la vez y así aprovechar las capacidades de computo del equipo en el tiempo.
También permite la ejecución de trabajos en lotes (ejecución de scripts)
El sistema operativo facilita la interacción entre el usuario y las aplicaciones a través del Shell los cuales pueden ser en forma de intérpretes de comandos o en modo gráfico.
Una categoría especial de los Sistemas operativos son los llamados Sistemas operativos en tiempo real. Son aquellos en los que no tiene importancia el usuario, sino los procesos. En su mayoría, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados una gran cantidad de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas.
Estos sistemas son los que se utilizan para el control de tráfico aéreo, bolsas de valores, control de refinerías, Control de trenes,Telecomunicaciones, sistemas de fabricación integrada, producción y distribución de energía eléctrica, control de edificios y Sistemas multimedia, entre otros.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra.
Para profundizar un poco más sobre el tema le recomendamos los artículos que se listan a continuación.
Evelyn Berezin fue una pionera en el mundo de la informática. Es considerada la creadora…
Cuando comencé a investigar sobre esta mujer nunca pensé que me resultarían tan divertidas sus…
Entre los sistemas de gestión de contenidos (CMS) más populares y usados de todo internet…
Delphi es un entorno de desarrollo visual de tipo RAD (Rapid Application Development). Es un…
Un navegador web, también llamado navegador de Internet o simplemente "navegador", es un programa informático…
En este artículo veremos paso por paso cómo se realiza la instalación de GNU Linux…