O Sistema Operativo Windows NT
A História do Windows NT
Bill Gates estava a procura da equipe correta para elaborar o sucessor do Windows, um sistema operativo robusto, que pudesse colocar a Microsoft também na competição corporativa. Bill entrou em contato com Dave Cutler e o contratou baseado em quotas da Microsoft (como a grande maioria dos funcionários). Dave aceitou.
Pouco tempo depois (cerca de 6 meses a um ano), Dave já tinha (!) re-alocado quase toda a sua equipe da Digital para a Microsoft (quase 300 pessoas). Estavam com carta branca para produzir o que bem entendesse.
Bill não fez exigência alguma com relação ao seu projeto, dando-lhe carta branca. Porem, Dave fez apenas uma requisição: ele seria responsável pelo nome final do Sistema operativo.
Oficialmente, não existe explicação para o nome. Os jornalistas da época, vendo as siglas "NT" associaram a "New Technology". Porem, fontes internas alegam que Dave se baseou no filme "2001 Uma Odisséia no Espaço". Todos devem Ter assistido a esse filme. Quem lembra do nome do computador de bordo? Era HAL 9000, uma alusão a IBM (no alfabeto, HAL é a sigla posicional de IBM, cada letra menos um H e a letra anterior a I, A, anterior a B, e L anterior a M). Assim, fez o mesmo com o VMS, WNT, W e V mais 1, assim como N e M mais 1 e S e T mais 1. Foi o nome que Dave deu ao projeto, WNT. O pessoal de marketing da Microsoft entrou em contato com ele, mostrando que o "W" poderia significar Windows, uma vez que sua GUI seria baseada em Windows. Pediu sua permissão para registrar como Windows NT, e ele aceitou.
O grande objetivo de Dave na época era escrever o novo sistema operativo em micro kernel, ou código portátil. Por isso foi usado C, ao invés de linguagens de montagem como assembler. O sistema operativo foi primeiramente desenvolvido para a plataforma Intel, e para a plataforma MIPS (Silicon Graphics), pois era seu desejo que esse novo sistema pudesse usar o poder e potencial da arquitetura RISC.
Nesse meio tempo, a Microsoft pulou fora do barco do OS/2 para se dedicar ao projeto de Dave. Entrou em acordo com a IBM, de forma que uma equipe da Microsoft ainda ajudaria no projeto do OS/2. A IBM concordou.
Em meados de 1992, o projeto já estava tomando forma. O núcleo do sistema já existia, e foi mostrado em uma reunião confidencial. Foi quando a Digital viu a mercadoria que tinha feito, e entrou no projeto de Dave fornecendo mais uma plataforma, a nova Digital AlphaXP. Nessa fase do desenvolvimento, o SO não possuia ainda GUI, nem nome. Então, para permitir uma transição suave entre o que já existia e termos de GUI e em termos de rede, foi incorporada a equipe de Dave, duas sub-equipes com a finalidade de dar a cara gráfica ao projeto, baseado no Windows. Assim como outra equipe foi responsável pela funcionalidade de rede.
No meio de 1992, quando já existia código suficiente, foi lançado o beta 1 do NT. No começo de 92, Dave introduziu o conceito de "provar do próprio veneno", que consistia em usar INTERNAMENTE o sistema sendo desenvolvido como plataforma de rede e desenvolvimento, de forma que tivessem o maior contato possível com seus problemas.
No início de 93, começou a fase de adaptação ao mercado. Tornar o produto compatível com os aplicativos existentes no mercado em meados de 93, o NT foi lançado.
Introdução ao Windows
É um sistema operativo ao mesmo tempo poderoso, confiável, aberto e avançado para a plataforma cliente-servidor, destinado a extrair ao máximo os recursos dos poderosos equipamentos atualmente disponíveis.
O processamento cliente-servidor é uma tecnologia construída dentro de um moderno conceito de arquitetura para enfrentar o mercado atual. Dois fatores que contribuem para isso são a potência cada vez maior dos computadores desktop, e o crescente número de aplicativos para o processamento cliente-servidor.
O sistema operativo Windows NT foi inteiramente projetado para a computação cliente-servidor. O Windows NT possui confiabilidade e abertura para a execução de tarefas críticas de computação empresarial e alta performance na computação pessoal, ele permite a execução de trabalhos complexos com maior rapidez através de sua arquitetura de 32 bits, multitarefa e preemptiva.
Como sistema aberto, o Windows NT oferece uma disponibilidade de aplicativos e hardware superior a qualquer outro sistema de alta performance, é fácil conectar todo o poder do Windows NT às suas redes e hosts disponíveis.
O Que Faz o Windows NT
Ele executa processamento em 32 bits reais, o que aumenta substancialmente a velocidade das computações e do acesso à memória. Ele roda muitos programas ao mesmo tempo, alternando rapidamente entre eles para executar a multitarefa. Um único programa pode executar várias tarefas simultaneamente dividindo-se em enlaces. Os enlaces são executados independente, assim como os programas, mas vários podem compartilhar recursos e dados globais de um único programa. O Windows NT incorpora um gerenciamento de memória sofisticado usando endereços virtuais para evitar que os programas interfiram uns nos outros e usando troca de página para aumentar o tamanho aparente da memória do computador. O Windows NT possibilita processamento distribuído, permitindo que um programa divida seu trabalho entre várias máquinas diferentes.
Armazenamento de Dados
O NT suporta três tipos de file-system: DOS/FAT, HPFS (High Performance File System) similar ao OS/2, e NTFS (NT File System). As características do NTFS fazem dele a escolha ideal para implementação de um banco de dados.
NTFS é um file-system confiável. Sua estrutura interna é simples e robusta. O único elemento crítico, a tabela mestre de arquivos (Master File Table), é duplicada, e acessos às estruturas do file-system são logadas. Em outras palavras, em caso de travamento abrupto do sistema, alguém pode perder algum dado, mas o file-system sempre vai poder ser lido.
O NT oferece espelhamento de disco (RAID 1) para melhoria de performance e confiabilidade. Isto ajuda a proteger os dados. Pode-se replicar somente uma parte selecionada dos dados, copiada quase em tempo real para outro sistema, para permitir que este sistema de backup assuma o controle em caso de falha do sistema principal. Isto não é o mesmo que tolerância de falhas, mas fornece um bom nível de resistência a falhas, com hardware barato. O Unix por ele mesmo não fornece nenhuma destas facilidades. Os fornecedores de Unix, ou desenvolveram soluções proprietárias para estes problemas, ou usam produtos de terceiros. O NT já vem com tudo isso na caixa.
NTFS é um file-system eficiente. Os arquivos são acessados através de ponteiros de 8 bytes, o que significa que um único arquivo ou tabela poderia ter 264 bytes de dados. Na prática, isto significa que não existe limitação no tamanho de arquivos. O NTFS manipula grandes arquivos sem degradação (na maioria dos casos, veja a nota abaixo). O Unix, por exemplo, armazena os dados em uma árvore hierárquica de inodes, a qual, além da limitação de tamanho em 2GB, pode impor até três acessos ao disco para acessar randomicamente arquivos grandes. O NTFS armazena os dados de maneira que um acesso ao disco é suficiente.
Note, porém, que a regra de acesso eficiente a disco do NT somente é válida se o disco não estiver fragmentado.
Fragmentação, como em outros ambientes operativos, causa movimentação na cabeça do disco, e portanto, degradação no sistema.
Robustez
O NT é, de certa maneira, único no mundo dos sistemas operativos modernos: é o único caso em que os desenvolvedores tem a chance de começar do zero e projetar uma nova arquitetura. Por outro lado, o Unix é um sistema que foi construído gradualmente durante anos e, apesar de alguns fornecedores como a IBM terem recursos para reescrevê-lo inteiramente, existe ainda uma série de facilidades que precisam ser embutidas no sistema. A arquitetura micro kernel do NT com funções de sistema descentralizadas, implementadas em diferentes processos multicamadas, rodando a nível de usuário ao invés de em um nível privilegiado, todos comunicando-se através de chamada de procedimentos remotos (RPC), proporciona uma arquitetura onde os subsistemas são completamente independentes uns dos outros. Isto fornece uma grande robustez ao SO como um todo.
Abertura
Existe a impressão de que o NT é um sistema fechado, pois existe somente um fornecedor. A supremacia da Microsoft pode ser notada como uma contradição à noção de abertura. Ao contrário, o NT tem parte do seu canal de comunicação interno construído no padrão OSF. Um bom nível de compatibilidade com o Distributed Computing Environment (DCE) especificado pela OSF permite às aplicações NT interagirem com as aplicações Unix através de RPCs. Note que nem todo DCE foi implementado, somente RPC e alguns serviços CDS (Cell Directory System).
O NT suporta a maioria dos padrões de comunicação (TCP/IP, NETBIOS, IPX, sockets, X25, ISDN).
Uma das questões que podem ser levantadas, diz respeito à tecnologia orientada a objetos. Esta questão está mais relacionada com a estratégia da Microsoft do que diretamente com o NT.
Performance
É bastante seguro se afirmar que você pode achar um benchmark para provar qualquer ponto que você deseje. Daí, podemos concluir que o NT não pode estar fazendo tão feio: algumas vezes ele apresenta resultados melhores que os competidores; outras vezes, resultados piores.
É provavelmente verdadeiro o fato de que um servidor NT necessita de mais recursos do que um servidor Unix quando se fala de simples acesso a um banco de dados. Uma das razões pode ser porque o NT tem uma interface gráfica e que todos estes "bit maps" e imagens tomam memória e cpu para serem mantidos na tela. Mas faça uma comparação justa: carregue o Xwindows e rode uma aplicação baseada em Motif no seu servidor de banco de dados Unix, e você logo vai precisar mais memória e potência do que um sistema NT comparável.
Encare desta maneira: quando se trocar um servidor Unix com 64 usuários rodando aplicações ASCII por 64 usuários NT rodando aplicações cliente/servidor, você precisará distribuir seu sistema em duas (ou mais) máquinas, ou então comprar uma máquina maior.
Segurança
O NT implementa um mecanismo de segurança muito apertado, que permite controle centralizado de senhas de usuários e privilégios. Todos os recursos do sistema passam através dos mesmos mecanismos de segurança. Beneficiando-se do nível de segurança C2, as aplicações que utilizam a segurança do NT são capazes de penetrar em novos mercados. Note que, para uma segurança completa, os clientes devem usar o NT workstation, ao invés do Windows 95 ou Windows3.x. Contudo, mesmo que os clientes não sejam NT, o acesso aos recursos de rede ainda é seguro, por causa do mecanismo de autenticação fornecido pelo serviço básico de comunicações, se a implementação do banco de dados respeitar as regras do NT.
Multiplas Plataformas
Esta é uma preocupação mais freqüentemente externada com relação à seleção de um sistema operativo. A maioria dos usuários tentam evitar uma fonte única de sistemas para ficarem livres da dependência que este fato cria. Mas veja desta maneira: todos os fornecedores de sistema operativo são uma fonte única. O Netware certamente o é. OS/2 também. E você, na realidade, não compra Unix, e sim uma versão de Unix de alguém, e então você compra a versão do seu banco de dados para rodar nesta versão de Unix.
Se você tiver problemas com o seu fornecedor de Unix, você freqüentemente será obrigado a trocar de hardware, pois a maioria das versões de Unix são desenvolvidas pelos fabricantes de hardware. Você também precisa obter a versão do seu banco de dados para este Unix específico... se ele existir. Então, você precisa retreinar o seu pessoal. Este é um projeto de alto custo. Em qualquer dos casos, você vai pensar bastante antes de escolher inicialmente uma versão de Unix, e depois terá de agüentá-la, para melhor ou para pior. Assim sendo, múltiplas fontes de Unix são, fundamentalmente, uma ilusão.
Integração com o Cliente
Deve ser evidente que Windows 3.x e Windows 95 são os sistemas operativos da vasta maioria das aplicações GUI, seja o servidor NT, Netware ou qualquer outro. O NT, por razões óbvias, é o melhor ambiente para integração com clientes baseados em Windows. Existe uma coisa boa no que diz respeito a fornecedor único: as peças são todas consistentes. A segurança é comum, o software é comum, os protocolos são comuns e a interface com o usuário é comum. A administração do sistema é simplificada, pois o administrador não precisa estar familiarizado com múltiplas plataformas. Configurar uma rede com servidores NT é consideravelmente mais simples do que as outras alternativas disponíveis.
Conclusão
Deve estar claro que o Windows NT é uma boa escolha para a implementação de aplicações com arquiteturas cliente-servidor, não somente por suas qualidades intrínsecas, mas porque é o alicerce de toda uma estratégia da empresa, onde várias partes devem se encaixar, de maneira indolor. É aí que provavelmente os outros concorrentes caem. A Novell está sozinha no mercado com um software servidor sem software cliente. Existem três comitês de padronização que tentam unificar o mundo Unix, mas a aceitação destes padrões leva tempo, e é sempre acompanhada de muita controvérsia. Por outro lado, a Microsoft faz suas próprias regras. O NT vai substituir o Netware? Pode ser. O NT vai substituir o Unix? Pouco provável. O Unix tem muitas qualidades, e o suporte de grandes nomes na indústria, incluído, diga-se de passagem, a Microsoft. O NT é a plataforma certa para a sua solução de banco de dados? Muito provavelmente.