Historia de los sistemas operativos

Compartir Imprimir Citar

Los sistemas operativos de computadora (SO) proporcionan un conjunto de funciones necesarias y utilizadas por la mayoría de los programas de aplicación en una computadora, y los enlaces necesarios para controlar y sincronizar el hardware de la computadora. En las primeras computadoras, sin sistema operativo, cada programa necesitaba la especificación de hardware completa para ejecutarse correctamente y realizar tareas estándar, y sus propios controladores para dispositivos periféricos como impresoras y lectores de tarjetas de papel perforado. La creciente complejidad del hardware y los programas de aplicación eventualmente hizo que los sistemas operativos fueran una necesidad para el uso diario.

Fondo

Las primeras computadoras eran mainframes que carecían de cualquier forma de sistema operativo. Cada usuario tenía el uso exclusivo de la máquina durante un período de tiempo programado y llegaba a la computadora con el programa y los datos, a menudo en tarjetas de papel perforadas y cinta magnética o de papel. El programa se cargaría en la máquina y la máquina se configuraría para funcionar hasta que el programa se completara o fallara. Los programas generalmente se pueden depurar a través de un panel de control usando diales, interruptores de palanca y luces del panel.

Los lenguajes simbólicos, los ensambladores y los compiladores se desarrollaron para que los programadores tradujeran el código de programa simbólico en código de máquina que previamente habría sido codificado a mano. Las máquinas posteriores vinieron con bibliotecas de código de soporte en tarjetas perforadas o cinta magnética, que se vincularían al programa del usuario para ayudar en operaciones como entrada y salida. Esta fue la génesis del sistema operativo moderno; sin embargo, las máquinas aún ejecutaban un solo trabajo a la vez. En la Universidad de Cambridge, en Inglaterra, la cola de trabajo era en un tiempo una línea de lavado de la que se colgaban cintas con pinzas de ropa de diferentes colores para indicar la prioridad del trabajo.

A medida que las máquinas se volvieron más poderosas, el tiempo para ejecutar los programas disminuyó, y el tiempo para entregar el equipo al siguiente usuario se hizo grande en comparación. La contabilidad y el pago del uso de la máquina pasaron de consultar el reloj de pared al registro automático de la computadora. Las colas de ejecución evolucionaron de una cola literal de personas en la puerta, a un montón de medios en una mesa de espera de trabajos, o lotes de tarjetas perforadas apiladas una encima de la otra en el lector, hasta que la máquina misma fue capaz de seleccionar y secuencia qué unidades de cinta magnética procesaron qué cintas. Donde los desarrolladores de programas originalmente tenían acceso para ejecutar sus propios trabajos en la máquina, fueron reemplazados por operadores de máquinas dedicados que cuidaban la máquina y estaban cada vez menos preocupados por implementar tareas manualmente. Cuando los centros de computación disponibles en el mercado se enfrentaron a las implicaciones de la pérdida de datos por manipulación o errores operativos, se presionó a los proveedores de equipos para que mejoraran las bibliotecas de tiempo de ejecución para evitar el uso indebido de los recursos del sistema. La supervisión automatizada era necesaria no solo para el uso de la CPU, sino también para contar las páginas impresas, las tarjetas perforadas, las tarjetas leídas, el almacenamiento en disco utilizado y para indicar cuándo se requería la intervención del operador en trabajos como el cambio de cintas magnéticas y formularios en papel. Se agregaron características de seguridad a los sistemas operativos para registrar registros de auditoría de qué programas accedían a qué archivos y para evitar el acceso a un archivo de nómina de producción por parte de un programa de ingeniería, por ejemplo. Se presionó a los proveedores de equipos para que mejoraran las bibliotecas de tiempo de ejecución para evitar el uso indebido de los recursos del sistema. La supervisión automatizada era necesaria no solo para el uso de la CPU, sino también para contar las páginas impresas, las tarjetas perforadas, las tarjetas leídas, el almacenamiento en disco utilizado y para indicar cuándo se requería la intervención del operador en trabajos como el cambio de cintas magnéticas y formularios en papel. Se agregaron características de seguridad a los sistemas operativos para registrar registros de auditoría de qué programas accedían a qué archivos y para evitar el acceso a un archivo de nómina de producción por parte de un programa de ingeniería, por ejemplo. Se presionó a los proveedores de equipos para que mejoraran las bibliotecas de tiempo de ejecución para evitar el uso indebido de los recursos del sistema. La supervisión automatizada era necesaria no solo para el uso de la CPU, sino también para contar las páginas impresas, las tarjetas perforadas, las tarjetas leídas, el almacenamiento en disco utilizado y para indicar cuándo se requería la intervención del operador en trabajos como el cambio de cintas magnéticas y formularios en papel. Se agregaron características de seguridad a los sistemas operativos para registrar registros de auditoría de qué programas accedían a qué archivos y para evitar el acceso a un archivo de nómina de producción por parte de un programa de ingeniería, por ejemplo.

