# História dos sistemas operacionais

Os sistemas operacionais de computador (SO) fornecem um conjunto de funções necessárias usadas pela maioria dos softwares, fornecendo a conexão necessária para controlar e sincronizar o hardware dele. Nos primeiros computadores sem SO, cada programa precisava do hardware completo específico para rodar corretamente e cumprir tarefas básicas. Ele tinha seus próprios drivers para os dispositivos periféricos como impressoras e os leitores de punched card. A crescente complexidade de hardwares e aplicações de programas fez eventualmente os SO serem necessários no uso diário.

## Plano de fundo

Os primeiros computadores eram mainframes e não possuíam qualquer tipo de sistema operacional. Cada usuário tinha um único acesso à máquina por um determinado período e deveriam ir ao computador com o programa e os dados, muitas vezes em punched cards, fitas de papel ou magnéticas. O programa deveria ser carregado dentro da máquina, ela, por sua vez, teria de ser configurada para trabalhar até o programar ser completado ou travar. Os programas geralmente poderiam ser depurados por um painel de controle usando botões rotativos, interruptores e painel com luzes.
Linguagens simbólicas, montadores e compiladores foram desenvolvidos por programadores para traduzir o código de programa simbólico dentro do código da máquina que antes teria sido codificado manualmente. Máquinas antigas vinham com bibliotecas de suporte para códigos em cartões perfurados ou fitas magnéticas, que deveriam ser conectadas ao programa do usuário para auxiliar nas operações como na entrada e saída. Essa foi a origem do SO moderno, no entanto, as máquinas ainda executavam um trabalho por vez. Na universidade de Cambridge na Inglaterra, a fila de trabalho já foi uma vez um varal onde eram penduradas fitas com prendedores de roupas com cores diferentes para indicar a prioridade do trabalho.
À medida que as máquinas se tornaram mais poderosas, o tempo necessário para executar programas diminuiu drasticamente. No entanto, em contrapartida, o tempo para preparar e configurar o equipamento para o próximo usuário aumentou consideravelmente. O custo de utilização das máquinas evoluiu de uma simples verificação do relógio de parede para um processo de login automatizado no computador.
As filas de execução também sofreram uma transformação significativa ao longo do tempo. O que antes era uma fila física de pessoas aguardando na porta, agora se tornou uma pilha de mídias organizadas em uma mesa de espera, contendo trabalhos ou lotes de cartões perfurados empilhados em leitores. Este processo foi otimizado com máquinas capazes de selecionar e sequenciar automaticamente as fitas magnéticas a serem processadas.
Originalmente, os desenvolvedores de programas tinham acesso direto para executar seus próprios trabalhos nas máquinas. No entanto, com o tempo, foram substituídos por operadores de máquinas dedicados, que assumiram a responsabilidade pelo gerenciamento e manutenção das máquinas. Estes operadores gradualmente perderam interesse em realizar tarefas manualmente.
À medida que os centros de computação comercial enfrentavam desafios relacionados à perda de dados devido a adulterações ou erros operacionais, os fabricantes de equipamentos foram forçados a melhorar rapidamente o desempenho das bibliotecas para evitar o uso indevido dos recursos do sistema. A automação do monitoramento tornou-se essencial não apenas para o uso da CPU, mas também para o controle de páginas impressas, cartões perfurados, leitores de cartão e discos de armazenamento.
Recursos de segurança foram incorporados aos sistemas operacionais para registrar quais programas acessavam quais arquivos, prevenindo, por exemplo, que um programa de engenharia acesse acidentalmente arquivos de folha de pagamento de produção. Essas medidas foram essenciais para garantir a integridade e a segurança dos sistemas de computação em evolução.
Todos esses recursos foram desenvolvidos para a compilação de um sistema operacional totalmente autossuficiente. Eventualmente, o tempo de execução das bibliotecas tornou-se um amontoado de programas iniciados antes do primeiro trabalho do cliente e poderia ler o trabalho do cliente, controlar sua execução, gravar seu uso, reatribuir recursos do hardware depois do término do trabalho e, imediatamente, ir para o próximo processo. Esse programas residentes no plano de fundo, capazes de gerenciar vários processos em instância, foram frequentemente chamados de "monitores", ou "programas de monitoramento" antes do termo "sistemas operacionais" ser estabelecido.
Um programa oculto oferece: gerenciamento básico de hardware, agendamento de software e recursos de monitoramento; que podem ser considerado o pai dos SO dos computadores pessoais atuais. Mas houve uma mudança no significado de SO. Bem como os primeiros automóveis necessitavam de velocímetros, som e ar-condicionado, o que posteriormente veio ser comum; cada vez mais e mais os recursos opcionais de se tornaram padrões em cada pacote de SO. Entretanto, algumas aplicações como sistemas de gerenciamento de database; as planilhas permaneciam opcionais com preços separados. Isso levou a compreensão de um SO como um sistema de usuário completo com interface gráfica de usuário integrada, utilitários, algumas aplicações como editor de texto, gerenciador de arquivos e ferramentas de configuração.
O verdadeiro descendente dos primeiros sistemas operacionais é conhecido hoje como "Kernel". Nos meios técnicos e de desenvolvimento, a velha percepção limitada de um SO continuava, por conta do desenvolvimento contínuo de sistemas operacionais integrados para todos os tipos de dispositivos com um componente de processamento de dados, desde aparelhos portáteis até robôs industriais com controle de sistema em tempo real, que não rodem aplicações de usuário no front-end. Um dispositivo com um SO integrado hoje em dia não está tão longe do que alguém poderia pensar do seu antecessor da década de 1950.
As categorias mais amplas de sistemas e aplicações são discutidas nos artigos sobre software de computador.

