El sistema operativo define nuestra experiencia informática. Es el primer software que vemos cuando encendemos el ordenador y el último que vemos cuando se apaga. Es el software que permite todos los programas que utilizamos. El sistema operativo organiza y controla el hardware en nuestros escritorios y en nuestras manos, aunque la mayoría de los usuarios no pueden decir con certeza qué es lo que hace el sistema operativo.

En esta edición de HowStuffWorks, le diremos qué debe hacer una pieza de software para ser llamada sistema operativo, y le mostraremos cómo funciona el sistema operativo para convertir una colección de hardware en una poderosa herramienta informática.

Los fundamentos
Es importante saber que no todos los ordenadores tienen sistemas operativos. El ordenador que controla el horno microondas de su cocina, por ejemplo, no necesita un sistema operativo. Tiene un conjunto de tareas relativamente sencillas que realizar, métodos de entrada y salida muy simples (un teclado y una pantalla LCD), y un hardware sencillo y nunca cambiante que controlar. Para un ordenador como éste, un sistema operativo sería un equipaje innecesario, que añadiría complejidad donde no se necesita. En cambio, el ordenador de un horno microondas simplemente ejecuta un único programa todo el tiempo.

Para los sistemas informáticos que van más allá de la complejidad del microondas, sin embargo, un sistema operativo puede ser la clave para una mayor eficiencia operativa y un desarrollo de aplicaciones más fácil. Todos los ordenadores de sobremesa tienen sistemas operativos. Los más comunes son la familia de sistemas operativos Windows, la familia de sistemas operativos UNIX y los sistemas operativos Macintosh. Hay cientos de otros sistemas operativos disponibles para aplicaciones de propósito especial, incluyendo especializaciones para mainframes, robótica, fabricación, sistemas de control en tiempo real, etc.

En el nivel más simple, un sistema operativo hace dos cosas:

  • Gestiona los recursos de hardware y software del sistema informático. Estos recursos incluyen cosas como el procesador, la memoria, el espacio en disco, etc.
  • Proporciona una forma estable y consistente para que las aplicaciones traten con el hardware sin tener que conocer todos los detalles del mismo.

La primera tarea, gestionar los recursos de hardware y software, es muy importante, ya que varios programas y métodos de entrada compiten por la atención de la unidad central de procesamiento (CPU) y demandan memoria, almacenamiento y ancho de banda de entrada/salida (E/S) para sus propios fines. En esta capacidad, el sistema operativo desempeña el papel de buen padre, asegurándose de que cada aplicación obtenga los recursos necesarios mientras juega amablemente con todas las demás aplicaciones, así como administrando la capacidad limitada del sistema para el mayor bien de todos los usuarios y aplicaciones.

La segunda tarea, proporcionar una interfaz de aplicación consistente, es especialmente importante si va a haber más de un tipo particular de ordenador utilizando el sistema operativo, o si el hardware que compone el ordenador está siempre abierto a cambios. Una interfaz de programa de aplicación (API) consistente permite a un desarrollador de software escribir una aplicación en un ordenador y tener un alto nivel de confianza en que se ejecutará en otro ordenador del mismo tipo, incluso si la cantidad de memoria o la cantidad de almacenamiento es diferente en las dos máquinas. Incluso si un ordenador concreto es único, un sistema operativo puede garantizar que las aplicaciones sigan funcionando cuando se produzcan mejoras y actualizaciones del hardware, porque es el sistema operativo y no la aplicación el encargado de gestionar el hardware y la distribución de sus recursos. Windows 98 es un gran ejemplo de la flexibilidad que proporciona un sistema operativo. Windows 98 funciona con hardware de miles de proveedores. Puede acomodar miles de impresoras diferentes, unidades de disco y periféricos especiales en cualquier combinación posible.