Todas estas características se estaban construyendo hacia el repertorio de un sistema operativo totalmente capaz. Eventualmente, las bibliotecas de tiempo de ejecución se convirtieron en un programa combinado que se inició antes del primer trabajo del cliente y podía leer el trabajo del cliente, controlar su ejecución, registrar su uso, reasignar recursos de hardware después de que finalizó el trabajo e inmediatamente pasar a procesar el siguiente trabajo. Estos programas de fondo residentes, capaces de gestionar procesos de varios pasos, a menudo se denominaban monitores o programas de monitor antes de que se estableciera el término "sistema operativo".

Un programa subyacente que ofrece gestión básica de hardware, programación de software y supervisión de recursos puede parecer un ancestro remoto de los sistemas operativos orientados al usuario de la era de la informática personal. Pero ha habido un cambio en el significado de SO. Así como los primeros automóviles carecían de velocímetros, radios y acondicionadores de aire que luego se convirtieron en estándar, más y más características de software opcionales se convirtieron en características estándar en cada paquete de sistema operativo, aunque algunas aplicaciones, como los sistemas de administración de bases de datos y las hojas de cálculo, siguen siendo opcionales y tienen un precio por separado. Esto ha llevado a la percepción de un sistema operativo como un sistema de usuario completo con una interfaz gráfica de usuario integrada, utilidades, algunas aplicaciones como editores de texto y administradores de archivos y herramientas de configuración.

El verdadero descendiente de los primeros sistemas operativos es lo que ahora se llama el "núcleo". En los círculos técnicos y de desarrollo, el antiguo sentido restringido de un sistema operativo persiste debido al continuo desarrollo activo de sistemas operativos integrados para todo tipo de dispositivos con un componente de procesamiento de datos, desde dispositivos portátiles hasta robots industriales y sistemas de control en tiempo real. sistemas, que no ejecutan aplicaciones de usuario en el front-end. Un sistema operativo integrado en un dispositivo de hoy no está tan alejado como podría pensarse de su antepasado de la década de 1950.

Las categorías más amplias de sistemas y software de aplicación se analizan en el artículo de software de computadora.

Mainframes

El primer sistema operativo utilizado para el trabajo real fue GM-NAA I/O, producido en 1956 por la división de investigación de General Motors para su IBM 704. La mayoría de los otros primeros sistemas operativos para mainframes de IBM también fueron producidos por clientes.

Los primeros sistemas operativos eran muy diversos, y cada proveedor o cliente producía uno o más sistemas operativos específicos para su computadora central en particular. Cada sistema operativo, incluso del mismo proveedor, podría tener modelos radicalmente diferentes de comandos, procedimientos operativos e instalaciones tales como ayudas para la depuración. Por lo general, cada vez que el fabricante presentaba una nueva máquina, habría un nuevo sistema operativo y la mayoría de las aplicaciones tendrían que ajustarse, recompilarse y probarse manualmente.

Sistemas en hardware de IBM