## Mainframes

O primeiro sistema operacional usado para um trabalho real foi o GM-NAA I/O, produzido em 1956 pela divisão de pesquisa da General Motors para o IBM 704. A maioria dos outros sistemas operacionais mais recentes para os mainframes da IBM também eram produzidos por clientes.
Os primeiros sistemas operacionais eram muito diversificados, com cada fornecedor ou cliente produzindo um, ou mais sistemas operacionais específicos para a estrutura principal do computador deles. Todo sistema operacional, do mesmo fornecedor, podiam possuir, drasticamente, diferentes modelos de comandos, procedimentos de operação e instalações como auxiliares de depuração. Tradicionalmente, toda vez que um fabricante lançava uma nova máquina, deveria vir com um novo sistema operacional. A maioria das aplicações tinha que ser ajustadas manualmente, recompiladas e retestadas.

### Sistemas no hardware IBM

Isto continuou até a década de 1960, quando a IBM, principal fornecedora de hardware, parou de trabalhar com os sistemas existentes e colocou todos os seus esforços no desenvolvimento nas séries de máquinas System/360. Todas elas usavam a mesma instrução e arquitetura de input/output. A IBM pretendia desenvolver um sistema operacional único para o novo hardware, o OS/360. Os problemas encontrados no desenvolvimento do OS/360 eram legendários, sendo descritos por Fred Brooks em The Mythical Man-Month, um livro que se tornou um clássico da Engenharia de Software. Por conta da diferença de desempenho entre a variedade de hardware e atrasos com o desenvolvimento do software, um grupo inteiro de sistemas operacionais foi introduzido, ao invés de um único OS/360.
A IBM acabou liberando uma série de quebra galhos acompanhados por dois sistemas operacionais melhores desenvolvidos:
* OS/360 para sistemas intermediários e avançados. Esse foi disponibilizado em três opções de geração de sistema:
** PCP para novos usuários — esses não possuíam recursos de multiprogramação.
** MFT para sistemas intermediários, que foi substituindo pelo MFT-II nos OS/360 versões 15/16. Esse tinha um sucessor, o OS/VS1, que foi descontinuado na década de 1980.
** MVT para sistemas avançados. Esse era bastante similar ao PCP e MFT (a maioria dos programas poderia ser portada entre os três sem serem recompilados), mas tinha um gerenciamento de memória mais sofisticado e uma instalação de time-sharing, TSO. O MVT possuía vários sucessores, incluindo o recente z/OS.
* DOS/360 para pequenos modelos. O System/360 teve vários sucessores, incluindo o recente z/VSE. Ele foi significativamente diferente do OS/360.
A IBM manteve uma compatibilidade completa com o passado, então aqueles programas desenvolvidos nos anos sessenta ainda podiam rodar no z/VSE (se desenvolvidos para o DOS/360), ou z/OS (se desenvolvido para o MFT ou MVT) sem que houvesse a necessidade de mudanças.
A IBM também desenvolveu o TSS/360, um sistema time-sharing para o System/360 modelo 67. Em compensação, eles perceberam a importância de desenvolver um sistema timeshare. Então eles convocaram centenas de desenvolvedores para trabalhar no projeto. As primeiras versões lançadas do TSS eram lentas e instáveis. No momento em que TSS teve aceitável desempenho e estabilidade, a IBM queria que os usuários do TTS migrassem para o OS/360 e OS/VS2; enquanto a IBM oferecia um TSS/370 PRPQ, eles o abandonaram depois de 3 lançamentos.
Muitos sistemas operacionais para a IBM com arquitetura S/360 e S/370 eram desenvolvidos por terceiros, incluindo o Michigan Terminal System (MTS) e o MUSIC/SP.