Dentro de la amplia familia de los sistemas operativos, hay generalmente cuatro tipos, categorizados en base a los tipos de ordenadores que controlan y el tipo de aplicaciones que soportan. Las categorías generales son:

  • Sistema operativo en tiempo real (RTOS) – Los sistemas operativos en tiempo real se utilizan para controlar maquinaria, instrumentos científicos y sistemas industriales. Un RTOS suele tener muy poca capacidad de interfaz de usuario, y ninguna utilidad para el usuario final, ya que el sistema será una «caja sellada» cuando se entregue para su uso. Una parte muy importante de un RTOS es la gestión de los recursos del ordenador para que una determinada operación se ejecute precisamente en el mismo tiempo cada vez que se produce. En una máquina compleja, hacer que una pieza se mueva más rápidamente sólo porque los recursos del sistema están disponibles puede ser tan catastrófico como que no se mueva en absoluto porque el sistema está ocupado.
  • Un solo usuario, una sola tarea – Como su nombre indica, este sistema operativo está diseñado para gestionar el ordenador de manera que un usuario pueda hacer efectivamente una cosa a la vez. El sistema operativo Palm para ordenadores de mano Palm es un buen ejemplo de un sistema operativo moderno de un solo usuario y una sola tarea.
  • Monopuesto, multitarea – Este es el tipo de sistema operativo que la mayoría de la gente utiliza hoy en día en sus ordenadores de sobremesa y portátiles. Tanto Windows 98 como el MacOS son ejemplos de un sistema operativo que permite a un solo usuario tener varios programas en funcionamiento al mismo tiempo. Por ejemplo, es totalmente posible que un usuario de Windows esté escribiendo una nota en un procesador de textos mientras descarga un archivo de Internet y al mismo tiempo imprime el texto de un mensaje de correo electrónico.
  • Multiusuario – Un sistema operativo multiusuario permite que muchos usuarios diferentes aprovechen los recursos del ordenador simultáneamente. El sistema operativo debe asegurarse de que los requisitos de los distintos usuarios estén equilibrados y de que cada uno de los programas que utilicen disponga de recursos suficientes y separados para que un problema con un usuario no afecte a toda la comunidad de usuarios. Unix, VMS y los sistemas operativos mainframe, como MVS, son ejemplos de sistemas operativos multiusuario.

Es importante diferenciar aquí entre los sistemas operativos multiusuario y los sistemas operativos monopuesto que soportan redes. Windows 2000 y Novell Netware pueden soportar cada uno cientos o miles de usuarios en red, pero los sistemas operativos en sí no son verdaderos sistemas operativos multiusuario. El administrador del sistema es el único «usuario» de Windows 2000 o Netware. El soporte de red y todos los inicios de sesión de usuarios remotos que la red permite son, en el plan general del sistema operativo, un programa que ejecuta el usuario administrativo.

Con los diferentes tipos de sistemas operativos en mente, es hora de ver las funciones básicas proporcionadas por un sistema operativo.

Llamada de activación
Cuando se enciende un ordenador, el primer programa que se ejecuta suele ser un conjunto de instrucciones guardadas en la memoria de sólo lectura (ROM) del ordenador que examina el hardware del sistema para asegurarse de que todo funciona correctamente. Esta autocomprobación de encendido (POST) comprueba si hay errores en la CPU, la memoria y los sistemas básicos de entrada y salida (BIOS) y almacena el resultado en una ubicación especial de la memoria. Una vez que el POST se ha completado con éxito, el software cargado en la ROM (a veces llamado firmware) comenzará a activar las unidades de disco del ordenador. En la mayoría de los ordenadores modernos, cuando el ordenador activa la unidad de disco duro, encuentra la primera pieza del sistema operativo: el cargador de arranque.

El cargador de arranque es un pequeño programa que tiene una única función: Carga el sistema operativo en la memoria y le permite comenzar a funcionar. En su forma más básica, el cargador de arranque configura los pequeños programas de controladores que interactúan con los diversos subsistemas de hardware del ordenador y los controlan. Establece las divisiones de la memoria que contienen el sistema operativo, la información del usuario y las aplicaciones. Establece las estructuras de datos que contendrán las innumerables señales, banderas y semáforos que se utilizan para comunicarse dentro y entre los subsistemas y aplicaciones del ordenador. A continuación, entrega el control del ordenador al sistema operativo.