La situación continuó hasta la década de 1960 cuando IBM, que ya era un proveedor líder de hardware, dejó de trabajar en los sistemas existentes y puso todo su esfuerzo en desarrollar la serie de máquinas System/360, todas las cuales usaban la misma instrucción y arquitectura de entrada/salida. IBM pretendía desarrollar un único sistema operativo para el nuevo hardware, el OS/360. Los problemas encontrados en el desarrollo del OS/360 son legendarios y están descritos por Fred Brooks en The Mythical Man-Month, un libro que se ha convertido en un clásico de la ingeniería de software. Debido a las diferencias de rendimiento en la gama de hardware y los retrasos en el desarrollo del software, se introdujo una familia completa de sistemas operativos en lugar de un solo OS/360.

IBM terminó lanzando una serie de soluciones provisionales seguidas de dos sistemas operativos de mayor duración:

IBM mantuvo la compatibilidad total con el pasado, por lo que los programas desarrollados en los años sesenta aún pueden ejecutarse en z/VSE (si se desarrolló para DOS/360) o z/OS (si se desarrolló para MFT o MVT) sin cambios.

IBM también desarrolló TSS/360, un sistema de tiempo compartido para el System/360 Model 67. Para compensar en exceso la importancia percibida de desarrollar un sistema de tiempo compartido, pusieron a cientos de desarrolladores a trabajar en el proyecto. Los primeros lanzamientos de TSS fueron lentos y poco confiables; para cuando TSS tuvo un rendimiento y confiabilidad aceptables, IBM quería que sus usuarios de TSS migraran a OS/360 y OS/VS2; mientras que IBM ofreció un TSS/370 PRPQ, lo abandonaron después de 3 lanzamientos.

Varios sistemas operativos para las arquitecturas IBM S/360 y S/370 fueron desarrollados por terceros, incluidos Michigan Terminal System (MTS) y MUSIC/SP.

Otros sistemas operativos de mainframe

Control Data Corporation desarrolló los sistemas operativos SCOPE en la década de 1960, para procesamiento por lotes y luego desarrolló el sistema operativo MACE para tiempo compartido, que fue la base para el Kronos posterior. En cooperación con la Universidad de Minnesota, los sistemas operativos Kronos y más tarde NOS se desarrollaron durante la década de 1970, que admitían el uso simultáneo de lotes y tiempo compartido. Como muchos sistemas comerciales de tiempo compartido, su interfaz era una extensión del sistema de tiempo compartido DTSS, uno de los esfuerzos pioneros en lenguajes de programación y tiempo compartido.

A fines de la década de 1970, Control Data y la Universidad de Illinois desarrollaron el sistema PLATO, que utilizaba pantallas de plasma y redes de tiempo compartido de larga distancia. PLATO fue notablemente innovador para su época; el modelo de memoria compartida del lenguaje de programación TUTOR de PLATO permitió aplicaciones tales como chat en tiempo real y juegos gráficos multiusuario.

Para UNIVAC 1107, UNIVAC, el primer fabricante comercial de computadoras, produjo el sistema operativo EXEC I y Computer Sciences Corporation desarrolló el sistema operativo EXEC II y se lo entregó a UNIVAC. EXEC II fue portado a UNIVAC 1108. Más tarde, UNIVAC desarrolló el sistema operativo EXEC 8 para 1108; fue la base de los sistemas operativos para los miembros posteriores de la familia. Como todos los primeros sistemas mainframe, EXEC I y EXEC II eran un sistema orientado a lotes que administraba tambores magnéticos, discos, lectores de tarjetas e impresoras de línea; EXEC 8 admitía tanto el procesamiento por lotes como el procesamiento de transacciones en línea. En la década de 1970, UNIVAC produjo el sistema Real-Time Basic (RTB) para admitir el tiempo compartido a gran escala, también siguiendo el modelo del sistema Dartmouth BASIC.