### Outra estrutura principal de sistemas operacionais

A Control Data Corporation desenvolveu o sistema operacional SCOPE na década de 1960 para processamento em lote e o posterior desenvolvimento do sistema operacional MACE para time-sharing, que mais tarde serviu como base para o Kronos. Em parceria com universidade de Minnesota, o Kronos e posteriormente os sistemas operacionais NOS foram desenvolvidos durante a década de 1970; que suportavam lotes simultâneos e o uso de time-sharing. Como muitos sistemas comerciais time-sharing, sua interface era uma extensão do sistema time sharing DTSS; um dos esforços pioneiros em time-sharing e linguagens de programação.
No final da década de 1970, o Control Data e a universidade de Illinois desenvolveram o sistema PLANTO, que usava painel com displays e redes time-sharing de longa distância. O PLATO foi notavelmente inovador para o seu tempo; o modelo de compartilhamento de memória da linguagem de programação TUTOR do PLATO permitia aplicações como chat em tempo real e jogos gráficos multi-usuários.
Para o UNIVAC 1107 — UNIVAC, a primeira fabricante de computadores comerciais —, produziu o sistema operacional EXEC I. A Computer Sciences Corporation desenvolveu o EXEC II e entregou ele para a UNIVAC. O EXEC II foi portado para o UNIVAC 1108. Mais tarde, a UNIVAC desenvolveu o sistema operacional EXEC 8 para o 1108; ele foi a base para os posteriores membros da família de sistemas operacionais. Como todas as primeiras estruturas principais de sistemas, o EXEC I e o EXEC II tiveram um sistema batch-oriented que gerenciava bateias magnéticas, leitores de cartões e impressoras de linha. O EXEC 8 suportava ambos processamentos, de lote e transações on-line. Na década de 1970, a UNIVAC criou sistema Real-Time Basic (RTB) suporte em larga escala de time-sharing, também patenteou depois o sistema Dartmouth BASIC.
A Burroughs Corporation apresentou o B5000 em 1961 com o sistema operacional MCP (Master Control Program). O B5000 era uma stack machine projetada especificamente para suportar linguagens avançadas sem software, nem mesmo no nível mais baixo do sistema operacional, inscrito diretamente na linguagem da máquina ou conjunto de linguagem. O MCP foi o primeiro SO a ser inscrito inteiramente em uma linguagem avançada ESPOL — sigla para ALGOL 60 —, contudo, o ESPOL possuía instruções individuais para cada "sílaba" no conjunto de instruções do B5000. A MCO também apresentou muitas outras inovações revolucionárias, como sendo uma das primeiras a implementar comercialmente uma memória virtual. A reescrita do MCP para o B6500 foi comercializada como Unisys ClearPath/MCP.
A GE introduziu a série GE-600 junto do sistema operacional General Electric Comprehensive Operating Supervisor (GECOS) em 1962. Depois que Honeywell adquiriu a GE, ela foi renomeada para General Comprehensive Operating System (GCOS). A Honeywell expandiu o uso do nome GCOS para cobrir todos seus sistemas operacionais na década de 1970, embora muitos de seus computadores não tivessem nada em comum com os da primeira série GE 600 e o sistema operacional deles não derivavam do original GECOS.
O projeto MAC no MIT trabalhava com a GE e o Bell Labs no desenvolvimento do Multics; que apresentou o conceito de níveis de privilégio ringed-security.
A Digital Equipment Corporation desenvolveu o TOPS-10 para sua linha PDP-10 de computadores 36-bit em 1967. Antes do uso difundido do Unix, o TOPS-10 foi um sistema muito popular nas universidades e na primeira comunidade ARPANET. Bolt, Beranek e Newman desenvolveram o TENEX para um PDP-10 modificado que suportava paginação por demanda, esse foi outro sistema popular em pesquisa e comunidades ARPANET; mais tarde ele foi produzido pela DEC dentro do TOPS-20.
A Scientific Data Systems/Xerox Data Systems criou vários sistemas operacionais para as séries de computadores Sigma, como Basic Control Monitor (BCM), Batch Processing Monitor (BPM) e Basic Time-Sharing Monitor (BTM). Posteriormente, o BPM e o BTM foram sucedidos pelo Universal Time-Sharing System (UTS), ele era projetado a fim de fornecer serviços multiprogramação para interação online dos programas de usuários além da produção de trabalhos em bath-mode. Ele foi substituído pelo sistema operacional CP-V, que combinava UTS com o reforçado batch-oriented do Xerox Operating System.

