segunda-feira, 6 de outubro de 2025

Nostalgia - Instalando o Windows NT 3.51 no Proxmox!

Pessoal,

Hoje vamos relembrar o Windows NT 3.x Este post é uma atualização sobre a instalação de 2023 no Virtual Box (veja aqui).











No início da década de 1990, o mercado de computação pessoal e corporativa passava por uma transformação significativa. A popularização do IBM PC e seus compatíveis consolidou o MS-DOS como o sistema operacional dominante para usuários domésticos e pequenas empresas. Contudo, as demandas do setor corporativo cresciam, exigindo sistemas operacionais robustos, capazes de suportar multitarefa preemptiva, segurança avançada, redes integradas e suporte a múltiplos processadores. Nesse contexto, a Microsoft, sob a liderança de Bill Gates, identificou a necessidade de um sistema operacional de nova geração que pudesse competir não apenas com o legado do MS-DOS, mas também com plataformas estabelecidas como Unix, Novell NetWare e OS/2.

O Windows NT 3.x marcou a entrada da Microsoft no mercado de sistemas operacionais de alto desempenho, voltados principalmente para estações de trabalho e servidores empresariais. Lançado inicialmente como Windows NT 3.1 em 27 de julho de 1993, o NT (sigla para "New Technology") foi projetado como um sistema operacional nativo de 32 bits, independente do MS-DOS, distinguindo-se radicalmente das versões anteriores do Windows, como o Windows 3.1, que dependiam do DOS para operações básicas. Essa independência permitiu ao NT ser portátil para diversas arquiteturas de hardware, incluindo IA-32 (x86), DEC Alpha, MIPS e, posteriormente, PowerPC, ampliando seu alcance além dos processadores Intel predominantes.

As primeiras versões do Windows, 1.x e 2.x, deram origem às versões 3.x e 3.x for Workgroups. Destas versões descende a família "Windows 9.x": Windows 95, Windows 98 e Windows ME. Todas essas versões rodavam um kernel híbrido de 16/32 bits sobre um versão do DOS (independente do Windows até o 3.11 e integrada ao Windows a partir do Windows 95 até o Windows ME).

Já o Windows NT 3.1, apesar de uma interface idêntica ao do Windows 3.1, era completamente diferente. Usava um kernel novo de 32 bits (baseado no seu "primo" OS/2) e era adequado para empresas e para redes. Evoluiu para o Windows NT 4.0 (com interface semelhante ao Windows 95) e Windows 2000.

A famínia "Windows NT" lançou as bases para a evolução do Windows, iniciada a partir do Windows XP (em 2001) e continuando como as versões mais modernas,  como Windows 10 e 11.

Na época, o mercado era fragmentado: o Unix dominava estações de trabalho de alta performance, o Novell NetWare liderava redes locais, e o OS/2, fruto de uma parceria anterior entre Microsoft e IBM, lutava por relevância. O Windows NT surgiu como uma alternativa acessível e familiar, prometendo compatibilidade com o ecossistema Windows enquanto oferecia recursos empresariais avançados. Apesar de vendas modestas — cerca de 300 mil cópias no primeiro ano para o NT 3.1 —, o impacto foi profundo, estabelecendo a Microsoft como um competidor sério no mercado corporativo e, no final dos anos 1990, a Microsoft havia dominado o mercado corporativo.

Fontes principais: IDC reports (1998-2001), Novell press (1993-1996), CNET/HPCwire.

Fun fact: quando estavam iniciando a desenvolvimento o OS/2, uma das premissas era o sistema deveria rodar nativamente no processadores da Intel, o Alpha da DEC (aqui, um processador de 64 bits que acabava de ser lançado) e processadores da arquitetura MIPS. Esses dois últimos era processadores RISC (que evoluiram para processadores ARM, como os atuais Apple Silicon) enquanto os processadores da Intel eral CISC (que hoje são representados por processadores 'core' da Intel e 'Ryzen' da AMD e toda a plataforma x86/x64). Para preparar o sistema para aceitar múltiplos processadores diferentes, utilizaram o Intel i860, lançado em 1989, cujo codinome era N10 (em inglês, N Ten). Reza a lenda que o OS/2 acabou sendo batizado de "NT OS/2" devido ao NT e que esse NT foi levado para o Windows NT e somente anos depois a MS adodou o nome "New Technology".

Neste post vamos explorar a história de cada versão do Windows NT 3.x, os avanços tecnológicos que viabilizaram seu desenvolvimento, as inovações introduzidas, as diferenças em relação a outras versões do Windows da época, e uma análise dos principais concorrentes, incluindo suas histórias, vantagens e desvantagens em comparação com o Windows NT 3.x.

Contexto do Mercado na Década de 1990

No início dos anos 1990, o mercado de sistemas operacionais era altamente competitivo e diversificado. O MS-DOS, combinado com o Windows 3.x, dominava o segmento de computadores pessoais, mas suas limitações — como a ausência de multitarefa preemptiva e a dependência de um kernel de 16 bits — o tornavam inadequado para ambientes corporativos. O Windows 3.1, lançado em 1992, trouxe melhorias na interface gráfica, suporte a fontes TrueType e uma estabilidade ligeiramente aprimorada, mas ainda operava como uma camada sobre o MS-DOS, incapaz de atender às demandas de estabilidade, segurança e escalabilidade exigidas por grandes organizações. Por exemplo, em ambientes onde múltiplos usuários precisavam acessar recursos compartilhados de forma segura, o Windows 3.1 falhava devido à falta de mecanismos robustos de controle de acesso e recuperação de falhas.

Marketshare dos principais computadores pessoais entre 1975 a 1996. Fonte: https://pegasus3d.com/total_share.html