Las tareas del sistema operativo, en el sentido más general, se dividen en seis categorías:

  • Gestión del procesador
  • Gestión de la memoria
  • Gestión de los dispositivos
  • Gestión del almacenamiento
  • Interfaz de la aplicación
  • Interfaz del usuario

Si bien hay quienes sostienen que un sistema operativo debería hacer más que estas seis tareas, y algunos proveedores de sistemas operativos incorporan muchos más programas de utilidad y funciones auxiliares en sus sistemas operativos, estas seis tareas definen el núcleo de casi todos los sistemas operativos. Veamos las herramientas que utiliza el sistema operativo para realizar cada una de estas funciones.

Gestión del procesador
El núcleo de la gestión del procesador se reduce a dos cuestiones relacionadas:

  • Asegurar que cada proceso y aplicación reciba suficiente tiempo del procesador para funcionar correctamente
  • Utilizar tantos ciclos del procesador para el trabajo real como sea posible

La unidad básica de software de la que se ocupa el sistema operativo para programar el trabajo realizado por el procesador es un proceso o un hilo, dependiendo del sistema operativo.

Es tentador pensar en un proceso como una aplicación, pero eso da una imagen incompleta de cómo los procesos se relacionan con el sistema operativo y el hardware. La aplicación que ves (procesador de textos u hoja de cálculo o juego) es, efectivamente, un proceso, pero esa aplicación puede hacer que se inicien otros procesos, para tareas como la comunicación con otros dispositivos u otros ordenadores. También hay numerosos procesos que se ejecutan sin dar evidencia directa de que existen. Un proceso, entonces, es un software que realiza alguna acción y puede ser controlado – por un usuario, por otras aplicaciones o por el sistema operativo.

Son los procesos, más que las aplicaciones, los que el sistema operativo controla y programa para su ejecución por la CPU. En un sistema de una sola tarea, la programación es sencilla. El sistema operativo permite que la aplicación comience a ejecutarse, suspendiendo la ejecución sólo el tiempo suficiente para ocuparse de las interrupciones y la entrada del usuario. Las interrupciones son señales especiales enviadas por el hardware o el software a la CPU. Es como si alguna parte del ordenador levantara de repente la mano para pedir la atención de la CPU en una animada reunión. A veces, el sistema operativo programará la prioridad de los procesos para que las interrupciones queden enmascaradas, es decir, el sistema operativo ignorará las interrupciones de algunas fuentes para que un trabajo concreto pueda terminar lo antes posible. Hay algunas interrupciones (como las procedentes de condiciones de error o problemas con la memoria) que son tan importantes que no pueden ser ignoradas. Estas interrupciones no enmascarables (NMIs) deben ser tratadas inmediatamente, independientemente de las otras tareas que se realicen.

Aunque las interrupciones añaden cierta complicación a la ejecución de los procesos en un sistema de una sola tarea, el trabajo del sistema operativo se complica mucho más en un sistema multitarea. Ahora, el sistema operativo debe organizar la ejecución de las aplicaciones para que crea que hay varias cosas sucediendo a la vez. Esto es complicado porque la CPU sólo puede hacer una cosa a la vez. Para dar la apariencia de que están sucediendo muchas cosas al mismo tiempo, el sistema operativo tiene que cambiar entre diferentes procesos miles de veces por segundo. Así es como sucede.

  • Un proceso ocupa una cierta cantidad de RAM. También hace uso de registros, pilas y colas dentro del espacio de memoria de la CPU y del sistema operativo.
  • Cuando dos procesos son multitarea, el sistema operativo asigna un cierto número de ciclos de ejecución de la CPU a un programa.
  • Después de ese número de ciclos, el sistema operativo hace copias de todos los registros, pilas y colas utilizadas por los procesos, y anota el punto en el que el proceso hizo una pausa en su ejecución.
  • Entonces carga todos los registros, pilas y colas utilizados por el segundo proceso y le permite un cierto número de ciclos de CPU.
  • Cuando éstos se completan, hace copias de todos los registros, pilas y colas utilizados por el segundo programa, y carga el primer programa.

