El sistema operativo

Nos hemos acostumbrado al hecho de que los ordenadores no son aparatos de encendido instantáneo; después de apretar el botón, tenemos que esperar un minuto o más a que «acabe de encenderse». Durante ese tiempo se carga en la memoria el sistema operativo que tenemos instalado; habitualmente es cierta versión del Windows de Microsoft, o bien el macOS de Apple, o alguna de las distribuciones de GNU/Linux. Finalizada la carga, podemos ya, con el ratón, pulsar el icono del programa que vayamos a utilizar: el navegador de Internet, el procesador de textos o nuestro juego favorito son todos ellos programas.


Windows 8.1

Con el concepto de sistema operativo ocurre lo mismo que con otros términos tecnológicos. Los que no saben definirlo e incluso los que lo desconocen manejan perfectamente su ordenador, del mismo modo que no se precisa saber de mecánica para conducir el más futurista de los coches. Para algunos, el sistema operativo es principalmente una molestia que se interpone entre el encendido y lo que quieren hacer; ignoran que, sin un sistema operativo, el ordenador no alcanzaría más que una pantalla negra con un mensaje de error.

Concepto de sistema operativo

Ello se debe a que, en realidad, un ordenador es como un compuesto de cuerpo y alma; en términos técnicos, para que un ordenador funcione se necesita por igual un hardware (conjunto de dispositivos físicos interconectados: procesador, disco duro, memoria, pantalla, teclado) y un software (conjunto de programas o series de instrucciones). El hardware de un ordenador viene a ser como un cadáver; por más que lo encendamos, no «cobra vida» sin el software. El intangible software o conjunto de programas viene a ser una alma en pena si no tiene donde encarnarse; de nada nos sirve un CD-ROM con juegos si no tenemos un ordenador donde instalarlos.


Portátil con el sistema operativo macOS X Mavericks

Partiendo de los conceptos anteriores, el sistema operativo puede definirse como un software básico diseñado con tres finalidades principales: crear una capa de abstracción entre el hardware y los programas que facilite la labor de los programadores, proporcionar una interfaz que permita al usuario dar órdenes al ordenador y gestionar y coordinar todos los recursos del equipo, desde el hardware hasta los programas.

El sistema operativo como capa de abstracción

La primera de estas finalidades se orienta a facilitar las cosas a los programadores, pero no por ello debe sernos indiferente a los usuarios. Imaginemos que un programador diseña una excelente aplicación de retoque fotográfico. Naturalmente, entre las opciones de ese programa habrán de figurar las de, por ejemplo, guardar en el disco duro o enviar a la impresora la imagen retocada. Como existen en el mercado cientos de modelos diferentes de discos duros y de impresoras, más los cientos que ya no se venden pero todavía se emplean y los cientos que aparecerán en los próximos años, al diseñador le resulta imposible incorporar en el programa una orden específica para cada dispositivo.

Afortunadamente, dispone de una opción más simple, que es la que utilizan todos los programas: transmitir al sistema operativo la orden de guardar o de imprimir la imagen. El sistema operativo, en tanto que «director» o gestor de todos los recursos del equipo, asigna a la imagen un espacio en el disco duro o envía la orden de imprimir a la impresora, cuyas características específicas conoce porque tales dispositivos han sido previamente instalados. El sistema operativo, por tanto, permite al programador «hacer abstracción» de la infinidad de dispositivos existentes y centrarse en crear un buen programa.


El sistema operativo actúa como una capa de abstracción
entre el hardware y los programas o aplicaciones

A partir de ello podemos vislumbrar dos hechos ciertos. En primer lugar, que todos los programas «corren» sobre un sistema operativo, sin el cual no podrían ofrecer gran parte de sus prestaciones; de hecho, en la práctica, ni siquiera podemos abrir un programa sin un sistema operativo. En segundo lugar, que los programas se diseñan para funcionar no sobre cierto ordenador, sino sobre cierto sistema operativo. Es decir, si compramos un CD-ROM con un juego diseñado para Windows, podremos instalarlo y jugar en todos los ordenadores con el sistema operativo Windows, pero no hay ninguna garantía de que el juego funcione en un ordenador de Apple con el sistema operativo macOS.