No mercado corporativo, sistemas Unix, como os da Sun Microsystems (Solaris), HP-UX e AIX da IBM, dominavam as workstations e os servidores devido à sua robustez, suporte a arquiteturas RISC (como SPARC e POWER) e capacidades de rede avançadas. Esses sistemas eram ideais para tarefas intensivas, como modelagem científica ou gerenciamento de bancos de dados, mas sofriam com a fragmentação: cada variante requeria adaptações específicas para aplicativos, complicando a portabilidade. O Novell NetWare, por sua vez, era o padrão ouro para redes locais (LANs), oferecendo compartilhamento eficiente de arquivos e impressoras, com ferramentas de gerenciamento centralizado que facilitavam a administração em empresas de médio porte. Já o OS/2, inicialmente co-desenvolvido pela Microsoft e IBM, posicionava-se como uma alternativa mais avançada ao MS-DOS, com multitarefa preemptiva e suporte a aplicativos 32 bits, mas lutava contra a falta de ecossistema de software e o rompimento da parceria entre as duas empresas em 1991.

O Windows NT 3.x entrou nesse cenário como uma aposta ousada da Microsoft para unificar a familiaridade do Windows com os recursos avançados exigidos pelo mercado corporativo. A decisão de iniciar a numeração na versão 3.1, alinhada ao Windows 3.1, foi estratégica, visando capitalizar o reconhecimento da marca Windows e sugerir continuidade aos usuários. Sob o capô, o NT era um sistema completamente novo, projetado para competir diretamente com o Unix em estações de trabalho de alta performance e com o NetWare em servidores de rede, oferecendo uma solução mais acessível, com uma interface gráfica intuitiva e suporte a hardware diversificado. No entanto, enfrentou desafios iniciais, como altos requisitos de hardware — que exigiam processadores rápidos e memória abundante em uma era onde 4-8 MB de RAM eram comuns — e a escassez de aplicativos nativos de 32 bits, forçando usuários a depender de software legado que rodava de forma subótima.

História do Desenvolvimento do Windows NT

O desenvolvimento do Windows NT teve início em outubro de 1988, quando a Microsoft enfrentava ameaças ao seu domínio no mercado de sistemas operacionais. Nathan Myhrvold, um pesquisador e executivo da empresa, teria alertado Bill Gates sobre o potencial dos processadores RISC, que ofereciam desempenho superior ao Intel x86, e do Unix, que suportava multitarefa e redes avançadas. A Microsoft, até então focada no MS-DOS e no Windows como interface gráfica, precisava de um sistema operacional capaz de competir no segmento corporativo. O projeto começou como uma revisão do OS/2, um sistema operacional co-desenvolvido com a IBM para suceder o MS-DOS, com o objetivo de criar uma plataforma portátil, segura e com suporte a multiprocessamento.

Em 1988, Gates contratou Dave Cutler, ex-engenheiro da Digital Equipment Corporation (DEC), conhecido pelo desenvolvimento do VMS (um sistema operacional robusto para mainframes VAX) e pelo projeto cancelado PRISM, que envolvia um processador RISC e o sistema operacional MICA.

VAXstation rodando VMS

Cutler trouxe uma equipe de engenheiros da DEC e começou a trabalhar em um sistema codinome "NT OS/2", inicialmente baseado no processador Intel i860 - vide fun fact acima :). A influência do VMS foi profunda: conceitos como o kernel híbrido, o gerenciamento de memória virtual e a ênfase em estabilidade e segurança foram diretamente inspirados no VMS, que Cutler havia ajudado a criar na década de 1970. Por exemplo, o VMS utilizava um modelo de privilégios de ring (anéis de proteção) para separar código de kernel de usuário, uma ideia adaptada no NT para modos kernel e user. Além disso, elementos do RSX-11 (outro sistema da DEC) e do Mach (um microkernel desenvolvido na Carnegie Mellon University, em Pittsburgh) influenciaram o design modular do NT.

Arquitetura do Windows NT 3.1 (Fonte: Wikipedia)

O projeto evoluiu rapidamente, mas enfrentou desafios. Inicialmente, o NT OS/2 foi testado em um emulador do i860, mas o chip provou-se inadequado, levando a uma portabilidade para o MIPS R3000 em dezembro de 1989, completada em três meses. A meta era um sistema que suportasse múltiplas arquiteturas, redes avançadas, o padrão POSIX para compatibilidade Unix, e segurança compliant com o "Orange Book" do Departamento de Defesa dos EUA, exigindo multiusuário com permissões e auditoria. Em 1990, o sucesso do Windows 3.0, que vendeu milhões de cópias, levou a Microsoft a reorientar o projeto: o NT foi reformulado para adotar a API Win32, uma versão 32 bits da API do Windows, garantindo compatibilidade com aplicativos Windows existentes enquanto abandonava a dependência do OS/2. Essa mudança ocorreu em agosto de 1990, alterando a shell de Presentation Manager (do OS/2) para o Program Manager do Windows.

Quando era carregado um aplicativo de 16 bits ou de DOS, o Windows NT carregava uma versão limitada de Windows ou de DOS (Windows on Windows, ou WoW, e Virtual DOS Machine, ou VDM, respectivamente). Caso houvesse algum travamento, apenas esse processo era encerrado, impedindo que esse erro travasse o sistema inteiro e impedindo que algum processo entrasse na memória reservada para outro processo. Esse modo de funcionamento é utilizado até hoje.

A parceria com a IBM terminou em janeiro de 1991, após divergências estratégicas — a IBM queria foco exclusivo no OS/2, enquanto a Microsoft priorizava o Windows. A Microsoft prosseguiu sozinha, demonstrando o NT no Comdex de 1991 e distribuindo kits de desenvolvimento para incentivar aplicativos 32 bits, visando um lançamento em 1992. No entanto, desafios técnicos atrasaram o projeto: o kernel híbrido, que combinava a flexibilidade de um microkernel com a performance de um monolítico, exigiu otimizações extensas. Além disso, uma disputa com a DEC sobre similaridades com o VMS resultou em um acordo em 1992, onde a Microsoft pagou algo entre 65 a 100 milhões de dólares  concordou em suportar o DEC Alpha e treinar equipes para VMS. Cutler, que gerenciou o projeto NT até 1996 e o kernel até 2006, enfatizou qualidade e estabilidade, influenciando o design para evitar os crashes comuns em sistemas 16 bits.