Toda la información necesaria para seguir un proceso cuando se conmuta se guarda en un paquete de datos llamado bloque de control del proceso. El bloque de control de procesos suele contener:

  • Un número de identificación que identifica el proceso
  • Puntos a las ubicaciones en el programa y sus datos donde el procesamiento ocurrió por última vez
  • Contenido del registro
  • Estados de varias banderas e interruptores
  • Puntos a los límites superior y límites inferiores de la memoria requerida para el proceso
  • Una lista de archivos abiertos por el proceso
  • La prioridad del proceso
  • El estado de todos los dispositivos de E/S necesarios para el proceso

Cuando el estado del proceso cambia de pendiente a activo, por ejemplo, o de suspendido a en ejecución, la información del bloque de control del proceso debe utilizarse como los datos de cualquier otro programa para dirigir la ejecución de la parte de conmutación de tareas del sistema operativo.

Este intercambio de procesos ocurre sin interferencia directa del usuario, y cada proceso obtiene suficientes ciclos de CPU para realizar su tarea en un tiempo razonable. Sin embargo, pueden surgir problemas si el usuario intenta tener demasiados procesos funcionando al mismo tiempo. El propio sistema operativo requiere algunos ciclos de CPU para realizar el guardado e intercambio de todos los registros, colas y pilas de los procesos de aplicación. Si se inician suficientes procesos, y si el sistema operativo no ha sido cuidadosamente diseñado, el sistema puede empezar a utilizar la gran mayoría de sus ciclos de CPU disponibles para intercambiar entre procesos en lugar de ejecutar procesos. Cuando esto ocurre, se denomina thrashing, y suele requerir algún tipo de intervención directa del usuario para detener los procesos y devolver el orden al sistema.

Una forma en que los diseñadores de sistemas operativos reducen la posibilidad de thrashing es reduciendo la necesidad de nuevos procesos para realizar varias tareas. Algunos sistemas operativos permiten un «proceso-lite», llamado hilo, que puede ocuparse de todo el trabajo intensivo de la CPU de un proceso normal, pero generalmente no se ocupa de los diversos tipos de E/S y no establece estructuras que requieran el extenso bloque de control de procesos de un proceso normal. Un proceso puede iniciar muchos hilos u otros procesos, pero un hilo no puede iniciar un proceso.

Hasta ahora, toda la programación que hemos discutido se ha referido a una sola CPU. En un sistema con dos o más CPUs, el sistema operativo debe dividir la carga de trabajo entre las CPUs, tratando de equilibrar las demandas de los procesos requeridos con los ciclos disponibles en las diferentes CPUs. Los sistemas operativos asimétricos utilizan una CPU para sus propias necesidades y dividen los procesos de aplicación entre las restantes CPUs. Los sistemas operativos simétricos se dividen a sí mismos entre las distintas CPUs, equilibrando la demanda frente a la disponibilidad de la CPU incluso cuando el propio sistema operativo es lo único que se está ejecutando.

Incluso si el sistema operativo es el único software con necesidades de ejecución, la CPU no es el único recurso a programar. La gestión de la memoria es el siguiente paso crucial para asegurar que todos los procesos se ejecuten sin problemas.

Gestión de la memoria y el almacenamiento
Cuando un sistema operativo gestiona la memoria del ordenador, hay dos grandes tareas que deben llevarse a cabo:

  • Cada proceso debe tener suficiente memoria en la que ejecutarse, y no puede ni ejecutarse en el espacio de memoria de otro proceso ni ser ejecutado por otro proceso.
  • Los diferentes tipos de memoria del sistema deben utilizarse adecuadamente para que cada proceso pueda ejecutarse con la mayor eficacia.

La primera tarea requiere que el sistema operativo establezca límites de memoria para los tipos de software y para las aplicaciones individuales.