## Mini computadores

A Digital Equipment Corporation criou diversos sistemas operacionais para as máquinas PDP-11 16-bit, incluindo o sistema simples RT-11; os sistemas operacionais RSTS time-sharing e a família RSX-11 de sistemas operacionais em tempo real, assim com o sistema VMS para as máquinas VAX 32-bit.
Muitos concorrentes da Digital Equipment Corporation, como a Data General, Hewlett-Packard e Computer Automation, criaram os seus próprios sistemas operacionais. Um destes MAX III foi projetado para os computadores Modular Computer Systems Modcomp II e Modcomp III. Ele destacou-se por seu mercado alvo ser o mercado de controle industrial. A The Fortran libraries incluiu um que habilitava o acesso a medição e dispositivos de controle.
A inovação chave da IBM em sistemas operacionais nesta classe — que eles chamavam de "mid-range" —, foi o seu "CPF" para o System/38. Este possuía endereçamento capability-based, usando uma arquitetura de interface para isolar a aplicação de software e a maior parte do sistema operacional a partir das ligações com o hardware — incluindo até mesmo detalhes como tamanho de endereço e registro —; também incluía um RDBMS integrado. O sucessor do OS/400 (agora conhecido como IBM i) para o IBM AS/400 e mais tarde o IBM Power Systems não possuía arquivos, apenas objetos de diferentes tipos. Esses objetos eram mantidos em uma memória virtual plana muito grande, chamada de armazenamento single-level.
O sistema operacional Unix foi desenvolvido na AT&T Bell Laboratories no final da década de 1960, originalmente para o PDP-7 e, posteriormente, PDP-11. Por ele ter sido gratuito essencialmente nas primeiras versões e fácil de ser obtido e modificado, ele alcançou grande aceitação. Ele também tonou-se uma exigência dentro das companhias Bell que utilizavam sistemas operacionais. Desde que ele foi escrito na linguagem C, quando aquela linguagem era portada para arquitetura de máquina nova, o Unix também foi capaz de ser portado. Esta portabilidade permitiu que ele vinhe-se a ser o escolhido para a segunda geração de mini-computadores e a primeira geração de estações de trabalho, então seu uso veio ser difundido. O Unix apresentou a ideia de um sistema operacional que, conceitualmente, era o mesmo dentro das diversas plataformas de hardware. Por conta da sua utilidade, ele inspirou muitos e veio ser uma das raízes do movimento de softwares gratuitos e software de código aberto. Diversos sistemas operacionais foram baseados nele, incluindo o Minix, GNU/Linux e o Berkeley Software Distribution. O macOS da Apple também é baseado no Unix através do NeXTSTEP e FreeBSD.
O Pick foi outro sistema operacional disponibilizado para uma grande variedade de marcas de hardware. Lançado comercialmente em 1973. Seu núcleo era composto por uma linguagem de programção BASIC-like chamada Data/BASIC e uma SQL-style — um banco de dados manipulado por uma linguagem com o nome de ENGLISH. Ele foi licenciado para uma ampla gama de fabricantes e fornecedores. No início da década de 1980, perceberam que o Pick era um forte competidor em relação ao Unix.