Os desafios foram significativos: o NT precisava suportar múltiplas arquiteturas (x86, Alpha, MIPS), oferecer um kernel híbrido com multitarefa preemptiva (interrompendo tarefas para agendar outras, sem depender de cooperação de programas), e incluir recursos como segurança avançada com listas de controle de acesso (ACLs), suporte a redes TCP/IP e compatibilidade parcial com DOS e Windows 16 bits via máquinas virtuais (WoW e VDM). Apesar das dificuldades, o Windows NT 3.1 foi lançado em 1993, marcando o início de uma nova era para a Microsoft, com influências duradouras do VMS em sua robustez e do OS/2 em sua rede.

Windows NT 3.1: A Revolução do Kernel 32 Bits

O Windows NT 3.1, lançado em 27 de julho de 1993, foi a primeira versão da família NT, disponível em duas edições: Workstation e Advanced Server.

 

Projetado para estações de trabalho e servidores corporativos, ele introduziu uma arquitetura 32 bits completa, eliminando as limitações de memória de 16 bits do Windows 3.1.

Para entender isso, vamos aprofundar um pouco nos detalhes técnicos.

No Windows 3.1, o arquitetura era principalmente de 16 bits, o que significava que o endereçamento de memória era segmentado: a memória era dividida em segmentos de até 64 KB cada, com um limite total de 1 MB no modo real (herdado do MS-DOS) ou até 16 MB no modo protegido, mas com overhead significativo para gerenciar segmentos. Isso levava a problemas como a "barreira dos 640 KB" (memória convencional limitada), fragmentação de memória e ineficiência em tarefas que exigiam grandes blocos contínuos de dados. Além disso, o Windows 3.1 não era um sistema operacional 32 bits completo; embora utilizasse o modo protegido do processador 386 para alguns acessos de 32 bits (como em páginas de memória), seu kernel e APIs principais eram de 16 bits, dependentes do MS-DOS para operações de disco e hardware, o que limitava a estabilidade e o desempenho.

Em contraste, o Windows NT 3.1 adotou um modelo de memória flat de 32 bits, permitindo endereçamento virtual de até 4 GB de memória linear sem segmentação, o que simplificava o desenvolvimento de software e melhorava o desempenho ao eliminar a necessidade de gerenciar segmentos manualmente. Isso era melhor porque processadores 32 bits podiam manipular dados maiores de uma vez (palavras de 32 bits vs 16 bits), acelerando operações matemáticas, gráficos e multitarefa. Sob o capô, o NT usava paginação de memória virtual, onde o hardware (MMU - Memory Management Unit) mapeava páginas de 4 KB entre memória física e disco, permitindo que programas acessassem mais memória do que disponível fisicamente, com swapping eficiente. O que não era 32 bits no Windows 3.1 — como o kernel, o gerenciamento de memória segmentado e as APIs limitadas — tornou-se totalmente 32 bits no NT, com um kernel nativo que não dependia do DOS, oferecendo verdadeira independência e robustez.

O NT 3.1 suportava processadores IA-32 (x86), DEC Alpha e MIPS, com a edição Workstation exigindo um processador 80386 de 25 MHz, 12 MB de RAM e 75 MB de espaço em disco, enquanto o Advanced Server requeria 16 MB de RAM e 90 MB de espaço. O kernel híbrido, influenciado pelo Mach e pelo VMS, permitia multitarefa preemptiva, onde o sistema interrompia tarefas em execução para priorizar outras, contrastando com a multitarefa cooperativa do Windows 3.1, que dependia de programas "cedendo" o CPU voluntariamente, levando a travamentos se um programa travasse. A interface gráfica era semelhante ao Windows 3.1, com o Program Manager e o File Manager, garantindo familiaridade aos usuários.

Outras inovações incluíam suporte ao padrão Unicode para internacionalização, o Registro do Windows para configuração centralizada (um banco de dados hierárquico que substituía arquivos INI fragmentados, permitindo edição remota via RegEdit), e recursos de rede como NetBEUI, TCP/IP e AppleTalk (no Advanced Server).

Vamos entender esses protocolos mais detalhadamente, pois eles são fundamentais para entender o foco em redes do NT.

O NetBEUI (NetBIOS Extended User Interface) é um protocolo de rede não roteável, desenvolvido originalmente pela IBM em 1985 para o seu LAN Manager, e adotado pela Microsoft até o Windows XP. Ele opera nas camadas de rede e transporte do modelo OSI, fornecendo comunicação simples e rápida em LANs pequenas (até 200 nós), sem necessidade de configuração complexa. O NetBEUI usa frames NetBIOS (NBF) para enviar dados, com mecanismos de detecção de erros e retransmissão, mas sem suporte a roteamento — ou seja, não pode atravessar roteadores para WANs, limitando-se a segmentos locais. Sua vantagem era a baixa overhead, tornando-o eficiente para compartilhamento de arquivos e impressoras em redes departamentais, mas sua limitação em escalabilidade o tornava inadequado para redes grandes. No NT 3.1, o NetBEUI era o protocolo padrão para comunicação interna, permitindo conexões rápidas entre máquinas Windows.