Burroughs Corporation introdujo el B5000 en 1961 con el sistema operativo MCP (Master Control Program). El B5000 era una máquina de pila diseñada para soportar exclusivamente lenguajes de alto nivel, sin software, ni siquiera en el nivel más bajo del sistema operativo, siendo escrito directamente en lenguaje máquina o lenguaje ensamblador; el MCP fue el primer sistema operativo que se escribió completamente en un lenguaje de alto nivel, ESPOL, un dialecto de ALGOL 60, aunque ESPOL tenía declaraciones especializadas para cada "sílaba" en el conjunto de instrucciones B5000. MCP también introdujo muchas otras innovaciones revolucionarias, como ser una de las primeras implementaciones comerciales de memoria virtual. La reescritura de MCP para el B6500 todavía se usa en la línea de computadoras Unisys ClearPath/MCP.

GE presentó la serie GE-600 con el sistema operativo General Electric Comprehensive Operating Supervisor (GECOS) en 1962. Después de que Honeywell adquirió el negocio de computadoras de GE, pasó a llamarse General Comprehensive Operating System (GCOS). Honeywell amplió el uso del nombre GCOS para cubrir todos sus sistemas operativos en la década de 1970, aunque muchas de sus computadoras no tenían nada en común con la serie GE 600 anterior y sus sistemas operativos no se derivaron del GECOS original.

El proyecto MAC del MIT, en colaboración con GE y Bell Labs, desarrolló Multics, que introdujo el concepto de niveles de privilegio de seguridad en anillos.

Digital Equipment Corporation desarrolló TOPS-10 para su línea PDP-10 de computadoras de 36 bits en 1967. Antes del uso generalizado de Unix, TOPS-10 era un sistema particularmente popular en las universidades y en la primera comunidad de ARPANET. Bolt, Beranek y Newman desarrollaron TENEX para un PDP-10 modificado que admitía paginación de demanda; este fue otro sistema popular en las comunidades de investigación y ARPANET, y luego fue desarrollado por DEC en TOPS-20.

Scientific Data Systems/Xerox Data Systems desarrolló varios sistemas operativos para la serie de computadoras Sigma, como el monitor de control básico (BCM), el monitor de procesamiento por lotes (BPM) y el monitor básico de tiempo compartido (BTM). Más tarde, BPM y BTM fueron reemplazados por el Sistema Universal de Tiempo Compartido (UTS); fue diseñado para proporcionar servicios de programación múltiple para programas de usuario en línea (interactivos) además de trabajos de producción en modo por lotes. Fue reemplazado por el sistema operativo CP-V, que combinó UTS con el sistema operativo Xerox fuertemente orientado por lotes.

Minicomputadoras

Digital Equipment Corporation creó varios sistemas operativos para sus máquinas PDP-11 de 16 bits, incluido el sistema RT-11 simple, los sistemas operativos RSTS de tiempo compartido y la familia RSX-11 de sistemas operativos en tiempo real, así como el Sistema VMS para las máquinas VAX de 32 bits.

Varios competidores de Digital Equipment Corporation, como Data General, Hewlett-Packard y Computer Automation, crearon sus propios sistemas operativos. Uno de ellos, "MAX III", fue desarrollado para computadoras Modular Computer Systems Modcomp II y Modcomp III. Se caracterizó por tener como mercado objetivo el mercado de control industrial. Las bibliotecas de Fortran incluían una que permitía el acceso a dispositivos de medición y control.

La innovación clave de IBM en los sistemas operativos de esta clase (que ellos llaman "rango medio") fue su "CPF" para System/38. Este tenía un direccionamiento basado en la capacidad, usaba una arquitectura de interfaz de máquina para aislar el software de la aplicación y la mayor parte del sistema operativo de las dependencias del hardware (incluso detalles como el tamaño de la dirección y el tamaño del registro) e incluía un RDBMS integrado. El siguiente OS/400 (ahora conocido como IBM i) para IBM AS/400 y posterior IBM Power Systems no tiene archivos, solo objetos de diferentes tipos y estos objetos persisten en una memoria virtual plana muy grande, llamada almacén de un solo nivel..