Como ejemplo, veamos un sistema imaginario con 1 megabyte (1.000 kilobytes) de RAM. Durante el proceso de arranque, el sistema operativo de nuestro ordenador imaginario está diseñado para llegar al tope de la memoria disponible y luego «retroceder» lo suficiente para satisfacer las necesidades del propio sistema operativo. Digamos que el sistema operativo necesita 300 kilobytes para funcionar. Ahora, el sistema operativo va al fondo de la reserva de RAM y empieza a acumularse con los diversos software de controladores necesarios para controlar los subsistemas de hardware del ordenador. En nuestro ordenador imaginario, los controladores ocupan 200 kilobytes. Así que después de tener el sistema operativo completamente cargado, hay 500 kilobytes restantes para los procesos de aplicación.

Cuando las aplicaciones comienzan a cargarse en la memoria, se cargan en tamaños de bloque determinados por el sistema operativo. Si el tamaño del bloque es de 2 kilobytes, entonces cada proceso que se cargue recibirá un trozo de memoria que es un múltiplo de 2 kilobytes de tamaño. Las aplicaciones se cargarán en estos tamaños de bloque fijos, con los bloques comenzando y terminando en límites establecidos por palabras de 4 u 8 bytes. Estos bloques y límites ayudan a garantizar que las aplicaciones no se carguen encima del espacio de las demás por uno o dos bits mal calculados. Garantizado esto, la cuestión más importante es qué hacer cuando se llena el espacio de aplicación de 500 kilobytes.

En la mayoría de los ordenadores, es posible añadir memoria más allá de la capacidad original. Por ejemplo, puede ampliar la RAM de 1 a 2 megabytes. Esto funciona bien, pero tiende a ser relativamente caro. También ignora un hecho fundamental de la informática: la mayor parte de la información que una aplicación almacena en la memoria no se utiliza en ningún momento. Un procesador sólo puede acceder a la memoria de una en una, por lo que la mayor parte de la RAM no se utiliza en ningún momento. Como el espacio en disco es barato comparado con la RAM, mover la información de la RAM al disco duro puede ampliar enormemente el espacio de la RAM sin coste alguno. Esta técnica se llama gestión de memoria virtual.

El almacenamiento en disco es sólo uno de los tipos de memoria que debe gestionar el sistema operativo, y es el más lento. Clasificados por orden de velocidad, los tipos de memoria de un sistema informático son:

  • Caché de alta velocidad – Se trata de cantidades rápidas y relativamente pequeñas de memoria que están disponibles para la CPU a través de las conexiones más rápidas. Los controladores de la caché predicen qué datos necesitará la CPU a continuación y los extraen de la memoria principal a la caché de alta velocidad para acelerar el rendimiento del sistema.
  • Memoria principal – Es la memoria RAM que se mide en megabytes cuando se compra un ordenador.
  • Memoria secundaria – Se trata, en la mayoría de los casos, de algún tipo de almacenamiento magnético rotativo que mantiene las aplicaciones y los datos disponibles para su uso, y sirve como RAM virtual bajo el control del sistema operativo.

El sistema operativo debe equilibrar las necesidades de los distintos procesos con la disponibilidad de los diferentes tipos de memoria, moviendo los datos en bloques (llamados páginas) entre la memoria disponible según lo dicte la programación de los procesos.

Gestión de dispositivos
El camino entre el sistema operativo y prácticamente todo el hardware que no está en la placa base del ordenador pasa por un programa especial llamado controlador. Gran parte de la función de un controlador es ser el traductor entre las señales eléctricas de los subsistemas de hardware y los lenguajes de programación de alto nivel del sistema operativo y los programas de aplicación. Los controladores toman los datos que el sistema operativo ha definido como un archivo y los traducen en flujos de bits colocados en lugares específicos de los dispositivos de almacenamiento, o en una serie de pulsos de láser en una impresora.