O TCP/IP (Transmission Control Protocol/Internet Protocol) é o conjunto de protocolos de comunicação entre computadores em rede fundamental da internet, originada na década de 1970 com o ARPANET do Departamento de Defesa dos EUA, e padronizada em 1981 com o TCP/IP v4. Ele inclui o IP para roteamento de pacotes (endereçamento e entrega sem garantia) e o TCP para transmissão confiável (com confirmações, retransmissões e controle de fluxo). O TCP estabelece conexões orientadas a stream, dividindo dados em segmentos com números de sequência para reordenação, enquanto o IP lida com datagramas independentes. No NT 3.1, o TCP/IP era incluído para conectividade com a internet e redes heterogêneas, permitindo que o NT se integrasse a ambientes Unix ou mainframes, algo essencial para o mercado corporativo. Seu objetivo era fornecer escalabilidade global, contrastando com o NetBEUI, que era local.

O AppleTalk é uma suíte de protocolos proprietária desenvolvida pela Apple em 1985 para redes Macintosh, influenciada pelo Xerox XNS. Ela inclui protocolos como DDP (Datagram Delivery Protocol) para envio de datagramas, NBP (Name Binding Protocol) para resolução de nomes dinâmicos, e AFP (Apple Filing Protocol) para compartilhamento de arquivos. O AppleTalk usa endereçamento automático (sem configuração manual), zones para segmentação lógica de redes, e suporta mídias como LocalTalk (serial a 230 kbps), EtherTalk (Ethernet) e TokenTalk (Token Ring). No Advanced Server do NT 3.1, o AppleTalk era integrado para compatibilidade com Macs, permitindo que servidores Windows NT compartilhassem arquivos e impressoras com computadores Apple via Services for Macintosh, facilitando ambientes mistos.

O NT 3.1 trouxe o NTFS (NT File System), um sistema de arquivos journaling projetado para robustez e segurança. O NTFS mantém um journal ($LogFile) que registra mudanças de metadados antes de aplicá-las, permitindo recuperação rápida após crashes — por exemplo, se uma operação de escrita for interrompida, o journal reverte ou completa a transação, evitando corrupção. Sob o capô, o NTFS usa uma Master File Table (MFT) com entradas para cada arquivo/diretório, armazenando atributos como nome, timestamps, permissões e dados (residentes para pequenos arquivos, non-residentes com data runs para clusters). Ele suporta B-trees para indexação rápida de diretórios, ACLs para permissões granulares (leitura/escrita por usuário/grupo), compressão LZNT1 (em blocos de 64 KB), quotas de disco, sparse files (para arquivos com dados esparsos, economizando espaço) e alternate data streams (ADS) para metadados adicionais. Comparado ao FAT16 (usado no Windows 3.1), o NTFS é superior: o FAT16 é simples, com uma tabela de alocação (FAT) que encadeia clusters, mas sem journaling (riscos de perda de dados em falhas), sem ACLs (segurança básica via atributos), limites pequenos (2 GB por partição, 64 KB por cluster max, arquivos até 4 GB), e sem compressão ou quotas. O FAT16 era eficiente para disquetes e sistemas pequenos, mas inadequado para servidores; o NTFS, com volumes até 256 TB (em implementações antigas) e arquivos grandes, oferecia confiabilidade corporativa.

A edição Advanced Server suportava até quatro processadores, RAID (0, 1 e 5) para redundância de dados, e gerenciamento centralizado de usuários e grupos, tornando-o ideal para redes corporativas.

O Windows NT 3.1 vendeu cerca de 300 mil cópias em seu primeiro ano, um número modesto comparado ao Windows 3.1. Seus altos requisitos de hardware — especialmente a necessidade de 12-16 MB de RAM, quando a média era de 4-8 MB — tornavam o sistema lento em configurações típicas da época. A escassez de aplicativos 32 bits também limitava seu apelo, forçando usuários a depender de aplicativos 16 bits, que rodavam mais lentamente no NT do que no Windows 3.1 devido à emulação. Em sistemas RISC, a emulação de aplicativos 16 bits era ainda mais lenta, e aplicativos DOS que usavam chamadas 386 eram incompatíveis.

Outro ponto de estabilidade do sistema (às custas de compatibilidade com o MS-DOS) era que o acesso a hardware deveria passar, obrigatoriamente, pela camada de abstração de hardware (HAL), ou o acesso seria sumariamente negado. Para resolver isso, às vezes era necessário um dual-boot entre MS-DOS / Windows 3.1 e Windows NT 3.1.

Apesar dessas limitações, o NT 3.1 foi elogiado por sua estabilidade e capacidades de multitarefa, especialmente em comparação com o Windows 3.1. A instalação, embora demorada via disquetes (22 para Workstation, 23 para Advanced Server), era considerada simples. O Advanced Server destacou-se como uma alternativa ao Novell NetWare, oferecendo vantagens financeiras por não cobrar por cliente, mas enfrentou dificuldades de interoperabilidade com outros sistemas, como Unix e OS/2.

Windows NT 3.5: Avanços em Rede e Performance

Lançado em 21 de setembro de 1994, o Windows NT 3.5 trouxe melhorias significativas em desempenho, usabilidade e suporte a hardware. Disponível nas edições Workstation e Server, ele reduziu os requisitos mínimos de memória para 12 MB na Workstation e 16 MB no Server, mantendo os mesmos 90 MB de espaço em disco. O suporte a arquiteturas foi expandido para incluir o PowerPC, além de x86, Alpha e MIPS, refletindo a portabilidade do HAL (Hardware Abstraction Layer), que abstraía diferenças de hardware, permitindo que o kernel rodasse sem modificações em plataformas diferentes.


O NT 3.5 melhorou o suporte a redes com a inclusão do protocolo NetBIOS Frames (NBF) e uma pilha TCP/IP mais robusta, otimizada para LANs e WANs. A interface permaneceu semelhante ao Windows 3.1, mas otimizações no kernel reduziram o uso de memória e aumentaram a velocidade, especialmente em sistemas x86, com melhor gerenciamento de threads e scheduling preemptivo. O Server suportava até 32 conexões simultâneas via Remote Access Service (RAS), contra apenas uma na Workstation, permitindo acesso remoto via modem ou ISDN com autenticação segura.