El sistema operativo Unix fue desarrollado en AT&T Bell Laboratories a fines de la década de 1960, originalmente para el PDP-7 y luego para el PDP-11. Debido a que era esencialmente gratuito en las primeras ediciones, fácil de obtener y modificar, logró una amplia aceptación. También se convirtió en un requisito dentro de las empresas operadoras de sistemas Bell. Dado que fue escrito en lenguaje C, cuando ese lenguaje fue portado a una nueva arquitectura de máquina, también se pudo portar Unix. Esta portabilidad le permitió convertirse en la elección de una segunda generación de minicomputadoras y de la primera generación de estaciones de trabajo, y su uso se generalizó. Unix ejemplificó la idea de un sistema operativo que era conceptualmente el mismo en varias plataformas de hardware. Por su utilidad, inspiró a muchos y más tarde se convirtió en una de las raíces del movimiento del software libre y del software de código abierto. Numerosos sistemas operativos se basaron en él, incluidos Minix, GNU/Linux y Berkeley Software Distribution. El macOS de Apple también se basa en Unix a través de NeXTSTEP y FreeBSD.

El sistema operativo Pick era otro sistema operativo disponible en una amplia variedad de marcas de hardware. Lanzado comercialmente en 1973, su núcleo era un lenguaje similar a BASIC llamado Data/BASIC y un lenguaje de manipulación de bases de datos de estilo SQL llamado INGLÉS. Con licencia para una gran variedad de fabricantes y proveedores, a principios de la década de 1980, los observadores vieron el sistema operativo Pick como un fuerte competidor de Unix.

Microcomputadoras

A partir de mediados de la década de 1970, apareció en el mercado una nueva clase de computadoras pequeñas. Con procesadores de 8 bits, generalmente MOS Technology 6502, Intel 8080, Motorola 6800 o Zilog Z80, junto con interfaces de entrada y salida rudimentarias y tanta RAM como sea posible, estos sistemas comenzaron como computadoras para aficionados basadas en kits, pero pronto se convirtieron en una herramienta comercial esencial.

Computadoras para el hogar

Si bien muchas computadoras domésticas de ocho bits de la década de 1980, como BBC Micro, Commodore 64, serie Apple II, Atari de 8 bits, Amstrad CPC, serie ZX Spectrum y otras, podían cargar un sistema operativo de carga de disco de terceros., como CP/M o GEOS, generalmente se usaban sin uno. Sus sistemas operativos incorporados se diseñaron en una era en la que las unidades de disquete eran muy costosas y no se esperaba que la mayoría de los usuarios las usaran, por lo que el dispositivo de almacenamiento estándar en la mayoría era una unidad de cinta que usaba casetes compactos estándar. La mayoría, si no todas, de estas computadoras se enviaron con un intérprete BASIC incorporado en la ROM, que también sirvió como una interfaz de línea de comando rudimentaria, lo que permitió al usuario cargar un sistema operativo de disco separado para ejecutar comandos de administración de archivos y cargar y guardar en disco. El más popularla computadora doméstica, el Commodore 64, fue una excepción notable, ya que su DOS estaba en la ROM en el hardware de la unidad de disco, y la unidad estaba dirigida de manera idéntica a las impresoras, módems y otros dispositivos externos.

Además, esos sistemas se enviaban con cantidades mínimas de memoria de computadora (4-8 kilobytes era estándar en las primeras computadoras domésticas), así como procesadores de 8 bits sin circuitos de soporte especializados como una MMU o incluso un reloj de tiempo real dedicado. En este hardware, la sobrecarga de un sistema operativo complejo que admite múltiples tareas y usuarios probablemente comprometería el rendimiento de la máquina sin que realmente se necesite. Como esos sistemas se vendían completos en gran medida, con una configuración de hardware fija, tampoco era necesario que un sistema operativo proporcionara controladores para una amplia gama de hardware para eliminar las diferencias.

Los videojuegos e incluso la hoja de cálculo, la base de datos y los procesadores de texto disponibles para las computadoras domésticas eran en su mayoría programas autónomos que se hacían cargo de la máquina por completo. Aunque existía software integrado para estas computadoras, por lo general carecían de funciones en comparación con sus equivalentes independientes, en gran parte debido a las limitaciones de memoria. El intercambio de datos se realizó principalmente a través de formatos estándar como texto ASCII o CSV, o mediante programas especializados de conversión de archivos.