## Microcomputadores

Em meados da década de 1970, uma nova classe de computadores pequenos chegou ao mercado. Os processadores 8-bit foram lançados tipicamente no MOS Technology 6502, Intel 8080, Motorola 6800 ou o Zilog Z80, com interfaces rudimentares de Input/output e com o máximo de RAM possível. Esses sistemas começaram como um kit base para os entusiastas de computadores, mas rapidamente evoluiu para uma ferramenta essencial nos negócios.

### Computadores domésticos

Enquanto muitos computadores domésticos 8-bit da década de 1980 — como o BBC Micro, Commodore 64, séries Apple II, Atari 8-bit, Amstrad CPC; séries ZX Spectrum, Apple II e outros —, podiam carregar o sistema operacional de terceiros através do carregamento de disco — tais como o CP/M ou GEOS —, eles eram geralmente usados sem um. Os sistemas operacionais embutido deles foram desenhados em uma época em que os disquetes eram muito caros e não era esperado que usuários comuns usassem eles, então o dispositivo de armazenamento padrão que a maioria usava era fitas cassetes pequenas. Boa parte, se não toda, desses computadores eram enviados com um conversor BASIC integrado em uma ROM — que também servia como uma interface de linha de comando direta —, permitindo que o usuário carregue um sistema operacional em um disco separado para executar comandos de gerenciamento de arquivo, carregamento e salvamento em disco. O computador doméstico mais popular [citação necessária], o Commodore 64, foi uma considerável exerção. Como a sua DOS estava em uma ROM no hardware do disco de armazenamento, a energia era ideticamente endereçada para as impressoras, modems e outros dispositivos externos.
Ademais, esses sistemas de envio com quantidades mínimas de memória — 4 a 8 kilobytes — foi padronizado mais cedo nos computadores domésticos, assim como nos processadores 8-bit sem circuito de suporte de especializado, como um MMU ou até mesmo um relógio em tempo real dedicado. Neste hardware, uma sobrecarga completa do sistema operacional causada pelos usuários rodando múltiplas tarefas, provavelmente, comprometeria o desempenho da máquina sem ser realmente necessário. Como esses sistemas eram vendidos amplamente completos, com uma configuração de hardware fixo, também não havia a necessidade de um sistema operacional para fornecer drivers para uma ampla variedade de hardwares para que as diferenças não atrapalhem.
Videogames, planilhas, banco de dados e editores de texto nos computadores domésticos eram, majoritariamente, programas independentes que assumiam completamente a máquina. Embora existissem softwares integrados para esses computadores, eles normalmente não tinham tantos recursos em comparação aos softwares equivalentes a eles sozinhos, grande parte devido às limitações de memória. O intercâmbio de informações era majoritariamente desempenhado através de formatos como texto ASCII, CSV ou por programas de conversão de arquivos especializados.

### Sistemas operacionais em videogames e consoles