Novos aplicativos foram incluídos, como o Performance Monitor (para monitorar CPU, memória e disco em tempo real) e o Disk Administrator (para gerenciar partições e RAID), voltados para administração de sistemas. O suporte a drivers foi ampliado, incluindo dispositivos SCSI e ISA, embora o suporte a PCI permanecesse limitado a drivers de terceiros. O NT 3.5 aprimorou o suporte a nomes longos de arquivos no NTFS, permitindo até 255 caracteres Unicode, uma melhoria significativa sobre o limite de 8.3 do FAT16.

Esta versão ainda uma implementação robusta da pilha TCP/IP e da API Winsock, permitindo que o sistema se conectasse diretamente à internet e a redes heterogêneas. Diferente do NT 3.1, que usava uma pilha licenciada de terceiros, o NT 3.5 tinha uma pilha nativa, com suporte a sockets BSD para comunicação eficiente. Isso foi fundamental para competir com o Unix, que dominava a internet com o NFS e o TCP/IP, e tornou o NT uma escolha viável para servidores web e FTP


O Windows NT 3.5 foi bem recebido por abordar muitas das críticas ao NT 3.1, como o alto consumo de recursos. A redução nos requisitos de memória e as melhorias de desempenho tornaram o sistema mais acessível, embora ainda exigisse hardware acima da média. A adição do suporte a PowerPC visava atrair usuários de estações de trabalho de alto desempenho, mas a falta de aplicativos nativos para RISC continuou sendo uma barreira. O NT 3.5 enfrentou problemas de compatibilidade com CPUs Intel Pentium devido a bugs em otimizações, como no uso da FPU (Floating Point Unit), o que impedia a instalação em alguns sistemas. Essas falhas foram corrigidas no NT 3.51, lançado em 1995.

O NT 3.5 consolidou a posição do Windows NT como uma alternativa viável ao Unix e NetWare, especialmente em redes corporativas. Sua estabilidade e recursos de segurança foram elogiados, mas a interoperabilidade limitada com outros sistemas ainda era um ponto fraco. O sistema vendeu melhor que seu antecessor, preparando o terreno para a próxima versão.

Windows NT 3.51: Estabilidade e Suporte a OpenGL

Lançado em 29 de maio de 1995, o Windows NT 3.51 foi uma atualização incremental, mas significativa, focada em estabilidade e compatibilidade. Disponível nas edições Workstation e Server, ele manteve os requisitos de hardware do NT 3.5 (12 MB de RAM para Workstation, 16 MB para Server, 90 MB de espaço) e o suporte às mesmas arquiteturas (x86, Alpha, MIPS, PowerPC).

 

Singelos 22 disquetes!!!

















O NT 3.51 introduziu suporte ao PCMCIA para laptops, melhorando a mobilidade, e ao protocolo Point-to-Point Tunneling Protocol (PPTP) para VPNs seguras, aprimorando conexões remotas. Ele também trouxe o suporte ao cliente de rede Novell NetWare, permitindo maior interoperabilidade com redes existentes, como mapeamento de drives NetWare diretamente no NT. A compatibilidade com o Windows 95 foi outro destaque, com a inclusão de APIs que facilitavam a execução de aplicativos projetados para a nova versão do Windows, incluindo suporte a OLE 2.0 para integração de objetos. Também passou a ter suporte 3D via OpenGL (uma API cirada pela Silicon Graphics que permitia a criação de figuras 3D complexas; no NT 3.51, o OpenGL rodava por renderização por software, utilizando os drivers das plcas de vídeo ou no modo OpenGL Accelerated, que usava placas 3D dedicadas).

A edição Server ganhou recursos avançados, como suporte a clusters iniciais e melhorias no gerenciamento de domínios, consolidando seu uso em ambientes corporativos. O NT 3.51 também foi a última versão a suportar arquiteturas RISC em larga escala, já que o suporte a Alpha, MIPS e PowerPC foi descontinuado no Windows NT 4.0, focando em x86 para simplificar o desenvolvimento.

O Windows NT 3.51 foi amplamente elogiado por sua estabilidade e desempenho aprimorado, sendo considerado a versão mais polida da série NT 3.x. A compatibilidade com o Windows 95 ajudou a atrair desenvolvedores, aumentando o número de aplicativos 32 bits disponíveis. No entanto, os altos requisitos de hardware e a falta de suporte nativo a dispositivos PCI ainda limitavam sua adoção em larga escala.

O NT 3.51 serviu como uma ponte para o Windows NT 4.0, lançado em 1996, que adotou a interface do Windows 95 e marcou o fim da série NT 3.x. Sua importância reside em consolidar os avanços das versões anteriores e preparar a Microsoft para competir diretamente com o Unix e o NetWare no mercado corporativo.

Avanços Tecnológicos que Permitiram o Desenvolvimento

O desenvolvimento do Windows NT 3.x foi possibilitado por avanços em várias áreas.

A transição para uma arquitetura de 32 bits nativa eliminou as limitações do MS-DOS e do Windows 3.x, permitindo endereçamento de memória virtual plana e suporte a arquivos maiores via NTFS. O kernel híbrido, inspirado no Mach e no VMS, combinava a flexibilidade de um microkernel (com servidores de sistema em user mode para portabilidade) com a performance de um kernel monolítico (ligando componentes críticos para acesso rápido). Isso permitia multitarefa preemptiva e suporte a múltiplos processadores, com o scheduler distribuindo threads de forma simétrica.

O uso de uma camada de abstração de hardware (HAL) permitiu que o NT rodasse em arquiteturas como x86, Alpha, MIPS e PowerPC, abstraindo diferenças como interrupções e gerenciamento de energia. A segurança foi aprimorada com ACLs por objeto, influenciadas pelo VMS, permitindo permissões granulares auditáveis. A rede herdou do OS/2 LAN Manager, com pilhas TCP/IP reescritas para eficiência.