Sistemas operativos en videojuegos y consolas

Dado que prácticamente todas las consolas de videojuegos y gabinetes de juegos diseñados y construidos después de 1980 eran verdaderas máquinas digitales basadas en microprocesadores (a diferencia de los clones y derivados anteriores de Pong), algunos de ellos tenían una forma mínima de BIOS o juego incorporado, como ColecoVision., Sega Master System y SNK Neo Geo.

Las consolas de juegos y los videojuegos modernos, comenzando con PC-Engine, tienen un BIOS mínimo que también proporciona algunas utilidades interactivas, como administración de tarjetas de memoria, reproducción de CD de audio o video, protección contra copia y, a veces, bibliotecas para que las usen los desarrolladores, etc. Sin embargo, pocos de estos casos calificarían como un verdadero sistema operativo.

Las excepciones más notables son probablemente la consola de juegos Dreamcast, que incluye un BIOS mínimo, como la PlayStation, pero puede cargar el sistema operativo Windows CE desde el disco del juego, lo que permite transferir fácilmente los juegos desde el mundo de la PC, y la consola de juegos Xbox, que es poco más que una PC disfrazada basada en Intel que ejecuta una versión secreta y modificada de Microsoft Windows en segundo plano. Además, hay versiones de Linux que se ejecutarán en Dreamcast y también en consolas de juegos posteriores.

Mucho antes de eso, Sony había lanzado una especie de kit de desarrollo llamado Net Yaroze para su primera plataforma PlayStation, que proporcionaba una serie de herramientas de programación y desarrollo para usar con una PC normal y una "Black PlayStation" especialmente modificada que podía conectarse. con una PC y descargar programas de ella. Estas operaciones requieren en general un sistema operativo funcional en ambas plataformas involucradas.

En general, se puede decir que las consolas de videojuegos y las máquinas recreativas que funcionan con monedas utilizaron como máximo un BIOS incorporado durante los años 70, 80 y la mayor parte de los 90, mientras que a partir de la era PlayStation y más allá comenzaron a ser cada vez más sofisticados. hasta el punto de requerir un sistema operativo genérico o personalizado para ayudar en el desarrollo y la capacidad de expansión.

Era de la computadora personal

El desarrollo de los microprocesadores hizo que la informática económica estuviera disponible para las pequeñas empresas y los aficionados, lo que a su vez condujo al uso generalizado de componentes de hardware intercambiables mediante una interconexión común (como S-100, SS-50, Apple II, ISA y PCI). autobuses), y una creciente necesidad de sistemas operativos "estándar" para controlarlos. El más importante de los primeros sistemas operativos en estas máquinas fue el CP/M-80 de Digital Research para las CPU 8080/8085/Z-80. Se basó en varios sistemas operativos de Digital Equipment Corporation, principalmente para la arquitectura PDP-11. El primer sistema operativo de Microsoft, MDOS/MIDAS, fue diseñado junto con muchas de las características del PDP-11, pero para sistemas basados ​​en microprocesadores. MS-DOS, o PC DOS cuando lo proporciona IBM, fue diseñado para ser similar a CP/M-80.Cada una de estas máquinas tenía un pequeño programa de arranque en la ROM que cargaba el propio sistema operativo desde el disco. El BIOS en las máquinas de clase IBM-PC fue una extensión de esta idea y ha acumulado más características y funciones en los 20 años desde que se introdujo la primera IBM-PC en 1981.

El costo decreciente de los equipos de visualización y los procesadores hizo que fuera práctico proporcionar interfaces gráficas de usuario para muchos sistemas operativos, como el sistema X Window genérico que se proporciona con muchos sistemas Unix, u otros sistemas gráficos como el clásico Mac OS de Apple y macOS, el OS-9 Nivel II/MultiVue de Radio Shack Color Computer, AmigaOS de Commodore, Atari TOS, OS/2 de IBM y Microsoft Windows. La GUI original se desarrolló en el sistema informático Xerox Alto en el Centro de Investigación de Xerox Palo Alto a principios de la década de 1970 y fue comercializada por muchos proveedores durante las décadas de 1980 y 1990.

