É muito bom reler alguns arquivos…. espero que gostem:
OS/2 versus Windows 95 Tiroteio no Curral dos Sistemas Operacionais por Randall C. KennedyPublicado originalmente na revista Software Quaterly
Tradução: Paulo Santana
Adaptação: Gabriel Torres
Rio de Janeiro 1996
A menos que você tenha ficado com a sua cabeça enterrada na areia no último ano (1994), sem dúvida deve ter ouvido a retórica: a Microsoft deseja o seu investimento em PCs e a IBM também. Ambas estão em campo com sistemas operacionais de 32 bits, projetados para levar os PCs da sua organização para o mundo da computação com sistemas operacionais de 32 bits.
A solução da Microsoft é baseada no seu popular ambiente operacional Windows 3.11. A da IBM - OS/2 Warp - é a terceira maior versão do OS/2, um sistema operacional testado e comprovado, com robustez, de 32 bits. E, é claro, ambos os desenvolvedores estão fazendo o melhor para descrever a solução da “outra parte” como inferior.
Em um mundo perfeito, uma simples comparação frente a frente silenciaria tal retórica. O produto que tivesse o melhor conjunto no geral venceria e qualquer pessoa com metade de um cérebro mudaria para o produto superior.
Infelizmente, tal comparação é atualmente impossível para a maioria dos usuários de microcomputadores, uma vez que, apesar de toda a publicidade exagerada, apenas um desses produtos - o OS/2 Warp - está realmente pronto e disponível para quem deseja realmente utilizá-lo. No momento da redação desse artigo, o Windows 95 ainda estava na versão beta com promessa de liberação para Agosto. (Agosto de 1995)
Felizmente, parte suficiente da arquitetura do Windows 95 foi tornada pública para permitir ao menos um exame preliminar do seu projeto. E em uma análise mais detalhada, o produto Windows da próxima geração da Microsoft não se parece muito com um competidor para a coroa dos microcomputadores de 32 bits - que atualmente fica com o OS/2 Warp por default. De fato, o Windows 95 parece um substituto temporário, planejado para diminuir a ira dos usuários atuais do Windows, até que o hardware e o software alcancem os ávidos por recursos Windows NT.
Para combater as limitações inerentes ao Windows 95, parece que a Microsoft deseja que os usuários adquiram novos aplicativos de 32 bits. O que levanta um ponto interessante: o maior apelo do Windows 3.x foi que os usuários poderiam manter seus “antigos e confiáveis” aplicativos DOS. O DOS - e os aplicativos baseados no DOS - estão por aí há 12 anos. Todos irão desejar, repentinamente, essa derrota?
Provavelmente não. O que é um ponto importante em favor do OS/2; ele permite que os usuários aproveitem os benefícios de um sistema operacional de 32 bits com robustez, sem desistir dos seus aplicativos favoritos do DOS. Com o Windows 95, você precisará comprar aplicativos Windows de 32 bits para explorar benefícios similares.
Sobre Maçãs e Laranjas
Uma análise cuidadosa do Windows 95 revela uma arquitetura que parece ser muito fraca. Já tido como um sistema operacional de 32 bits completamente novo - e portanto um sério adversário para o OS/2 - o Windows 95 julgado pelos méritos da sua arquitetura técnica básica é, essencialmente, uma extensão do venerável híbrido DOS/Windows 3.1.
Enquanto a Microsoft faz o melhor para embaçar esta questão específica - incluindo recursos especiais com o produto - ficou dolorosamente claro que, nas áreas que contam - como arquitetura interna, orientação a objeto e suporte a aplicativos - o Windows 95 não se compara às forças arquiteturais do OS/2 Warp.
Mas comparar o Windows 95 ao OS/2 Warp é realmente como comparar uma maçã a uma laranja: a única coisa que elas têm em comum é que ambas são frutas. O OS/2 é um completo sistema operacional de 32 bits, multitarefa preemptivo, orientado a objetos. O Windows 95 não é ...
O OS/2 é capaz de fazer malabarismos simultâneos com dúzias de aplicações complexas, multithread com multitarefa preemptiva real. O Windows 95 não é ...
O OS/2 Warp se destaca pela proteção Inter aplicação robusta e pode graciosamente se recuperar das mais diversas falhas de aplicativos. O Windows não pode ...
Se você acha que esta vendo um padrão se delinear, você está certo.
Infelizmente, muitos na indústria da informática insistem em fazer apenas uma comparação entre “maçãs e laranjas”. E, tristemente, muitos não estão entendendo a realidade: recursos especiais significam muito pouco para um usuário que acabou de perder uma semana de trabalho por causa de um sistema operacional que foi incapaz de se recuperar a partir de uma simples falha de aplicativo.
A menos que você faça o encanamento certo, poderá esquecer a adição de acessórios, instalação de azulejos e colocação de suporte para papel higiênico; simplesmente não faz sentido enfeitar um software mal projetado.
Com uma perspectiva ligeiramente diferente, ofereço a seguinte alternativa para o status do OS/2 Warp versus o Windows 95. Nas páginas seguintes darei uma olhada sob a superfície e examinarei como o Windows 95 realmente se equipara ao líder da indústria nas três áreas mais importantes: arquitetura, interface com o usuário e suporte aos programas aplicativos.
Todas as observações feitas aqui são baseadas na minha experiência profissional em primeira mão, com a última versão do OS/2 Warp e do Windows 95 beta e nos muitos documentos técnicos que cada desenvolvedor está circulando atualmente. E, uma vez que examinar um alvo em movimento como o Windows 95 beta atual é naturalmente difícil - os projetos mudam, recursos são adicionados ou removidos e assim por diante - fiz o melhor para ater-me às características mais importantes, isto é, aquelas que são fundamentais para o projeto de cada sistema operacional e aquelas que provavelmente permanecerão inalteradas na versão comercial.
Arquitetura do Sistema Operacional
Em termos de arquitetura, o OS/2 Warp e o Windows 95 ocupam extremos opostos do espectro dos sistemas operacionais. Desde o início, a IBM projetou o OS/2 levando em consideração a multitarefa pesada. Todos os componentes do OS/2 Warp - de subsistemas de entrada e saída a rotinas de gerenciamento de memória - levam em consideração a probabilidade de que aplicativos múltiplos e simultâneos competiriam por seus serviços a qualquer momento. Conceitos como reentrância, onde uma parte da arquitetura do código permite que mais de um programa o execute de imediato, são fundamentais para a arquitetura geral do OS/2. Em resumo, o OS/2 Warp nasceu para a multitarefa.
Por outro lado o Windows 95 é um descendente direto do Windows 3.1 e, como tal, herdou muitas das falhas do seu antecessor. Para compreender totalmente a natureza dessas limitações, é necessário primeiramente examinar as origens da arquitetura do Windows 3.1 e como elas diferem da arquitetura do OS/2.
A Microsoft originalmente projetou o Windows como uma extensão gráfica do DOS. Versões mais antigas do produto, mais notadamente o Windows 2.0, eram aplicativos DOS de modo real que usavam uma combinação da memória convencional e memória expandida (EMS) para rodar aplicativos Windows de um único modo relativamente simples. Meramente funcional, era um projeto grosseiro. Não é necessário dizer que muitos na indústria o rejeitaram.
Com a introdução da versão 3.0, em 1990, a Microsoft tentou melhorar a capacidade do Windows, portando grande parte do seu código para o modo protegido de 16 bits. A ideia era fazer do Windows uma plataforma de desenvolvimento mais atrativa, eliminando uma das maiores reclamações sobre o seu projeto: a falta de acesso à memória estendida, que exigia o modo protegido. Mudar para o modo protegido significava mais memória para os aplicativos, o que, por sua vez, significava que os que faziam o desenvolvimento estavam livres para projetar produtos maiores e mais complexos.
Quando combinada com a popularidade de aplicativos da Microsoft como o Excel e o Word, essa estratégia funcionou. Fornecedores independentes de software passaram para o lado do Windows em bandos, assim, a exigência relativamente modesta de recursos do produto e a excelente compatibilidade com o passado - afinal, é apenas outra interface do DOS glorificada - provaram ser atrativos para um mercado inconstante que relutava perante ideia de um “novo” sistema operacional. Então, enquanto versões antigas do OS/2 definhavam por várias razões, o Windows 3.x preenchia a vaga.
Entretanto, ao fazer a sua mudança para o modo protegido com o Windows 3.0, a Microsoft tomou várias decisões duvidosas sobre o projeto, que estão voltando para assombra-la. Uma destas decisões foi favorecer a compatibilidade com o passado (com aplicativos Windows de modo real) em detrimento da multitarefa preemptiva. Ao invés de isolar cada aplicativo individualmente em seu próprio espaço de memória, como no OS/2, a Microsoft os agrupou em uma única Máquina Virtual de 16 bits (Máquina Virtual de Sistema). Lá, eles compartilhavam o tempo e os recursos do microprocessador com o próprio código do sistema operacional; tanto o sistema operacional quanto os aplicativos ocupam o mesmo espaço de memória que o Windows 3.x.
Enquanto essa arquitetura comprometida ajudou a amenizar a transição de modo real para o modo protegido para desenvolvedores de software, também tornou impossível para o sistema operacional executar efetivamente programas multitarefa. A multitarefa preemptiva, a técnica preferida na arquitetura de microprocessadores da Intel, exige que cada programa exista no seu próprio espaço de memória. O modelo de Máquina Virtual de Sistema único do Windows simplesmente não permite isso, portanto os aplicativos obrigatoriamente competem entre si - e com o próprio sistema operacional - para conseguir o que normalmente existe em um sistema verdadeiramente preemptivo: uma fatia de tempo do processador para a execução da tarefa.
A Microsoft tentou providenciar uma solução contra falhas para esse problema, encorajando aqueles que desenvolvem aplicativos a permitir o controle do microprocessador de vez em quando e, desta forma, permitir que outros programas fossem executados. Essa modificação produziu o agora mal-afamado termo “multitarefa cooperativa” e, em geral, tornou a vida miserável para qualquer um que tente desenvolver aplicativos de tempo crítico no Windows. O Windows simplesmente não pode garantir o tempo de processamento para nenhum aplicativo específico em um sistema cooperativo, uma vez que o programa atualmente em execução possui o controle completo do processador.
No início da fase de projeto do OS/2, a IBM decidiu evitar essa limitação, insistindo que cada aplicativo fosse isolado em seu próprio espaço de memória ou Máquina Virtual. Esta implementação garantiu que o sistema operacional tivesse o controle definitivo do processador e que pudesse fornecer tempo de processamento extra a programas sensíveis, conforme necessário. A sabedoria dessa decisão foi verificada por membros da comunidade de desenvolvimento, que elogiam a proeza da multitarefa do OS/2.
Com o Windows 95, a Microsoft está tentando compensar erros passados, enxertando a multitarefa preemptiva no topo do projeto original da Máquina Virtual de Sistema único do Windows. Ela pode fazer isso porque os novos aplicativos Win 32, que a Microsoft está encorajando os desenvolvedores de software a escrever, são programas de 32 bits e, como tais, podem ser isolados em suas próprias áreas de memória sem romper o modelo Máquina Virtual de Sistema único existente.
Infelizmente, esses aplicativos ainda precisam contar com o sistema operacional para serviços fundamentais, como desenhar janelas e gerenciar bitmaps. E estas funções são, levando tudo em consideração, ainda manejadas pelo código de 16 bits que reside na Máquina Virtual de Sistema.
O resultado desse projeto de 32 bits dependente do modelo de 16 bits (tipicamente conhecido como “thunking”) é que o código de um único módulo, não reentrante, de 16 bits da era Windows 3.1 na Máquina Virtual de Sistema, forma um gargalo que prejudica a habilidade do ambiente de realizar efetivamente a multitarefa dos aplicativos.
Portanto, enquanto a arquitetura do Windows 95 é adequada para multitarefa leve a moderada em um computador rápido, ela começa a falhar perante muitas aplicações multi-módulos. No meu modo de ver, a situação é ainda mais terrível quando você introduz um aplicativo Windows 3.1 de 16 bits - porque o ambiente essencialmente reverte para o modelo de multitarefa cooperativa enquanto o aplicativo de 16 bits está sendo executado.
Interface com o Usuário
Beleza, algumas pessoas dizem, é interior. Com o Windows 95, é apenas superficial. Ao invés de construir uma interface com o usuário verdadeira, orientada a objetos, a Microsoft decidiu enfeitar os componentes da interface gráfica do Windows, adicionando novas capacidades sem alterar qualquer das estruturas básicas de suporte. Basicamente a Microsoft aparou as arestas com o Windows 95 - e isto é evidente.
A melhor maneira de demonstrar os defeitos da interface do Windows 95 é, ironicamente, compara-la com o OS/2 Warp e a sua interface gráfica, a Workplace Shell. O OS/2 há muito vem sendo elogiado por sua sofisticada interface com o usuário, orientada a objetos. Mas, enquanto o ambiente é realmente chamativo, o seu poder real está abaixo da superfície, no System Object Model (SOM) do sistema operacional.
O SOM é a base da capacidade de orientação a objetos do OS/2 Warp. É o encanamento que faz todos aqueles destaques da Workplace Shell funcionarem tão bem. Ao manipular um objeto na área de trabalho da Workplace Shell, o SOM está lá trabalhando por trás para assegurar que a operação seja interpretada adequadamente e que as ações resultantes obedeçam às diretrizes estabelecidas do comportamento orientado a objeto.
Você pode ver o SOM em ação, simplesmente trabalhando com o OS/2 Warp por alguns momentos. Quando você arrasta o ícone de um objeto através da área de trabalho, o SOM segue o movimento e registra a nova posição do objeto. Mova um objeto entre as pastas e o SOM anota a alteração na localização do objeto. Arraste um documento para um ícone de impressora e o SOM responde lançando o código de impressão do aplicativo associado, deixando que o mesmo gere a impressão solicitada.
Todo esse rastreio e monitoramento do movimento do objeto é uma parte crítica da arquitetura da Workplace Shell. Sem o SOM, o OS/2 Warp não teria como manter as muitas interações complexas de objetos - operações de impressão, sombras de objetos, gabaritos etc. - que fazem da Workplace Shell um poderoso ambiente de interface com o usuário.
Agora que os benefícios de um SOM abrangente foram esclarecidos, posso resumir a falha da interface do Windows 95 em apenas quatro palavras: ela não tem SOM.
O Windows 95 não possui nada comparável ao SOM do OS/2; a sua interface completa é baseada em imagens gráficas estáticas e arquivos .INI e .LNK frágeis. Como no caso da arquitetura interna do Windows, os acessórios são muito agradáveis aos olhos, porém o encanamento é uma bagunça...
Assim como o poder do SOM é visível quando se trabalha com o OS/2 Warp e a Workplace Shell, também o são as falhas da interface com o usuário do Windows 95 quando desempenha até mesmo tarefas simples de manutenção. Por exemplo, tanto o Windows 95 quanto o OS/2 Warp suportam uma forma de apelidar objetos ou a habilidade de criar uma referência para um objeto e, em seguida, colocar esse referência em qualquer lugar do sistema. O OS/2 chama isso de sombras, o Windows 95 chama isso de atalhos. Mas seja qual for o nome, apenas um desses ambientes, o do OS/2, realmente implementa o conceito confiável - isto é, de uma maneira que seja flexível e não arrebente sob pressão.
No Windows 95, um atalho é uma ligação estática baseada na informação de caminho extraída do sistema básico de arquivos. Mova o original - por exemplo, arraste o seu ícone para uma nova pasta - e a ligação é quebrada. Essa limitação é causada por uma ligação que é estática e é baseada apenas na informação de caminho. Tal modelo é inerentemente frágil por causa da natureza inflexível da própria ligação. Os atalhos são baseados na suposição que o original permanecerá no mesmo lugar.
Para seu crédito, o Windows 95 faz um trabalho respeitável de reparar atalhos quebrados, procurando no disco rígido um arquivo com um tamanho e datas de criação e atualização semelhantes. Entretanto, ele nem sempre localiza o arquivo correto e, uma vez que a busca limita-se ao disco original, irá falhar completamente quando o objeto for movido para um disco diferente ou uma unidade de rede.
Então, como o OS/2 Warp maneja tal situação? Ele não precisa, uma vez que o SOM dinamicamente segue a ligação entre o original e a sua sombra. Enquanto o Windows 95 precisa pesquisar o original e fazer a “melhor adivinhação” de sua localização, o OS/2 Warp nunca quebra a relação em primeiro lugar. O SOM está trabalhando, seguindo todas as interações do objeto na Workplace Shell e certificando-se de que as relações sensíveis - incluindo as sombras - permaneçam válidas.
Suporte a Aplicativos
Se a comparação do Windows 95 com o OS/2 Warp está começando a parecer um pouco desigual, não diga que eu não avisei. O golpe de misericórdia envolve a maneira pela qual cada sistema operacional fornece suporte para vários tipos de aplicações.
Conforme observado anteriormente, tanto o OS/2 Warp quanto o Windows 95 rodam aplicativo de 32 bits em seu próprio espaço de memória ou Máquina Virtual. Esta também é a forma como cada sistema operacional manipula a execução de aplicativos DOS, embora haja algumas limitações na implementação do Windows 95, mais notavelmente a necessidade de especificar todos os controladores de dispositivos DOS exigidos, em tempo de inicialização, como parte do CONFIG.SYS (o OS/2 Warp permite ao usuário carrega-los dinamicamente, como parte de cada Máquina DOS Virtual, usando o Bloco de Notas de Definições).
Mas, onde os dois diferem mais é na forma como cada um manipula a execução da herança de aplicativos Windows de 16 bits. O OS/2 Warp trata um aplicativo Windows como um aplicativo DOS: criando uma Máquina DOS Virtual. O OS/2 Warp, então, carrega uma cópia runtime do Windows e o próprio aplicativo nesta Máquina DOS Virtual, criando uma amalgamação conhecida como “sessão Win-OS/2”. O OS/2 pode criar diversas destas sessões Win-OS/2 e os aplicativos Windows de 16 bits podem compartilhar uma única Máquina DOS Virtual ou o usuário pode isolar cada aplicativo em sua própria Máquina DOS Virtual individual.
Essa última opção é um dos principais benefícios específicos para o Windows trazidos pelo OS/2. Isolando aplicativos em suas próprias áreas de memória, o OS/2 atinge um nível de proteção entre aplicativos que é impossível sob o modelo Máquina Virtual de Sistema único do Windows. Além disso, o OS/2 está apto a realizar a multitarefa preemptiva desses aplicativos, uma vez que cada Máquina DOS Virtual possui sua própria área de memória e consequentemente, sua própria fatia de tempo no processamento pelo microprocessador.
Em contraste perfeito, o Windows 95 é impedido de prosseguir com as limitações herdadas do Windows 3.x e o modelo Máquina Virtual de Sistema único. No Windows 95, todos os aplicativos Windows de 16 bits são executados no mesmo espaço de endereço, como eram no Windows 3.x. Uma falha em qualquer um dos aplicativos pode criar um efeito dominó, fazendo com que todos os outros aplicativos na Máquina Virtual de Sistema falhem.
Ainda pior, o projeto original do Windows 3.x colocou o código do sistema operacional na Máquina Virtual de Sistema, lado a lado com o código de todos os aplicativos que estão sendo executados. O Windows 95 continua contando com seu código para serviços-chave de sistema; dessa forma, além de provocar a falha de outras aplicações, a falha de qualquer uma das aplicações pode, potencialmente, “derrubar” o sistema operacional por completo. Qualquer um que já tenha experimentado uma Falha Geral de Proteção (GPF) sob o Windows 3.x sabe que este problema não somente pode ocorrer, mas é muito provável que ocorra. A GPF vai bem, obrigado, no Windows 95.
Ainda, um outro impacto do nexo de dependência do Windows 95 em relação ao modelo Máquina Virtual de Sistema único é que ele é incapaz de contornar a multitarefa cooperativa dos aplicativos de 16 bits. Sendo assim, o Windows 95 continua “amarrado” ao modelo Máquina Virtual de Sistema, e não possui uma forma de atribuir às aplicações fatias de tempo individuais, como o OS/2 faz com sessões Win-OS/2 separadas. Consequentemente, uma aplicação “mal comportada” pode tornar a vida miserável.
Para superar as limitações do Windows 95, parece que a Microsoft espera que os usuários comprem novos aplicativos de 32 bits.
Uma Conclusão Proveitosa
Eu disse no início deste artigo que comparar o OS/2 com o Windows 95 é como comparar maçãs com laranjas. Eu espero que a argumentação por trás desta declaração esteja mais clara agora.
Byte por byte, o OS/2 é um produto superior. Sua arquitetura é muito mais robusta e capaz do que o híbrido Windows 95, além do seu suporte a aplicativos DOS e Windows serem mais flexíveis e confiáveis, graças às sessões de Win-OS/2 separadas. Finalmente, enquanto a interface do Windows 95 pode parecer orientada a objeto, ela é puramente superficial. A ausência de um modelo real orientado a objeto pode tornar interações complexas quase impossíveis de serem rastreadas ou mantidas.
Uma vez mais, a Microsoft está indecisa em liberar um produto cosmeticamente sofisticado no mercado. Com o Windows 95, o que você não pode ver pode prejudica-lo. Este cenário aconteceu anteriormente com o Windows 3.x - a Microsoft dispensou pouca atenção aos detalhes internos e, em vez disso, preocupou-se com a estética. A diferença, chave então, era que o Windows 3.x oferecia uma interface gráfica superior para uma legião de usuários do DOS, que estavam (e provavelmente ainda estão) perfeitamente felizes com o desempenho e a utilidade de seus aplicativos baseados no DOS.
O Windows 95 é, na minha opinião, apenas o último de um fluxo progressivo de produtos sem mérito técnico e cheios de publicidade exagerada.
Enquanto isso, o OS/2 aguarda por aqueles que anseiam por alguma coisa mais: mais poder, mais sofisticação, mais confiabilidade. Dessa forma, antes que você seja contagiado pela histeria eminente em relação ao Windows 95, faça um teste com o OS/2 Warp de 32 bits e veja você mesmo porque um alicerce pode contribuir para um local de trabalho muito mais produtivo.
Sobre o Autor:
Randall C. Kennedy é um escritor autônomo e consultor de informática. Ele é autor de “Migrating to Windows NT” e editor contribuinte da revista “Windows Sources”. Com um “Certified NetWare Engineer”, Randall é reconhecido como um especialista na tecnologia de sistemas operacionais para PCs e faz consultoria regularmente em empresas de tecnologia da informação.
Comentários
Postar um comentário