Esses avanços, liderados por Cutler, permitiram que o Windows NT 3.x se posicionasse como uma alternativa viável a sistemas estabelecidos, apesar dos desafios iniciais de desempenho e compatibilidade.

Novidades Introduzidas pelo Windows NT 3.x

O Windows NT 3.x trouxe várias inovações que o diferenciavam de outros sistemas da época:
  • Sistema de Arquivos NTFS: Como explicado, oferecia journaling, ACLs, compressão e quotas, superando o FAT16 em confiabilidade e segurança.
  • Multitarefa Preemptiva: O kernel interrompia tarefas para agendar outras, melhorando a estabilidade.
  • Suporte a Unicode: Facilitava a internacionalização, com processamento interno em Unicode.
  • Registro do Windows: Banco de dados hierárquico para configurações, substituindo arquivos texto.
  • Rede Avançada: Protocolos como NetBEUI (rápido para LANs), TCP/IP (para internet) e AppleTalk (para Macs).
  • Portabilidade: Suporte a múltiplas arquiteturas via HAL.
O Windows NT 3.51 for Workstation foi declarado obsoleto e sem suporte em 31/12/2001. A versão Server teve o suporte encerrado em 30/09/2002.

Diferenças e Vantagens/Desvantagens em Relação a Outras Versões do Windows
  • Comparação com Windows 3.x
O Windows 3.x era uma interface gráfica sobre o MS-DOS, com multitarefa cooperativa e suporte apenas a x86. Tinha baixos requisitos e ampla base de programas 16 bits. Entretanto sofria com instabilidade e falta de segurança.

O NT 3.x, por sua vez, tinha uma moderna arquitetura 32 bits nativa, multitarefa preemptiva, NTFS robusto e suporte redes corporativas. Porém tinha requisitos muito altos para a época, sofria com a escassez de programas de 32 bits e tinha suporte limitado a alguns dispositivos.
  • Comparação com Windows 95
O Windows 95 combinava Windows 3.x e NT, mas com ainda com dependência do DOS. Tinha uma interface moderna e compatibilidade com jogos.

O NT 3.x era muito estável, seguro e era multiarquitetura, mas tinha uma interace mais antiga e menor foco em consumidores.

Principais Concorrentes do Windows NT 3.x

No início dos anos 1990, o mercado de sistemas operacionais corporativos era altamente competitivo, com diversas opções disputando espaço contra o recém-lançado Windows NT 3.x. Entre os principais concorrentes estavam o Unix, com suas variantes como Sun Solaris, HP-UX e IBM AIX, o Novell NetWare e o IBM OS/2, cada um com características distintas, histórias de desenvolvimento ricas e pontos fortes e fracos que moldaram sua adoção no mercado.

O Unix, originalmente desenvolvido na década de 1970 pela AT&T nos laboratórios Bell, tornou-se uma base fundamental para sistemas operacionais corporativos. Ao longo dos anos, ele evoluiu para uma série de variantes comerciais, com destaque para o Sun Solaris, o HP-UX e o IBM AIX.

O Solaris (anteriormente chamado de SunOS), criado pela Sun Microsystems em 1982 (e adquirida em 2010 pela Oracle), era baseado no BSD e foi projetado para tirar proveito da arquitetura RISC, especificamente o SPARC (Scalable Processor Architecture) que oferecia desempenho superior em servidores e estações de trabalho de alto desempenho. Utilizava NFS (Network File System) para compartilhar arquivos remotamente com baixa latência, ideal para redes distribuídas.

O HP-UX, criado pela Hewlett-Packard em 1982, baseava-se inicialmente no System III e, posteriormente, no System V Release 3 (SVR3), sem adotar completamente o SVR4. Otimizado para processadores PA-RISC (Precision Architecture RISC), evoluiu para suportar Itanium e, mais tarde, x86-64. Sua história reflete a transição da HP de minicomputadores para servidores empresariais, com ênfase em alta disponibilidade e clustering. O HP-UX implementava o Serviceguard, um sistema de clustering que garantia failover automático via heartbeat protocols, essencial para servidores de missão crítica.

Já o IBM AIX (Advanced Interactive eXecutive), lançado em 1986 para o IBM RT PC, baseava-se no System V com influências do BSD. Ele adotou o SVR4 em versões posteriores e foi otimizado para processadores POWER, uma arquitetura RISC da IBM. O AIX evoluiu para suportar grandes sistemas SMP (Symmetric Multi-Processing), com até 32 ou mais CPUs, e recursos como Logical Volume Manager (LVM) para gerenciamento dinâmico de armazenamento.

Essas variantes do Unix eram conhecidas por sua robustez e maturidade, resultado de anos de desenvolvimento e otimização. Comparado ao Windows NT 3.x, o Unix apresentava vantagens significativas, como maior desempenho em arquiteturas RISC, uma base de aplicativos nativos bem estabelecida e uma reputação consolidada em ambientes corporativos de missão crítica. No entanto, o Unix também enfrentava desafios consideráveis. O alto custo de licenciamento e hardware associado era uma barreira para muitas empresas. Além disso, a fragmentação entre diferentes variantes, cada uma com suas particularidades, dificultava a interoperabilidade e a padronização. A interface de usuário do Unix, muitas vezes baseada em linha de comando ou em sistemas gráficos menos intuitivos (baseada em X Window System com gerenciadores como CDE ou "Common Desktop Environment"), também era considerada menos amigável em comparação com as interfaces emergentes de sistemas como o Windows.

Sun Solaris rodando OpenWindows.

HP-UX (versão 10?)

IBM AIX 3.2