Desde finales de la década de 1990, ha habido tres sistemas operativos de uso generalizado en las computadoras personales: macOS de Apple Inc., Linux de código abierto y Microsoft Windows. Desde 2005 y la transición de Mac a los procesadores Intel, todos se han desarrollado principalmente en la plataforma x86, aunque macOS retuvo el soporte de PowerPC hasta 2009 y Linux sigue siendo portado a una multitud de arquitecturas, incluidas algunas como 68k, PA-RISC y DEC Alpha. que han sido reemplazados y fuera de producción durante mucho tiempo, y SPARC y MIPS, que se utilizan en servidores o sistemas integrados, pero ya no para computadoras de escritorio. Otros sistemas operativos como AmigaOS y OS/2 siguen en uso, si es que lo hacen, principalmente por entusiastas de la retrocomputación o para aplicaciones integradas especializadas.

Sistemas operativos móviles

A principios de la década de 1990, Psion lanzó el PDA Psion Serie 3, un pequeño dispositivo informático móvil. Soportaba aplicaciones escritas por usuarios que se ejecutaban en un sistema operativo llamado EPOC. Las versiones posteriores de EPOC se convirtieron en Symbian, un sistema operativo utilizado para teléfonos móviles de Nokia, Ericsson, Sony Ericsson, Motorola, Samsung y teléfonos desarrollados para NTT Docomo por Sharp, Fujitsu y Mitsubishi. Symbian fue el sistema operativo para teléfonos inteligentes más utilizado en el mundo hasta 2010, con una participación de mercado máxima del 74% en 2006. En 1996, Palm Computing lanzó Pilot 1000 y Pilot 5000, con Palm OS. Microsoft Windows CE fue la base para Pocket PC 2000, rebautizado como Windows Mobile en 2003, que en su apogeo en 2007 fue el sistema operativo más común para teléfonos inteligentes en los EE. UU.

En 2007, Apple presentó el iPhone y su sistema operativo, conocido simplemente como iPhone OS (hasta el lanzamiento de iOS 4), que, al igual que Mac OS X, se basa en Darwin, similar a Unix. Además de estos fundamentos, también introdujo una interfaz gráfica de usuario poderosa e innovadora que luego también se usó en la tableta iPad. Un año después, se presentó Android, con su propia interfaz gráfica de usuario, basada en un kernel Linux modificado, y Microsoft volvió a ingresar al mercado de sistemas operativos móviles con Windows Phone en 2010, que fue reemplazado por Windows 10 Mobile en 2015.

Además de estos, una amplia gama de otros sistemas operativos móviles compiten en esta área.

Auge de la virtualización

Los sistemas operativos originalmente se ejecutaban directamente en el propio hardware y brindaban servicios a las aplicaciones, pero con la virtualización, el propio sistema operativo se ejecuta bajo el control de un hipervisor, en lugar de tener el control directo del hardware.

En mainframes, IBM introdujo la noción de máquina virtual en 1968 con CP/CMS en IBM System/360 Model 67, y la amplió más tarde en 1972 con Virtual Machine Facility/370 (VM/370) en System/370.

En las computadoras personales basadas en x86, VMware popularizó esta tecnología con su producto de 1999, VMware Workstation, y sus productos VMware GSX Server y VMware ESX Server de 2001. Más tarde, una amplia gama de productos de otros, incluidos Xen, KVM e Hyper-V, hizo que en 2010 se informara que más del 80 % de las empresas tenían un programa o proyecto de virtualización y que el 25 % de todas las cargas de trabajo del servidor estar en una máquina virtual.

Con el tiempo, la línea entre máquinas virtuales, monitores y sistemas operativos se desdibujó:

En muchos sentidos, el software de la máquina virtual hoy en día desempeña el papel que antes desempeñaba el sistema operativo, incluida la gestión de los recursos de hardware (procesador, memoria, dispositivos de E/S), la aplicación de políticas de programación o la posibilidad de que los administradores del sistema gestionen el sistema.