Desde que, praticamente, todos os consoles de videogames e fliperamas foram construídos depois de 1980, eles tornaram-se verdadeiras máquinas digitais baseadas em microprocessadores (diferente dos primeiros clones do Pong e seus derivados). Alguns deles carregavam um formato mínimo de BIOS ou jogo embutido, como o ColecoVision, Sega Master System e SNK Neo Geo.
Consoles modernos e videogames, começando com o PC-Engine, todos possuíam uma pequena BIOS que também fornecia alguns utilitários interativos como gerenciamento de cartão de memória; reprodutor de áudio e vídeo, proteção contra cópias e, às vezes, bibliotecas carregadas para desenvolvedores usar; etc. Em alguns desses casos, no entanto, deveria ser classificados como um sistema operacional.
As exceções mais notáveis são provavelmente o console Dreamcast, que incluía uma BIOS pequena, como o PlayStation, mas que podia carregar o sistema operacional Windows CE a partir do disco de jogo, permitindo a fácil portabilidade de jogos do mundo do PC. O console Xbox era um pouco mais, porque rodava um PC baseado em Intel desfaçado, com uma versão modificada do Microsoft Windows em segundo plano. Todavia, haviam versões Linux que poderiam ser executadas em um Dreamcast e, mais tarde, em outros consoles também.
Muito antes, a Sony havia lançado um tipo de kit de desenvolvimento chamado Net Yaroze para a sua primeira plataforma PlayStation, que disponibilizava uma série de programas e ferramentas de desenvolvimento para serem usadas com um PC normal, e uma especialmente modificada nomeada "Black PlayStation" que poderia ser lincada com um PC e baixar programas a partir dele. Essas operações necessitavam, geralmente, de um SO funcional em ambas plataformas conectadas.
Em geral, pode se dizer que consoles de videogame e máquinas arcades operadas por moedas usavam, no máximo, uma BIOS embutida durante as décadas de 1970, 1980 e boa parte dos anos 90. Enquanto na época do PlayStation e além, eles começaram a ficar cada vez mais e mais sofisticados, ao ponto de ser necessário um SO genérico ou feito sob encomenda para ajudar no desenvolvimento e expansão.

### A era dos computadores pessoais

O desenvolvimento de microprocessadores tornou o acesso a computadores mais acessível para os pequenos negócios e entusiastas, que acabaram difundindo o uso de componentes de hardwares intercambiáveis usando uma conexão em comum, como S-100, SS-50, Apple II, ISA e barramentos PCI. Com isso, houve um aumento na necessidade de um sistema operacional padronizado para controlá-los. O mais importante dos primeiros OSes nessas máquinas foi o CP/M-80 da Digital Research's para os CPUs 8080 / 8085 / Z-80. Isso foi baseado em diversos sistemas operacionais da Digital Equipment Corporation. Prioritariamente, para a arquitetura PDP-11. O primeiro sistema operacional da Microsoft, o MDOS/MIDAS, foi projetado com muitos recursos do PDP-11, mas para sistemas baseados em microprocessadores. O MS-DOS ou PC DOS, quando fornecido pela IBM, foi desenhado para ser similar ao CP/M-80. Cada uma dessas máquinas possuía um pequeno programa de boot em uma ROM que carregava, nela mesma, o SO a partir de um disco. A BIOS da classe de máquinas IBM-PC era uma extensão desse conceito, havendo acrescentado mais recursos e funções nesses 20 anos desde que o primeiro IBM-PC foi lançado em 1981.
O custo reduzido dos monitores e processadores tornou prático que os usuários conseguissem utilizar interfaces gráficas em muitos sistemas operacionais, como o genérico X Window System que era fornecido em muitos sistemas Unix ou outro sistema gráfico; tais como o Mac OS clássico da Apple e o macOS, o OS-9 Level II/Multi-Vue da Radio Shack Color Computer, AmigaOS do Commodore, Atari TOS, OS/2 da IBM e o Microsoft Windows. O GUI original foi desenvolvido no sistema computacional Xerox Alto no Xerox Palo Alto Research Center, início da década de 1970, e comercializado por muitos vendedores em toda a parte entre 1980 e 1990.
Desde o final dos anos 90, haviam sido difundidos três sistemas operacionais para uso em computadores pessoais: macOS da Apple Inc., o Linux de código aberto e o Microsoft Windows. A partir de 2005, o Mac mudou para os processadores Intel. Todos foram desenvolvidos principalmente sobre a plataforma x86, entretanto, o macOS manteve suporte ao PowerPC até 2009. O Linux manteve o porte a múltiplas arquiteturas, incluindo algumas como 68k, PA-RISC e DEC Alpha — que tinham sido substituídas e tiradas de produção há bastante tempo —; SPARC e MIPS — que eram utilizadas em servidores ou sistemas integrados, mas que não eram mais usadas em computadores de mesa. Outros sistemas operacionais como o AmigaOS e OS/2 ainda permaneciam em uso, se é que ainda eram usados, principalmente por entusiasta de computadores antigos, ou para aplicações especializadas dele próprio.