Para los usuarios, que los programas se ejecuten sobre sistemas operativos supone una gran ventaja y algunos inconvenientes. La ventaja es evidente: si cada programa hubiera de diseñarse para cada ordenador en concreto, cada usuario necesitaría un programador para él solo, cosa que nadie podría permitirse. Es lo que ocurría en los inicios: sólo los estados, universidades o grandes centros de investigación podían costear aquellas inmensas computadoras y la elaboración de los programas que habían de ejecutarse en ellas. Sin sistemas operativos volveríamos a las décadas inmediatamente posteriores a la Segunda Guerra Mundial, que constituyen el neolítico de la historia de la informática. De hecho, los acontecimientos que marcan el inicio de la informática moderna son tanto la fabricación del primer microprocesador (el Intel 4004, en 1971) como la aparición del primer sistema operativo multiplataforma y multitarea (Unix, en 1969).


Un joven Bill Gates con el disco de instalación de la primera versión de Windows (1985)

Diseñar, en cambio, un programa para Windows es crear un producto para un mercado de millones de usuarios (los millones de usuarios de Windows), lo cual amortiza los costes aun vendiéndolo a un precio reducido. En comparación, los inconvenientes que padece el usuario parecen menores, pero son dignos de reseña, y derivan de la incompatibilidad no sólo entre los sistemas operativos, sino también de la incompatibilidad entre versiones distantes de un mismo sistema operativo, de forma que un programa que funcionaba perfectamente en Windows XP (2001), por ejemplo, deja de funcionar en Windows 7 (2009).

El problema no es tanto el programa (que siempre podrá substituirse por otro de iguales o superiores prestaciones), sino el hecho de que dicho programa se haya utilizado durante años para introducir y guardar un gran volumen de información que, al no funcionar el programa, no puede recuperarse. Existen multitud de herramientas que pueden remediar estas situaciones, pero no siempre están al alcance de los usuarios corrientes o las pequeñas empresas.

El sistema operativo como interfaz de usuario

Aparte de infundir vida al hardware y permitir la ejecución de programas, el sistema operativo debe, obviamente, proporcionar al usuario medios para comunicarse con el ordenador. Cuando termina de cargarse, todo sistema operativo muestra en la pantalla una serie de iconos o áreas que podemos pulsar con el ratón, o con el dedo en los sistemas operativos para móviles y tabletas. Simplificando, podemos decir que tal pantalla constituye la interfaz gráfica de usuario (GUI, Graphical User Interface) del sistema operativo. Los usuarios comunes suelen de inmediato pulsar el icono del programa con el que van a trabajar o a pasar el rato, y una vez abierto, interaccionan con sus iconos y menús, es decir, con la GUI de dicho programa.


Ayuda para el comando DIR en MS-DOS

Los primeros sistemas operativos carecían de interfaz gráfica. La apariencia del antiguo MS-DOS de Microsoft (1981), por ejemplo, era sumamente lúgubre: una pantalla negra con un prompt en letras blancas que esperaba la introducción de las órdenes a través del teclado. Su manejo requería aprender de memoria multitud de comandos, así como los conceptos y la sintaxis asociada a los mismos.

El mérito de llevar las interfaces gráficas a los sistemas operativos domésticos ha de atribuirse al ímpetu innovador del fundador de Apple, Steve Jobs: en el ámbito de la informática personal, el sistema operativo del modelo Macintosh (1984) fue el primero que se manejaba pulsando con el ratón los iconos, menús y ventanas de la interfaz. Resulta inevitable ver el posterior Windows de Microsoft como una imitación; en cualquier caso, la aparición de las interfaces gráficas, que permitían interactuar con el ordenador de manera intuitiva, contribuyó decisivamente a la popularización de la informática. Actualmente incluso las distribuciones de GNU/Linux, antaño crípticas y austeras, incorporan interfaces gráficas de diseño extremadamente atractivo.


Interfaz gráfica del Macintosh (1984)

Aunque pasen la mayor parte del tiempo en los programas, los usuarios acuden a la interfaz gráfica del sistema operativo para realizar muchas operaciones comunes: instalar un nuevo programa o dispositivo, organizar sus ficheros en carpetas o copiar documentos a un lápiz de memoria o fotografías desde una cámara. Los avezados acuden también al mismo para tareas de personalización o mantenimiento, como crear iconos o accesos directos a los programas, personalizar el aspecto del escritorio, defragmentar el disco duro o efectuar copias de seguridad de sus archivos o de todo el sistema. Gracias a las interfaces gráficas y a la automatización de muchos procesos, todas estas tareas pueden efectuarse fácilmente sin apenas conocimientos previos.

El sistema operativo como gestor de recursos

