A história do Windows NT, do Windows 10 e do que vier depois.
O atual Windows 10 é descendente linear do Windows NT, um sistema operacional que ganhou este nome em 1998, mas sua origem remonta a década de 70, como veremos neste artigo.
Sua ascendência remonta ao VMS, da Digital Equipment Corporation (ou DEC) e passa longe do GNU/Linux ou de qualquer UNIX — propositadamente.
Senta, que lá vem história.
O NT era uma nova tecnologia?
Quando a Microsoft lançou a primeira versão do Windows NT, em Abril de 1993, o departamento de marketing e de relações com o público, foram enfáticos em dizer que o ‘NT’ no nome do produto queria dizer New Technology ou Nova Tecnologia.
Obviamente, a empresa queria destacar que seu produto era uma novidade, que incluía todos os recursos que os usuários esperavam de um sistema operacional para estações de trabalho (workstations) e servidores de tamanho médio etc.
A empresa anunciava, ainda, uma nova API, a Win32, e um novo kit de ferramentas de gestão do sistema e usuários. Mas as origens da arquitetura central e de suas implementações, vinham de softwares e conceitos construídos nas 2 décadas anteriores.
A história que antecede o NT — ou de onde ele veio
A história da atual família Windows, começa com o sistema operacional VMS, da Digital Equipment Corporation.
A história do NT está ligada à de David N. Cutler, arquiteto chefe do VMS na DEC e, posteriormente, na Microsoft (em relação ao Windows NT).
Graduado na Michigan’s Livet College, em 1965, Cutler trabalhou para a DuPont, uma empresa química estadunidense.
Embora não tivesse, inicialmente, interesse prioritário voltado para computadores, seu trabalho envolvia rodar simulações em máquinas da Digital.
.
Do seu trabalho, na DuPont, Cutler adquiriu conhecimento em desenvolvimento de softwares e voltou seu interesse para criar sistemas operacionais, em vez de aplicações.
Ele chegou à Digital em 1971 e trabalhou no secular prédio da companhia, transformado a partir de um enorme moinho de algodão, do século 19 —, o “wool mill” (veja a figura).
Foi responsável pelo desenvolvimento de sistemas operacionais para a família de computadores da DEC PDP-11. O RSX-11M foi o primeiro SO em que Cutler incorporou conceitos e princípios que norteariam o desenvolvimento posterior do Windows NT.
O sistema operacional RSX-11M foi criado para controle industrial e fabricação.
A DEC ou Digital Equipment Corporation foi adquirida pela Compaq, em Junho de 1998. Esta última, por sua vez, foi adquirida pela HP ou Hewlet-Packard, em Maio de 2002.
Partes da DEC, notadamente o negócio de compiladores e o prédio de Hudson, no estado de Massachusetts, foram adquiridas pela Intel.
Em 1975, a Digital se deu conta de que seus competidores estavam desenvolvendo processadores de 32-bit e
que esta tecnologia poderia levar embora seus clientes, usuários de computadores de 16-bit.
Gordon Bell, lendária figura da história da computação e, então, vice-presidente de engenharia na Digital, liderou o desenvolvimento de seu processador de 32-bit, nomeado VAX.
À esta época, Cutler já era uma estrela em ascensão na DEC e fazia parte do time de desenvolvimento inicial do VAX, junto com Dick Hustvedt e Peter Lipman.
Esta equipe foi encarregada de liderar o projeto de desenvolvimento do novo sistema operacional para o VAX: o VMS.
Embora o nome de Cutler tenha ganhado mais proeminência no decurso da história, estes 3 nomes são igualmente importantes, cada qual em sua área, no desenvolvimento das bases do Windows NT.
Para a Digital, era prioritário que o projeto mantivesse compatibilidade com os processadores PDP-11 e flexibilidade suficiente para rodar em estações de trabalho mais baratas ou low-end desktop workstations, bem como servidores de nível corporativo ou enterprise-level servers.
A Digital também manteve a compatibilidade com o RSX-11M e projetou o VMS para rodar em máquinas de diferentes tamanhos.
Em 1977, a Digital anunciou o minicomputador VAX-11/780 e o VMS 1.0.
Os primeiros lotes do produto foram enviados em 1978.
Cutler, líder do projeto e um dos principais arquitetos do VMS, continuou a trabalhar nas novas versões do sistema operacional e em seus novos recursos.
Apesar disto, se sentia inquieto na Digital. Chegou a ameaçar deixar a corporação em 1981.
Para manter seu principal desenvolvedor, a DEC lhe concedeu aproximadamente 200 engenheiros de hardware e de software. Isto manteve Cutler no trabalho por mais algum tempo e ele levou sua equipe para Seattle, onde iniciou um centro de desenvolvimento.
Este grupo de elite tinha o objetivo de projetar uma nova arquitetura de CPU e um SO que levaria a Digital à vanguarda dos anos 90.
O projeto de hardware do grupo, foi batizado de Prism, pela Digital. O projeto do sistema operacional, de Mica.
Em 1988, executivos da Digital cancelaram o projeto de Cutler e demitiram vários membros de seu grupo.
Cutler decidiu que era hora de sair da digital. Mas, antes disto, os executivos da Microsoft já havia se inteirado do seu trabalho e entenderam que sua contratação poderia ser uma oportunidade interessante.
À época em que Cutler deixou a Digital, o VMS estava na versão 5.0. Em Junho de 2015, já se encontrava na versão 8.4 (e se chama OpenVMS).
Cutler é conhecido por suas críticas ácidas ao sistema operacional UNIX. Mas esta é uma posição pessoal dele e de aficionados NT/VMS.
A Digital tinha o seu próprio UNIX, o ULTRIX (baseado no BSD) e posteriormente desenvolveu o Tru64 UNIX, ou Digital UNIX.
Chamado, inicialmente de DEC OSF/1 AXP, era o sistema operacional nativo dos primeiros PDP.
O Tru64 é baseado no kernel Mach, desenvolvido na Carnegie Mellon University. Outros produtos baseados neste kernel são o NeXTSTEP, MkLinux, Mac OS X e o Apple iOS.
Você conhece algum deles?
Portanto, Cutler foi contratado por Bill Gates em Agosto de 1988.
Uma de suas condições, para ir para Microsoft, foi levar aproximadamente 20 ex-funcionários da Digital para a sua nova equipe, o que incluía vários engenheiros de hardware do projeto Prism.
A MS concordou, prontamente, com esta exigência — um arquiteto de sistemas operacionais da estatura de Cutler, já era um troféu. Trazer seus engenheiros seria ótimo.
À esta época, Gates tinha o sentimento de que o futuro de longo prazo da sua companhia dependia do desenvolvimento de um novo sistema operacional, que pudesse rivalizar com o UNIX.
Internamente, a Microsoft apelidou o projeto do novo SO de OS/2 NT, uma vez que sua intenção era que este novo sistema sucedesse o, já existente, OS/2 — mantendo, contudo, a OS/2 API como sua principal interface.
Mas o sucesso de vendas, obtido pelo Windows 3.0 em 1990, alterou a maneira como a Microsoft pensava a respeito.
6 semanas após o lançamento do Windows 3.0,a Microsoft renomeou o OS/2 NT para Windows NT e determinou que a API do Win32 (uma evolução da API de 16 bit do Windows 3.0) seria a principal.
Gates decidiu que as prioridades deste projeto seriam buscar a compatibilidade com a API de 16 bit do Windows 3.0 e a habilidade de rodar suas aplicações, sem qualquer modificação.
Adicionalmente, o NT deveria ter suporte a porções do DOS, do OS/2 e as APIs POSIX.
De 1990 até a 1993, quando o NT foi anunciado ao público, a equipe de Cutler estavam em um corrida louca para concluir o novo sistema — o que levou o projeto a crescer a ponto de envolver 200 engenheiros e testadores.
Esta é uma breve história do projeto do Windows NT, que cresceu e, mais tarde, acabou tomando o lugar do Windows 3.0, interrompendo a sua linhagem (que chegou até o Windows ME).
O Windows 2000, lançado em 17 de Fevereiro de 2000, é o sucessor do Windows NT 4.0 e é o último sistema operacional da Microsoft a ostentar a designação “Windows NT”. Durante o seu desenvolvimento, era conhecido como “Windows NT 5.0”.
Ele representa o fim da linha do DOS/Windows 3.0.
Tal como outros sistemas operacionais comerciais, o NT tem 2 modos de execução:
- o user mode, onde os aplicativos e as APIs do OS/2, DOS e POSIX são executados.
Estes componentes são “desprivilegiados”, uma vez que o NT controla o hardware sobre o qual eles rodam.
Em outras palavras, sem a permissão do sistema operacional, estes componentes não podem acessar diretamente o hardware.
Os componentes do modo de usuário, precisam chamar o kernel quando precisam acessar o hardware ou alocar recursos lógicos ou físicos. - o privileged mode, onde é executado o kernel do sistema. Ele pode acessar diretamente a memória e o hardware.
Consiste de vários subsistemas executivos, responsáveis por gerenciar recursos, o que inclui o gerenciador de processos, o gerenciador de E/S e o gerenciador de memória virtual (VMM – Virtual Memory Manager), o Security Reference Monitor e um microkernel que manipula os agendamentos e as interrupções.
O sistema carrega os drivers dos dispositivos dinamicamente, que são componentes que interfaceiam o NT em relação aos variados periféricos.
A camada de abstração de hardware ou hardware abstraction layer (HAL), esconde os intrincamentos da camada de hardware, composta pela placa-mãe e pela CPU, do NT.
A API nativa do NT é a que está disponível aos aplicativos no modo de usuário, para que estes “conversem” com o kernel.
Esta API não tem sido muito bem documentada — uma vez que é esperado que as aplicações falem Win32, DOS, OS/2, POSIX ou, até mesmo, Win16. São estes ambientes operacionais que interagem com o kernel, em nome da aplicação que o chamou.
A reação da Digital e a evolução do NT e do VMS
Em 28 de Abril, de 1997, a revista Business Week publicou o artigo “Why the Fastest Chip Didn’t Win” (Por que o chip mais rápido não venceu) — no qual contam que os engenheiros da Digital perceberam as semelhanças entre o VMS e o NT e levaram o caso à administração da empresa.
A Digital optou por um acordo com a Microsoft, em detrimento da via judicial.
No verão de 1995, a Digital anunciou a chegada do recurso Affinity para OpenVMS , um programa que requeria treinamento dos técnicos em NT da Digital.
O acordo com a Microsoft previa que esta daria o treinamento, ajudaria a promover o NT e o OpenVMS como 2 peças-chave de uma solução de rede cliente/servidor e a promessa de manter suporte ao NT nos processadores Alpha da Digital.
Além disto, estima-se que a Microsoft pagou entre 65 e 100 milhões de dólares à Digital, àquela época (atualizados para 2015, estes valores equivaleriam a 77 e 119 milhões de dólares).
Em sistemas Alpha e I64, mecanismos affinity e capabilities permitem que o agendamento da CPU seja adaptado a configurações mais amplas, com o controle de distribuição de processos e threads.
Estes mecanismos dão aos usuários oportunidades de realizar as seguintes tarefas:
- criar e modificar um conjunto de possibilidades de processos definido pelo usuário
- criar e modificar um conjunto de possibilidades relacionadas à CPU, definido pelo usuário
- permitir que um processo aplique o mecanismo affinity a um subconjunto de uma CPU ativa a uma configuração de multiprocessamento simétrico ou symmetric multiprocessing (SMP)
Para finalizar, apesar das campanhas de marketing propalarem a novidade total, seu projeto e sua arquitetura vieram de outro sistema operacional e você pode encontrar inúmeros textos, na Internet que demonstram as grandes similaridades entre o VMS (cujo desenvolvimento continua ativo) e o NT.
Durante os anos 90, ambas as empresas trocaram e adicionaram recursos entre seus sistemas operacionais.
Recursos, como suporte a clustering nativo (1984) e APIs para gestão de memória 64 bit, foram adicionados primeiro ao VMS e chegaram depois ao NT.
Reciprocamente, o VMS trouxe do NT os recursos de kernel-mode threads, logging de eventos e o (tenebroso, na opinião de alguns) registro do sistema.
A história continua.
Ambos os sistemas operacionais continuam em desenvolvimento — embora o Windows (já na versão 10) esteja mais ativo e conte com uma empresa mais sólida e uma estratégia de marketing que todos conhecemos.
O VMS ou OpenVMS mudou de mãos algumas vezes, mas continua de pé e sendo usado em setores que não podem prescindir dele.
Referências:
http://www.sigcis.org/files/Goodwin_paper.pdf
https://books.google.com.br/books?id=TDgEAAAAMBAJ&pg=PA41&lpg=PA41&dq=Affinity+for+OpenVMS&source=bl&ots=aY18A8xwwq&sig=TyfCqJCFFhzLVcbqPgFCuuFbcM8&hl=en&sa=X&ved=0CEoQ6AEwCGoVChMIgMHKkLrOyAIVhY6QCh3PtwZj#v=onepage&q=Affinity%20for%20OpenVMS&f=false
http://h71000.www7.hp.com/doc/82final/5841/5841pro_012.html
http://windowsitpro.com/windows-client/windows-nt-and-vms-rest-story
Artigo Publicado por: Elias Praciano no blog Coisas do Geek