Debido a que existen diferencias tan amplias en el hardware controlado a través de los controladores, hay diferencias en la forma en que funcionan los programas controladores, pero la mayoría se ejecutan cuando se requiere el dispositivo, y funcionan de forma muy similar a cualquier otro proceso. El sistema operativo suele asignar bloques de alta prioridad a los controladores para que el recurso de hardware pueda ser liberado y preparado para su uso lo antes posible.

Una de las razones por las que los controladores están separados del sistema operativo es para que se puedan añadir nuevas funciones al controlador -y por lo tanto a los subsistemas de hardware- sin necesidad de modificar, recompilar y redistribuir el propio sistema operativo. A través del desarrollo de nuevos controladores de dispositivos de hardware, desarrollo a menudo realizado o pagado por el fabricante de los subsistemas en lugar del editor del sistema operativo, las capacidades de entrada/salida del sistema general pueden ser mejoradas en gran medida.

La gestión de la entrada y la salida es en gran medida una cuestión de gestión de colas y búferes, instalaciones especiales de almacenamiento que toman un flujo de bits de un dispositivo, tal vez un teclado o un puerto serie, mantienen esos bits, y los liberan a la CPU a un ritmo lo suficientemente lento para que la CPU pueda hacer frente. Esta función es especialmente importante cuando hay varios procesos en marcha que ocupan el tiempo del procesador. El sistema operativo instruirá a un buffer para que continúe recibiendo entradas del dispositivo, pero para que deje de enviar datos a la CPU mientras el proceso que utiliza la entrada está suspendido. Entonces, cuando el proceso que necesita la entrada vuelva a estar activo, el sistema operativo ordenará al buffer que envíe datos. Este proceso permite a un teclado o a un módem tratar con usuarios u ordenadores externos a gran velocidad aunque haya momentos en los que la CPU no pueda utilizar la entrada de esas fuentes.

La gestión de todos los recursos del sistema informático es una gran parte de la función del sistema operativo y, en el caso de los sistemas operativos en tiempo real, puede ser prácticamente toda la funcionalidad requerida. Para otros sistemas operativos, sin embargo, proporcionar una forma relativamente simple y consistente para que las aplicaciones y los seres humanos utilicen la potencia del hardware es una parte crucial de su razón de ser.

Interfaz con el mundo

Interfaz de aplicación
Así como los controladores proporcionan una forma para que las aplicaciones hagan uso de los subsistemas de hardware sin tener que conocer cada detalle del funcionamiento del hardware, las interfaces de programa de aplicación (API) permiten a los programadores de aplicaciones utilizar funciones del ordenador y del sistema operativo sin tener que seguir directamente todos los detalles del funcionamiento de la CPU. Veamos el ejemplo de la creación de un archivo de disco duro para mantener los datos para ver por qué esto puede ser importante.

Un programador que escribe una aplicación para registrar datos de un instrumento científico podría querer permitir al científico especificar el nombre del archivo creado. El sistema operativo podría proporcionar una función API llamada MakeFile para crear archivos. Al escribir el programa, el programador insertaría una línea parecida a la siguiente

    MakeFile

En este ejemplo, la instrucción le dice al sistema operativo que cree un archivo que permitirá el acceso aleatorio a sus datos (1), tendrá un nombre introducido por el usuario (%Nombre), y tendrá un tamaño que varía en función de la cantidad de datos almacenados en el archivo (2). Ahora, veamos lo que hace el sistema operativo para convertir la instrucción en acción.

  1. El sistema operativo envía una consulta a la unidad de disco para obtener la localización de la primera ubicación de almacenamiento libre disponible.
  2. Con esa información, el sistema operativo crea una entrada en el sistema de archivos que muestra las ubicaciones inicial y final del archivo, el nombre del archivo, el tipo de archivo, si el archivo ha sido archivado, qué usuarios tienen permiso para ver o modificar el archivo, y la fecha y hora de creación del archivo.
  3. El sistema operativo escribe información al principio del archivo que lo identifica, establece el tipo de acceso posible e incluye otra información que vincula el archivo a la aplicación.

    En toda esta información, las consultas a la unidad de disco y las direcciones del punto inicial y final del archivo están en formatos muy dependientes del fabricante y modelo de la unidad de disco.