La función central del sistema operativo es precisamente la que pasa más inadvertida: la gestión y coordinación de todos los recursos del equipo. Resulta obvio que la multitud de dispositivos interconectados de que se compone un ordenador sería una olla de grillos sin un director de orquesta que tome el mando y armonice las demandas e interacciones de los componentes del hardware. Del mismo modo, el sistema operativo ha de poner orden en los múltiples procesos que los programas abiertos por el usuario ejecutan simultáneamente. Es casi imposible inventariar al detalle todas las tareas que lleva a cabo el sistema operativo, por lo que nos limitaremos a señalar las áreas más importantes.

Gestión de procesos. Por proceso se entiende un programa en ejecución. La gestión de procesos consiste, pues, en repartir el tiempo de utilización del procesador (CPU) entre los diferentes programas o aplicaciones que se han de ejecutar de forma simultánea. Esto resultaba sencillo en los sistemas monotarea como el antiguo MS-DOS, en los que sólo podía haber un programa en ejecución a la vez, pero resulta mucho más complejo en sistemas multitarea o de tiempo compartido y en sistemas multiusuario (como era ya UNIX, el primer sistema operativo comparable a los actuales), en los que puede haber varias decenas de programas ejecutándose a la vez. Esta gestión es especialmente delicada en los sistemas en tiempo real, que permiten supervisar o dirigir procesos externos al ordenador (cadenas de montaje, robots...) y han de responder de forma instantánea a los eventos que se produzcan durante el proceso que controlan.


Administrador de tareas de Windows

Gestión de memoria. Desde el momento en que hay varios procesos en ejecución concurrente, la gestión de la memoria RAM o volátil pasa a ser un tema importante, pues abrir un programa no es en esencia otra cosa que trasladar su conjunto de instrucciones desde el disco duro hasta la memoria volátil para ponerlas al alcance del procesador. El sistema operativo se ha de encargar de que cada proceso disponga de la memoria que necesita en cada momento, y de que disponga de ella de forma exclusiva, impidiendo que un proceso acceda a posiciones de memoria asignadas previamente a otro. Asimismo, si el sistema operativo decide que es el turno de un proceso concreto pero no hay memoria disponible para asignarle, el propio sistema liberará la memoria que esté ocupada por un proceso «ocioso» y se la concederá al que esté en ejecución.

Administración de dispositivos. El sistema operativo define una forma única y uniforme de acceso para cada miembro del variado e imprevisible conjunto de dispositivos físicos internos y externos que conforman el hardware del ordenador (unidades de disco duro, DVD o lápices de memoria, tarjetas gráficas o de sonido, teclado, ratón, pantalla, impresora), coordinando y regulando asimismo la entrada y salida de datos de los mismos y su comunicación con los restantes. Se establece así la ya expuesta capa de abstracción que facilita la labor de los programadores. De este modo, el programador llamará a funciones del sistema como «leer un dato» o «escribir un dato» indicando simplemente sobre qué dispositivo lógico (no físico) quiere hacerlo; en Windows, por ejemplo, unidad c: es el nombre lógico del disco duro, sin importar la marca y modelo del disco duro que contenga nuestra máquina.

Sistema de archivos. El sistema de archivos es uno de los conceptos fundamentales que maneja el sistema operativo y que resulta de gran utilidad tanto para los programadores como para los usuarios. Lo que hace el sistema operativo es asignar un nombre lógico y ciertas propiedades a zonas físicas del disco duro (o de otras unidades de disco) que conforman un bloque lógico de información. Este bloque es lo que el usuario percibe como un archivo: un texto que hemos escrito, un PDF que hemos descargado de Internet, una fotografía o un vídeo. Todos los sistemas operativos proporcionan un administrador de archivos, es decir, una utilidad que muestra en pantalla la organización en directorios y subdirectorios (carpetas y subcarpetas) de todos los ficheros contenidos en las unidades de disco, tanto los del sistema como los generados por el usuario, y que permite realizar operaciones comunes como crear carpetas, copiar o renombrar ficheros y modificar sus atributos o permisos.


Gestor de archivos de Ubuntu, una popular distribución GNU/Linux

Interpretación de comandos. Un último aspecto gestionado por el sistema operativo es la comunicación con el usuario a través de una interfaz. Esto se realiza mediante un programa del sistema denominado intérprete de comandos, cuya función es «leer» y ejecutar las órdenes del usuario. El término «leer» posee un sentido amplio. En sistemas como MS-DOS o UNIX se trataba estrictamente de traducir un comando de texto introducido a través del teclado; para interpretar la orden del usuario en las actuales interfaces gráficas, el sistema operativo debe tener presente en todo momento cuál es la función asignada a la región de la pantalla sobre la que puede pulsarse el ratón.

Sistemas operativos domésticos