Outro concorrente de peso era o Novell NetWare, lançado em 1983 e amplamente adotado em redes locais (LANs) durante as décadas de 1980 e 1990. O NetWare se destacou por sua eficiência no compartilhamento de arquivos e impressoras, tornando-se uma solução dominante para redes corporativas. A versão 4.x (1193), introduziu o Novell Directory Services (NDS), um diretório global que organizava usuários, grupos e recursos em uma árvore hierárquica, similar ao futuro Active Directory do Windows (que só chegou no Windows 2000). Ele usava um banco de dados distribuído para autenticação e autorização, permitindo gerenciamento centralizado em redes com milhares de nós e reforçou sua posição, oferecendo um sistema avançado de gerenciamento de usuários e recursos em rede.

As principais vantagens do NetWare sobre o Windows NT 3.x incluíam seu desempenho otimizado para ambientes de rede e sua ampla adoção em empresas que dependiam de infraestruturas de LAN.

Contudo, o NetWare tinha limitações significativas como foco quase exclusivo em serviços de rede o tornava menos versátil que sistemas operacionais mais generalistas, como o Windows NT ou o Unix. Além disso, o modelo de licenciamento baseado em custo por cliente podia se tornar oneroso para organizações com muitos usuários, e a falta de flexibilidade para outras funções além de rede limitava seu escopo.




O IBM OS/2, por sua vez, teve uma trajetória única. Lançado em 1987 como um projeto conjunto entre IBM e Microsoft, o OS/2 foi concebido como um sistema operacional robusto para computadores pessoais e servidores. Após a separação entre as duas empresas em 1991, a IBM assumiu o desenvolvimento do OS/2, culminando no lançamento do OS/2 Warp em 1994, que trouxe melhorias significativas na interface e no desempenho. A Workplace Shell do OS/2 Warp, introduzida em 1994, era uma interface gráfica inovadora, com um desktop orientado a objetos onde arquivos e apps eram manipulados via drag-and-drop e antecipou conceitos do Windows 95, como o menu Iniciar.

O OS/2 apresentava vantagens notáveis, como baixos requisitos de hardware, permitindo sua execução em máquinas menos potentes, e uma boa compatibilidade com aplicativos de 16 bits, o que era crucial em uma era de transição para arquiteturas de 32 bits. No entanto, o OS/2 enfrentava desvantagens críticas em relação ao Windows NT 3.x e outros concorrentes. Sua limitação à arquitetura x86 restringia seu uso em comparação com sistemas como o Unix, que suportavam plataformas mais diversas. Além disso, o ecossistema de aplicativos de 32 bits para o OS/2 era limitado, o que dificultava sua adoção em larga escala. Com o tempo, o OS/2 perdeu participação de mercado, especialmente devido ao sucesso crescente do Windows e à falta de suporte de desenvolvedores de software. Vamos fazer, mais pra frente, um post dedicado ao OS/2.


Agora vamos instalar o Windows NT 3.x. Escolhi o Windows NT 3.51 Workstation em inglês (a última release é a 3.51.1057.1 - aqui). Optei pela versão em CD, uma vez que, desde o NT 3.1, devido a grande quantidade de disquetes (22!), a Microsoft passou a liberar o NT 3.x em CD. Lembrando que o Windows for Workgroups, que instalamos aqui, usavam apenas 8 (!!!) disquetes! Além disso, optei pela versão Workstation e não pela Server, não pelo tamanho, mas porque acho desnecessário mesmo, principalmente para o propósito do post.

Outro ponto importante é que o NT 3.51 exigia 12MB de RAM (deixei 64MB) e HD com pelo menos 90MB. Como esta versão já tem tem disco de boot, criei um HD de "apenas" 2GB (ao invés dos de 20GB que estava usando a partir daquele DOS otimizado - aqui).

Esta versão, como eu disse antes, não roda sobre o DOS de 16bits e usa um kernel novo de 32bits, ou seja, nada de configurações complexas no AUTOEXEC.BAT ou CONFIG.SYS. Ufa!!! :)

Também já é sabido que o SoudBlaster 16, padrão nestas épocas, tem problemas sérios em VM com Windows NT, ou seja, nada de som :(

Outro ponto é a placa de rede. Deixar em bridge na VM faz o computador acessar a internet (sim, dá para instalar IE ou Netscape e navegar precariamente apenas em http); deixar em NAT deve fazer ele rodar no Proxmox. Bom, vamos testar!

Mas vamos lá para a instalação.

A gente começa com o disco #1 de boot e liga a VM. Ele já carrega o disco pra memória e pede pelo segundo disco:



Como queremos instalar, aperte <ENTER> e vamos em frente:


Vou usar a configuração expressa mesmo. Aperte <ENTER> e vamos continuar:



Veja que o Windows já achou o CD-ROM na controladora IDE. Como não temos mais nada para que o Windows encontre, só de <ENTER> para continuar a instalação.


Vou usar um CD-ROM para instalar, então vamos de <ENTER>. Caso queira torturar a si mesmo trocando 22 disquetes, escolha a opção <A>.


O Windows avisa que irá formatar o HD ou porque ele é novo, ou porque foi apagador ou porque tem um SO que não pode coexistir com a instalação do NT. Como queremos instalar do zero mesmo, é só apertar o < C> para continuar. Caso você que tivesse vindo de uma outra versão anterior ou estivesse instalando a partir do DOS, veja aqui como faz para instalar nesta situação.


Veja que ele encontrou o HD de 2GB que escolhemos e agora ele quer saber se é para formatar com FAT ou NTFS. Eu vou de NFTS por tudo o que já falamos acima:



Agora o Windows vai copiar os arquivos do CD para o HD. Deixei esta pasta sugerida pelo sistema mesmo.


Coloque o CD no drive em vamos em frente:



A cópia é muito, muito rápida. Pronto, tire o disquete do drive e vamos reiniciar para continuar a instalação.


Uma pequena conferência da memória e do(s) processador(es).


Pronto, entramos no ambiente gráfico! Agora é bem simples.





Não vou instalar impressora.


Veja agora que o Windows NT *JÁ* achou a placa de rede!  \o/


Deixei tudo no default mesmo e mandei continuar a instalação:


O Windows agora pede para escolher o protocolo de rede para instalar. Vou de TCP/IP mesmo, o padrão do NT e o padrão de agora.


Um pouco de cópia e expansão de arquivos e agora o Windows pede para configurar a rede. Deixei no DHCP mesmo e só precisei colocar o endereço do roteador daqui de casa:



Mais um pouquinho de cópia e autoconfiguração.


Agora o Windows NT mostra a sua verdadeira identidade!


Esta versão é para redes, ou seja, precisa de um usuário como administrador e usuários como... usuários! Então ele vai pedir para criar a senha do ADM (pode deixar em branco se quiser) e depois para criar o user e senha.





Agora o Windows avisa que encontrou um driver para a placa de vídeo padrão (VGA). Veja que o único modo válido é o 640x480. Dá pra melhorar um pouco depois.


Não, não vou criar um disco de reparação de emergência. Obrigado, moço.


Pronto! O grosso do trabalho tá pronto!


Na hora de iniciar, ele sempre pergunta isso: você quer começar no modo configurado ou no VGA? Como por enquanto só temos o VGA, tanto faz. Mas depois, dá pra escolher o primeiro.


E eis a famosa tela de logon do Windows NT! :)




