Windows NT 3.1: o primeiro Windows verdadeiramente de 32 bits

Nesta postagem contarei a história do primeiro Windows inteiramente de 32 bits, o Windows NT 3.1! Conhecer as suas concepções, objetivos e como se deu o seu projeto e desenvolvimento é bastante interessante, pois afinal das contas ele é o bisavô dos Windows atuais! O NT 3.1 foi o ponto de partida para todos os sistemas operacionais mais famosos e icônicos da Microsoft, tais como o Windows 2000, XP e o 7. Faça uma boa viagem rumo à história da computação moderna!


O processador Intel 860, que
indiretamente batizou o NT
Lançado em 1993, suas origens remetem ao ano de 1988, onde equipes de programadores da Microsoft e da IBM trabalhavam em estreita colaboração para desenvolver uma nova versão do OS/2, que era prometido pelas duas empresas como o sistema operacional "definitivo" não apenas para a plataforma PC, mas que também rodaria de forma nativa em outras plataformas tais como a Alpha da DEC e a MIPS. Esta era uma das premissas do projeto: ser flexível o suficiente para poder rodar em padrões de hardware diversos do Intel x86 (dos PCs) com o mínimo de mudanças no núcleo do sistema. As outras premissas eram que o sistema deveria suportar redes locais nativamente, ser estável e reconhecer mais de um processador, introduzindo o conceito de multiprocessamento às massas.

Uma curiosidade data do início do seu desenvolvimento: para ajudar a preparar o núcleo do sistema para outros padrões de hardware além do x86, foi utilizado um emulador do processador Intel i860, que é um processador RISC lançado pela Intel em 1989 (enquanto que os processadores para PCs da época eram CISC). O nome-código deste processador é N10, o qual indiretamente acabou batizando o novo sistema de OS/2 NT (o T referenciando a ten, ou dez em inglês - o termo "New Technology" só foi adotado depois pela Microsoft). A primeira versão de testes funcional do OS/2 NT foi apresentada em 1989.

A interface do sistema é idêntica ao do Windows 3.1 e 3.11

Para poder ser verdadeiramente multiplataforma, o sistema foi projetado para utilizar o conceito de segmentação do núcleo do sistema operacional (o kernel) em partes menores e menos complexas. No NT tal conceito foi implementado no seu Microkernel e na Camada de Abstração de Hardware, do inglês HAL (Hardware Abstraction Layer). O Microkernel fica entre o nível dos diversos subsistemas do sistema operacional e a HAL, enquanto que esta faz a interface com o hardware propriamente dito. Desta forma, para portar o sistema para uma nova arquitetura de hardware apenas a HAL deve ser adequada, facilitando bastante o processo. Os subsistemas (que rodam sobre o Microkernel) também são um destaque a parte do NT: tornam possível a execução de aplicações OS/2, MS-DOS, Windows de 16 bits, Windows de 32 bits e POSIX, tudo devido à grande flexibilidade do Microkernel e do HAL.

Esquema da arquitetura do Windows NT 3.1 (imagem: Wikipedia)

Tudo ia às mil maravilhas no casamento entre a Microsoft e a IBM até o lançamento do Windows 3.0 em 1990, o qual acabou se tornando um grande sucesso de público e vendas, marcando também o inicio de um mercado forte de aplicativos "for Windows" que não havia em grande escala até o Windows 2.0. O primeiro reflexo disto no projeto do até então conhecido como OS/2 NT foi a inclusão do subsistema de aplicativos Windows de 32 bits, que concentrava a camada de compatibilidade com os softwares de 16 bits tanto para Windows quanto para MS-DOS além de prover suporte para futuros aplicativos Windows de 32 bits que na época ainda não existiam.

Porém a Microsoft começou a perceber que a marca Windows estava se tornando valiosa demais para ser abandonada e começou a desenvolver paralelamente (a partir do projeto do OS/2) o Windows NT, logicamente que sem o conhecimento da IBM.


Gerenciamento de usuários

Em 1991 a IBM descobriu a manobra da Microsoft e rompeu unilateralmente a parceria, continuando a desenvolver sozinha o OS/2, enquanto que a Microsoft prosseguiu com o projeto do Windows NT. Até existe uma piadinha infame que circulava na época, a qual dizia que no divórcio das duas a IBM ficou com a parte que funcionava do sistema e a Microsoft ficou com o resto... :-)

Sob a batuta única da Microsoft, o NT recebeu a denominação oficial de New Technology e a numeração de versão 3.1 de modo a manter a uniformidade com o Windows 3.1 lançado em 1992. A empresa focou os seus esforços para melhorar os subsistemas de compatibilidade com aplicativos MS-DOS e Windows de 16 e de 32 bits, logicamente privilegiando os softwares das suas próprias plataformas, bem como também adotou os conceitos da interface gráfica com o usuário introduzidos com o Windows 3.0.



Apesar do seu conturbado ciclo de desenvolvimento, o NT 3.1 mostrou uma robustez e confiabilidade que eram inéditos até então no mundo Windows. O fato do seu código ser inteiramente de 32 bits e os seus subsistemas de compatibilidade com aplicativos rodarem totalmente protegidos em memória configura uma multitarefa preemptiva (ou multitarefa real) em contraste com a multitarefa cooperativa adotada pelas versões de 16 bits do Windows, tais como o 3.1 e 3.11.