Por número de usuarios, el rey de los sistemas operativos sigue siendo Windows, que ha mantenido su posición dominante en las últimas décadas; es difícil determinarlo con exactitud, pero se estima que más del noventa por ciento de los ordenadores de sobremesa y portátiles funcionan con el sistema operativo de Microsoft. El porcentaje restante se reparte principalmente entre el macOS (Macintosh Operating System), que viene instalado de serie en los portátiles y ordenadores de Apple (MacBook e iMac), y las múltiples distribuciones basadas en el sistema operativo GNU/Linux (Ubuntu, Debian o Fedora, entre otras muchas).

Windows

El casi monopolio que ostenta Microsoft en el área de los sistemas operativos se remonta a los tiempos del MS-DOS: a principios de los 80, la informática de consumo vivió su gran eclosión con la fabricación a gran escala de los «clónicos», ordenadores de bajo coste compatibles con el PC (Personal Computer) que IBM lanzó en 1981. IBM había encargado a Microsoft, una minúscula empresa de software fundada por Bill Gates, el diseño de un sistema operativo para su PC. El joven Bill Gates cumplió el encargo entregando a IBM el sistema operativo MS-DOS, que se instaló en los nuevos PCs de IBM, pero tuvo el acierto de reservarse la titularidad del sistema y el derecho a venderlo por separado.


El MS-DOS sobre un PC de IBM

Como los clónicos imitaban la arquitectura de los PCs de IBM, el MS-DOS funcionaba perfectamente en ellos; de ahí que, cuando el mercado de la informática personal se inundó de clónicos, el MS-DOS se convirtió de la noche a la mañana en el sistema operativo más utilizado. En pocos años, la combinación PC compatible de bajo coste más sistema operativo MS-DOS copó el mercado y se erigió en estándar, dejando a Microsoft en una posición de abrumadora hegemonía. Puesto que el resto de aplicaciones, como ya se ha indicado, se diseñan para funcionar sobre un determinado sistema operativo, las empresas de software se lanzaron a la producción de programas para MS-DOS, con lo que no lograron sino consolidar la posición de Microsoft, que podía jactarse, con razón, de que sobre su sistema operativo funcionaban todos los programas existentes, los suyos y los de la competencia.

La aparición en 1984 del Macintosh, que incluía por primera vez en el entorno de la informática personal un sistema operativo con una amigable e intuitiva interfaz gráfica, no representó en un primer momento una amenaza por el elevado precio del ordenador de Apple en comparación con los clónicos, pero espoleó sin duda el desarrollo de Windows. En sus primeras versiones (la más popular fue Windows 3.1, lanzada en 1992), Windows parecía más una interfaz gráfica para el MS-DOS que un sistema operativo, pero igualmente gozó de gran aceptación por parte de los usuarios.


Windows 3.1 (1992)

En este sentido, Windows 95 (1995) fue propiamente el primer sistema operativo de la serie, aun cuando cabe advertir que en algunos aspectos se fundaba todavía en el viejo MS-DOS, manteniendo en modo oculto algunas de sus limitaciones. Por ejemplo, se anunció como gran novedad la supresión de la limitación a ocho caracteres en el nombre de los archivos. Ciertamente, al crear un documento se le podía poner un nombre largo y descriptivo, gracias al cual, al volver sobre él, se recordaba perfectamente su objeto y contenido; pero, internamente, el sistema de archivos seguía guardándolo con una abreviatura de ocho caracteres.

Hubo que esperar a Windows XP (2001), que adoptó el núcleo y el eficiente sistema de archivos de Windows NT (desarrollado paralelamente), para disponer de un sistema operativo verdaderamente acorde con los tiempos. Los principales elementos de la interfaz de Windows 95 (el escritorio, los iconos, las ventanas, el menú desplegable del botón «Inicio» con acceso a todos los programas, la barra de tareas, el área del reloj) se mantuvieron sin demasiados cambios en las sucesivas versiones. Con Windows 8 (2012), no obstante, se produjo un vuelco espectacular; el escritorio se rediseñó en la dirección tomada por las interfaces táctiles, con no poco disgusto para los que prefieren las interfaces clásicas de sobremesa.

macOS

El sistema operativo macOS, sobre el que funcionan los portátiles y ordenadores de Apple (MacBook e iMac), ha experimentado diversas mutaciones tanto en su denominación como en su diseño interno. En el ámbito de la informática doméstica, como ya se ha indicado, el sistema operativo del Macintosh (1984), llamado simplemente System, fue pionero en el uso de una interfaz gráfica con ratón.