Debido a que la programadora ha escrito su programa para utilizar la API para el almacenamiento en disco, no tiene que estar al tanto de los códigos de instrucción, los tipos de datos y los códigos de respuesta para cada posible unidad de disco duro y de cinta. El sistema operativo, conectado a los controladores para los diversos subsistemas de hardware, se ocupa de los detalles cambiantes del hardware — el programador debe simplemente escribir código para la API y confiar en que el sistema operativo haga el resto.

Las API se han convertido en una de las áreas más disputadas de la industria informática en los últimos años. Las empresas se dan cuenta de que el uso de su API por parte de los programadores se traducirá, en última instancia, en la capacidad de controlar y obtener beneficios de una parte concreta de la industria. Ésta es una de las razones por las que tantas empresas han estado dispuestas a proporcionar aplicaciones como lectores o visores al público sin coste alguno. Saben que los consumidores solicitarán que los programas se aprovechen de los lectores gratuitos, y las empresas de aplicaciones estarán dispuestas a pagar derechos de autor para permitir que su software proporcione las funciones solicitadas por los consumidores.

Interfaz de usuario
Así como la API proporciona una forma coherente para que las aplicaciones utilicen los recursos del sistema informático, una interfaz de usuario (UI) aporta estructura a la interacción entre un usuario y el ordenador. En la última década, casi todo el desarrollo de las interfaces de usuario ha sido en el área de la interfaz gráfica de usuario (GUI), con dos modelos, el Macintosh de Apple y el Windows de Microsoft, recibiendo la mayor parte de la atención y ganando la mayor parte de la cuota de mercado. Existen otras interfaces de usuario, algunas gráficas y otras no, para otros sistemas operativos.

Unix, por ejemplo, tiene interfaces de usuario llamadas shells que presentan una interfaz de usuario más flexible y potente que la interfaz estándar basada en texto del sistema operativo. Programas como el Korn Shell y el C Shell son interfaces basadas en texto que añaden importantes utilidades, pero su propósito principal es facilitar al usuario la manipulación de las funciones del sistema operativo. También hay interfaces gráficas de usuario, como X-Windows y Gnome, que hacen que Unix y Linux se parezcan más a los ordenadores Windows y Macintosh desde el punto de vista del usuario.

Es importante recordar que en todos estos ejemplos, la interfaz de usuario es un programa o conjunto de programas que se sitúa como una capa por encima del propio sistema operativo. Lo mismo ocurre, con mecanismos algo diferentes, con los sistemas operativos Windows y Macintosh. Las funciones centrales del sistema operativo, la gestión del sistema informático, se encuentran en el núcleo del sistema operativo. El gestor de pantalla está separado, aunque puede estar estrechamente ligado al núcleo. Los vínculos entre el núcleo del sistema operativo y la interfaz de usuario, las utilidades y el resto del software definen muchas de las diferencias de los sistemas operativos actuales, y las definirán aún más en el futuro.

El futuro
Una cuestión relativa al futuro de los sistemas operativos gira en torno a la capacidad de una determinada filosofía de distribución de software para crear un sistema operativo utilizable por las empresas y los consumidores conjuntamente.

Linux, el sistema operativo creado y distribuido según los principios del código abierto, podría tener un impacto significativo en el sistema operativo en general. La mayoría de los sistemas operativos, controladores y programas de utilidad son escritos por organizaciones comerciales que distribuyen versiones ejecutables de su software, versiones que no pueden ser estudiadas ni alteradas. El código abierto requiere la distribución de materiales fuente originales que pueden ser estudiados, alterados y construidos, con los resultados de nuevo distribuidos libremente.

El continuo crecimiento de Internet y la proliferación de ordenadores que no son máquinas estándar de sobremesa o portátiles significa que los sistemas operativos cambiarán para mantener el ritmo, pero las funciones básicas de gestión e interfaz continuarán, incluso mientras evolucionan.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.