A multitarefa preemptiva permitiu que fosse implementado no NT o conceito WoW, ou Windows on Windows, conceito este que está presente até nos dias atuais. O funcionamento do WoW no NT 3.1 é basicamente o seguinte: sempre que um software para Windows de 16 bits é executado, o NT carrega em memória junto com o aplicativo uma versão compacta do kernel de 16 bits do Windows 3.1. Desta forma o aplicativo acaba tendo um "Windows só para ele", o que elimina completamente a chance de problemas e travamentos como os famosos GPFs (Falha Geral de Proteção, do inglês General Protection Fault). Uma GPF acontece quando um programa "mal-comportado" invade a área de memória ocupada por outro software, algo que era comum no Windows 3.X pelo fato do mesmo não proteger os aplicativos em memória e trabalhar em multitarefa cooperativa - neste modo de multitarefa a alternância entre os softwares em execução é feita por eles próprios e não pelo processador da máquina.

O Paciência não pode faltar no Windows... :-)

E devido à multitarefa preemptiva esta sessão WoW fica completamente isolada e protegida em memória, o que significa que caso ela apresente problemas o Microkernel do NT pode fechá-la sem qualquer prejuízo para os demais serviços do sistema operacional, garantindo desta forma a sua estabilidade.

Conceito semelhante é aplicado para os softwares de modo real do MS-DOS: sempre que uma janela do DOS é iniciada, o NT cria uma sessão Virtual 8086 independente com o núcleo do DOS, igualmente protegida em memória. Desta forma o programa tem um "DOS apenas para ele"! Um parênteses: o modo Virtual 8086 é um recurso incluído pela Intel a partir dos processadores 80386 para permitir que softwares que rodam no modo real funcionem no modo protegido. Na Parte 3 da série de artigos sobre o meu 80286 explico o conceito dos modos real e protegido.

Sessão MS-DOS no Windows NT 3.1

Outra característica importante do NT é o acesso ao hardware pelos aplicativos: estes devem obrigatoriamente utilizar as chamadas presentes na Camada de Abstração de Hardware (HAL) - qualquer tentativa de acesso direto ao hardware é sumariamente barrada. Isto sem dúvida privilegia a estabilidade e a segurança do sistema contra softwares maliciosos, porém às custas de problemas de compatibilidade com softwares que acessam diretamente o hardware, tais como muitos aplicativos para o MS-DOS. Tanto que na época muitos utilizadores do Windows NT 3.1 o mantinham em dual-boot com o MS-DOS e o Windows 3.X para rodar tais softwares.


Por fim, deixo os requisitos de sistema (para a plataforma Intel x86) divulgados pela Microsoft no lançamento do NT 3.1 em 1993:

  • Processador 80386 de 25 Mhz; 
  • 12 MB de RAM; 
  • 75 MB de espaço livre no disco rígido; 
  • Placa de vídeo VGA.

Espero que tenham gostado! Em uma futura postagem mostrarei em detalhes o processo de instalação do Windows NT 3.1, caso você queira instalá-lo em um equipamento antigo ou em uma máquina virtual.

Um grande abraço e até a próxima!

Próximo:

Comentários

  1. O verdadeiro Windows da Microsoft, bem inscrito e com vários conceitos usados até então em sistema UNIX, esse foi o maior leigado da empresa e que fez ela poder concorrer contra o Linux em servidores corporativos, e também o que trouxe a estabilidade aos Windows dos cliente caseiros, grande sistema e ótimo artigo. Creio que devemos ser bem objetivos na análise e sem demagogia dar o devido valor a esse excelente Sistema Operacional, que está entre os melhores da M$. Eu usei ele um tempo em um Pentium Pro 200, e sei bem como ele era estável e de ótima facilidade de uso.

    ResponderExcluir
    Respostas
    1. Ótimo comentário! Realmente o NT 3.1 foi um divisor de águas para a Microsoft. Nunca usei muito o NT 3.1 ou o 3.5, mas o NT 4.0 usei durante vários anos, muito bom, nunca deu dor de cabeça e era muito estável! Me lembro que tinha em dual-boot o NT 4 e o Windows 95, o NT para coisas sérias e o 95 para jogos. Bons tempos.

      Excluir
    2. Fala sério.
      Windows NT foi escrito para concorrer com o Linux? foi a melhor piada que li hoje.
      O Windows NT foi escrito para concorrer com o Netware da Novell.
      Em 1993 o Linux era desconhecido e irrelevante no mercado.
      A MS já flertava com o mercado de servidores quando estava escrevendo o OS/2 em parceria com a IBM, lá em 1988.

      Excluir
  2. meu irmão eu estive procurando no Google alguém que me desse uma resposta coerente sobre a multitarefa preemptiva, não tinha encontrado nada até agora, vc explicou muito bem, se não fosse vc eu iria passar vergonha na apresentação que eu vou ter já,já na UFAL, agradeço mesmo.

    ResponderExcluir
    Respostas
    1. Fico feliz por ter ajudado! Espero que a apresentação tenha sido um sucesso!

      Excluir

Postar um comentário