Steve Jobs, John Sculley y Stephen Wozniak en la presentación del Macintosh (San Francisco, 1984)

Su evolución padeció las vicisitudes de la empresa; tras una década de crisis, y con el regreso de Steve Jobs al frente de la compañía, el llamado Mac OS clásico fue substituido por el Mac Os X (2001), un robusto sistema operativo estilo Unix basado en el que Jobs había desarrollado durante su etapa en NeXT Computer. Para armonizar su nombre con el de los restantes sistemas de la casa (iOS, tvOS, watchOS), en 2016 pasó a llamarse macOS.

La fortuna de las sucesivas versiones de este sistema operativo ha sido la de los productos de Apple en que vienen instalados. Desde finales de los 90, tras el regreso de Jobs, la multinacional retomó el rumbo de acelerada innovación tecnológica que siempre la había caracterizado, sin amilanarse ni ante los costes de desarrollo ni ante el precio final del producto. Podría pensarse que los ordenadores de Apple, siempre punteros en tecnología y diseño pero mucho más caros que los de la competencia, se dirigen a sectores con alto poder adquisitivo, pero la realidad es que la empresa ha logrado aglutinar en torno al prestigio de su marca a una variada legión de incondicionales que esperan ansiosamente cada nuevo lanzamiento.

GNU/Linux

Los sistemas GNU/Linux son el resultado final de una iniciativa liderada por el estadounidense Richard Stallman, que en 1985 efectuó un llamamiento entre la comunidad de programadores para desarrollar conjuntamente un sistema operativo al estilo de Unix de carácter libre, es decir, no sometido a los derechos de copyright ni a las leyes sobre la propiedad intelectual de que se valen las multinacionales para proteger sus intereses y mantener oculto el código fuente. Hacia 1991 se había creado ya la mayor parte de los componentes del nuevo sistema, pero la comunidad encontraba dificultades insuperables para desarrollar un núcleo estable.


Richard Stallman impulsó el desarrollo de un sistema operativo libre

Ese mismo año un solo programador, el finlandés Linus Torvalds, logró completar un núcleo al que llamó Linux, acrónimo de su nombre y Unix. A partir de ese momento, con la integración de los componentes GNU y el núcleo Linux, fue posible disponer de un sistema operativo completo bajo una licencia «copyleft» que otorgaba al usuario acceso al código fuente y total libertad de uso y modificación, con la salvedad de que toda modificación debía publicarse bajo la misma licencia, asegurando así la condición de software libre de las versiones derivadas.

Ciertamente la instalación de las primeras distribuciones de GNU/Linux, aparecidas en 1992, sólo estaba al alcance de usuarios expertos, y hasta finales de los 90 Linux pareció un universo esotérico poblado de pintorescos geeks. Pero la posterior evolución del sistema, perfeccionado por una entregada comunidad de programadores, facilitó las cosas hasta el punto de que actualmente las distribuciones más difundidas, como Ubuntu, son de tan fácil instalación y manejo como Windows e incluso más atractivas a nivel gráfico, posibilitando además la descarga e instalación de todos los programas que puedan necesitarse. Ni los anteriores problemas de compatibilidad con otros sistemas ni la falta de aplicaciones pueden ya servir de excusa para no dar el paso.

Sistemas operativos para móviles

En los últimos años, la evolución de la telefonía móvil ha llevado a la progresiva substitución de los antiguos celulares por los llamados teléfonos inteligentes (smartphones), que a pesar de su nombre son en realidad ordenadores en miniatura con conexión a Internet. Al igual que en los ordenadores convencionales, los sistemas operativos para smartphones gestionan los recursos del dispositivo, presentan una intuitiva interfaz táctil y han favorecido la proliferación de infinidad de aplicaciones, permitiendo a los usuarios llevar a cabo tareas antes reservadas a los ordenadores de sobremesa, aunque ciertamente con menor comodidad.


Android sobre un Samsung

El momento clave en esta evolución fue 2007: ese año, Apple presentó el primero de sus teléfonos inteligentes, el iPhone, equipado con el sistema operativo iOS; casi al mismo tiempo, Google anunció el lanzamiento de la primera versión de su sistema operativo para móviles, Android. Al desvincular el sistema operativo de un modelo concreto, Google tenía todas las de ganar, y, en efecto, pronto los fabricantes adoptaron su sistema hasta convertirlo prácticamente en el estándar. Actualmente el 85 por ciento de los teléfonos inteligentes funciona con Android, pero Apple ha logrado retener el segmento alto con los sucesivos modelos de la familia iPhone, mucho más caros que sus competidores.