Abrindo o console do MS-DOS em Main -> Command Prompt, podemos testar a rede:


Já temos rede! Aqui você consegue baixar o Netscape 3.0, principal navegador na época do Windows NT 3.51.

 


 

 

São 4 disquetes para instalar o Netscape!


Pronto! Atualmente é muito difícil encontrar um site que funcione em navegadores desta época. Somente páginas com HTML estático (ou JAVA muito rudimentar) e sem HTTPS é que rodam aqui!


Agora vamos tentar aumentar a resolução da tela. Indo em Main -> Control Panel ->  Display, aparece a possibilidade de 800x600, mas 16 cores apenas. Escolha 800x600 e reinicie a VM. Ficará mais apresentável!


Para 1024x768, uma resolução ainda melhor, ainda em Display Settings, clique em Change Display Type... -> Change... e escolha um driver de vídeo genérico, como o VGA Compatível ou SVGA. O Windows NT 3.51 tem suporte limitado a drivers, mas driver SVGA genéricos como o "S3" ou "Cirrus Logic" podem suportar resoluções mais altas, como 1024x768. Eu testei com o "Cirrus Compatible Graphics Adapter" e o "S3", mas foi simplesmente ignorado... Na verdade não fui ignorado, teve erro como driver de vídeo:


Bom, esta é uma luta que eu prefiro não lutar. Vou passar pro Proxmox e, provavelmente, nunca mais vou utilizar essa VM :(

Assim, para resolver meu TOC, refiz toda a VM para não precisar mais ver esta mensagem (sim, antes eu tentei ver como resolvia isso mas não consegui).

E, por último, instalar o Service Pack 5, o último disponível para o Windows NT 3.51. Você pode baixar os SP aqui. Só um detalhe: tem um patch de correção chamado "Windows NT 3.51 Post-SP5 Hotfixes". Este patch contém algumas coisas interessantes como a inclusão do Euro (veja aqui e aqui), correção do "bug do milênio", etc.


Agora vamos passar para o Proxmox. Como disse mais cedo, tenho baixas expectativas de funcionamento da rede no Proxmox.

Para simplificar a vida, como fiz nas outras vezes, copiei e renomeei o disco da VM para uma pasta para ficar mais simples ao digitar os comandos. Primeiro a gente usa o comando abaixo para alterar a UUID do disco que copiado que faremos a conversão:
# VBoxManage internalcommands sethduuid "WINNT351.vdi"
Agora é só converter o arquivo .vdi para .raw:
# VBoxManage clonemedium disk --format RAW "WINNT351.vdi" "WINNT351.raw"
O "clonemedium" é mais novo que o antigo "clonehd" que usamos outras vezes. Foi introduzido após o Virtual Box 6.0 e converte discos, CDs e DVDs, sendo recomendado para o uso atualmente.

Para mandar o arquivo para o Proxmox, primeiro vou criar a VM, mais ou menos com as configurações da VM no VirtualBox. Vejam aqui, pois detalhei bem como fiz isso. Depois, com o Filezilla, eu copiei o .RAW criado no Mac para o Proxmox (coloquei na pasta ~var, mas você pode colocar na pasta que quiser). Antes de "adquirir" o disco em .RAW, converti dentro do Proxmox para .QCOW2 (fiz isso dentro da pasta para onde copiei o .RAW para não precisar digitar o caminho todo):
# qemu-img convert -f raw -O qcow2 WINNT351.raw WINNT351.qcow2
E importo o .qcow2 para o Proxmox com o comando abaixo:
# qm importdisk 111 WINNT351.qcow2 VM-Disk
Continuando. O arquivo é importado para a VM "111" do Proxmox sem problemas (é importado como um disco com o nome "vm-110-disk-0). A seguir, vá até a VM e adicione o disco que acabamos de importar, acrescente o HD na ordem de boot e pronto! Todo este processo está bem completo e bem detalhado aqui neste post! Recomendo que leiam antes de instalar.

Como esperado, nada de rede no Proxmox. E, novamente, essa é uma luta que não vou comprar. Já consegui instalar e vi que funcionou no VirtualBox!


Já me dou por satisfeito!

A próxima instalação será do Windows 95, sucessor do Windows 3.11 e, após isso, a do Windows NT 4.0, sucessor deste aqui.

É isso, pessoal!

Nenhum comentário:

Postar um comentário