### Sistemas operacionais portáteis

No início da década de 1990, a Psion lançou o PDA (assistente pessoal digital) Psion Series 3, um pequeno aparelho portátil computacional. Ele suportava rodar aplicações user-written em um sistema operacional chamado EPOC. Versões posteriores do EPOC tornaram-se Symbian, no sistema operacional usado pelos celulares da Nokia, Ericsson, Sony Ericsson, Motorola, Samsung e telefones desenvolvidos para NTT Docomo da Sharp, Fujitsu & Mitsubishi. O Symbian foi o sistema operacional de smartphone mais usado no mundo até 2010, com um pico de 76% nas buscas do mercado em 2006. Em 1996, a Palm Computing lançou o Pilot 1000 e o Pilot 5000 rodando o Palm OS. O Microsoft Windows CE foi a base parra o Pocket PC 2000, renomeado de Windows Mobile em 2003, que teve um pico em 2007 sendo o sistema operacional mais comum em smartphones nos EUA.
Em 2007, a Apple apresentou o iPhone e seu sistema operacional, conhecido simplesmente como iPhone OS até o lançamento do iOS 4. Como o Mac OS X ele era baseado no Unix-like Darwin. Além destas novidades, ela também apresentou uma poderosa e inovadora interface gráfica de usuário que depois também foi usada no computador tablete iPad. Um ano depois, o Android com a sua própria interface gráfica de usuário foi lançado, baseado em um kernel Linux modificado. A Microsoft reentrou no mercado de sistemas operacionais portáteis com o Windows Phone em 2010, que foi posteriormente substituído pelo Windows 10 Mobile em 2015.
Em adição a isto, uma ampla gama de outros sistemas operacionais portáteis foram se posicionando nesta área.

## A ascensão da virtualização

Originalmente, os sistemas operacionais rodavam diretamente no seu próprio hardware e gerenciavam as aplicações. Mas com chegada da virtualização, o sistema operacional é executado dentro dele mesmo sob o controle de um hipervisor, ao invés de ser controlado diretamente pelo hardware.
Nas estruturas principais, a IBM apresentou o conceito de uma máquina virtual em 1968, com o CP/CMS no IBM System/360 Model 67, ampliando este conceito posteriormente em 1972, com Virtual Machine Facility/370 (VM/370) no System/370.
Nos computadores pessoais baseados em x86, a VMware popularizou esta tecnologia com os seus produtos em 1999, são eles o VMware Workstation, 2001 VMware GSX Server e o VMware ESX Server. Depois, uma ampla gama de produtos a partir de outros, incluindo o Xen, KVM e Hyper-V. Isso significou que, até 2010, mais de 80% das empresas possuíam um programa de virtualização ou estavam planejando usar e que 25% de todos os servidores com cargas de trabalhos pretendiam adotar uma.
Com o passar do tempo, a diferença entre as máquinas virtuais, monitores e sistemas operacionais foi desaparecendo:
* Os hipervisores tornaram-se mais complexos, ganhando suas próprias interfaces de programação para aplicativos, gerenciamento de memória ou sistema de arquivos.
* A virtualização tornou-se um recurso chave nos sistemas operacionais, como demostrador pelo KVM e LXC no Linux, Hyper-V no Windows Server 2008 ou o HP Integrity Virtual Machines no HP-UX.
* Em alguns sistemas, como servidores baseados em POWER5 e POWER6 da IBM, o hipervisor não é mais opcional.
* Sistemas operacionais simplificados radicalmente como CoreOS, haviam sido projetados para serem executados apenas em sistemas virtuais.
* Aplicações eram reprojetadas para que pudessem ser rodas diretamente em um monitor de máquina virtual.
De muitas maneiras, os softwares de máquinas virtuais hoje desempenham o papel que antes eram dos sistemas operacionais, incluindo o gerenciamento dos recursos de hardware — processador, memória, periféricos —, aplicando políticas de agendamento, ou permitindo que os administradores do sistema possam gerenciar o sistema.

## Veja também

* Instituto Charles Babbage
* A História Social da TI
* Lista dos sistemas operacionais
* Cronologia dos sistemas operacionais
* A história dos ícones de computador