quarta-feira, 7 de dezembro de 2011

Por que os Windows 9x não prestavam?

Windows NT versus Windows 95 e Windows 98

Windows NT e Windows 95 (e sua versão seguinte, o Windows 98) fazem parte da "família Windows de sistemas operacionais", compartilhando um subconjunto comum da API (Win32 e COM), modelo de driver de dispositivo (WDM) e em alguns casos um código compartilhado do sistema operacional. Embora o Windows NT 4.0 não tenha alguns dos recursos que o Windows 95 possui atualmente, a Microsoft sempre deixou claro que o Windows NT seria uma plataforma de sistema operacional estratégica para o futuro -- não apenas para servidores e desktops de empresa, mas eventualmente também para consumidores. A seguir estão algumas das diferenças de arquitetura e vantagens que o Windows NT tem sobre o Windows 95. (Essas comparações também se aplicam ao Windows 98.)

- O Windows NT aceita sistema de multiprocessador -- o Windows 95 não.
- O Windows NT roda em várias arquiteturas de máquina -- o Windows 95 é limitado a sistemas x86.
- O Windows 95 não possui um sistema de arquivo que aceite a segurança (como o controle de acesso arbitrário).
- O Windows NT é um sistema operacional totalmente de 32 bits -- ele não possui código de 16 bits. O Windows 95 contém uma grande quantidade do antigo código de 16 bits dos seus predecessores, Windows 3.1 e MS-DOS.
- O Windows NT é totalmente reentrante -- partes significativas do Windows 95 não são reentrantes (principalmente no código mais antigo de 16 bits apanhado do Windows 3.1). Esse código reentrante inclui a maioria das funções de gerenciamento de gráficos e janelas (USER e GDI). Quando uma aplicação de 32 bits no Windows 95 tenta chamar um serviço do sistema implementado no código de 16 bits não reentrante, ela deve primeiro obter um bloqueio em nível de sistema (ou mutex) para impedir que outros threads entrem na base de código não reentrante. E pior ainda, uma aplicação de 16 bits mantem esse bloqueio enquanto está sendo executada. Assim, embora o núcleo do Windows 95 contenha um escalonador multithreaded preemptivo de 32 bits, e como grande parte do sistema ainda é implementada com um código não reentrante, as aplicações muitas vezes são executadas em um único thread.
- O Windows NT oferece uma opção para rodar aplicações de 16 bits do Windows no seu próprio espaço de endereços -- o Windows 95 sempre executa as aplicações de 16 bits em um espaço de endereços compartilhado, onde podem interferir uma na outra (ou trancar o sistema).
- A memória compartilhada no Windows NT é visível apenas para os processos que possuem a mesma seção aberta da memória compartilhada (chamados objetos de mapeamento de arquivo na API Win32). No Windows 95, toda a memória compartilhada é visível e pode ser alterada por todos os processos. Assim, qualquer processo pode escrever sobre qualquer objeto de mapeamento de arquivo.
- O Windows 95 possui algumas páginas críticas do sistema operacional que podem ser escritas pelo modo usuário, permitindo assim que a aplicação do usuário tranque o sistema.

O que o Windows 95 tem que o Windows NT não tem? Plug and Play total, gerenciamento de energia, suporte para infravermelho e suporte para o sistema de arquivo FAT32. No entanto, todos esses recursos farão parte do Windows NT 5.0, tornando-o a primeira versão do Windows NT a ser um verdadeiro superconjunto da plataforma Windows.

A única coisa que o Windows 95 e o Windows 98 podem fazer que o Windows NT nunca fará é executar todas as aplicações mais antigas do MS-DOS e do Windows 3.1 (principalmente aquelas que exigem acesso direto ao hardware), além de drivers de dispositivo de 16 bits do MS-DOS. Enquanto compatibilidade 100 por cento com o MS-DOS e o Windows 3.1 foi um objetivo primordial do Windows 95, o objetivo do Windows NT foi executar a maioria das aplicações 16 bits existentes.

O texto acima é um trecho do livro "Desvendando o Windows NT" (páginas 41 e 42), de David A. Solomon, tradução da segunda edição do original "Inside Windows NT", publicado em 1998, que fala sobre a arquitetura do Windows NT 4.0, contendo informações sobre o não lançado naquela época Windows NT 5.0, que tornaria-se posteriormente o Windows 2000.

O suporte a "várias arquiteturas de máquina" (Alpha, PowerPC, MIPS) foi abandonado antes do lançamento final e o Windows 2000, ao contrário do NT 4.0, acabou rodando apenas em x86.

Post relacionado: Windows NT, o primeiro sistema operacional da Microsoft

Nenhum comentário:

Postar um comentário