Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
24/06/1991

< As Limitações AT >


O lançamento do AT-286 em 1984 foi saudado com grande alarido no mundo dos micros pessoais. Afinal era uma máquina efetivamente de 16 bits com capacidade de endereçar até 16 Mbytes de memória e desempenho que se anunciava muito superior ao do XT. Nessa época, em que o limite de 640K já se mostrava estreito, esperava-se que ele trouxesse a redenção, oferecendo largas pradarias inexploradas para os programas se espraiarem. Mas logo se percebeu que o paraíso prometido ainda não havia sido alcançado.

Para entender porquê é preciso conhecer um pouco mais sobre as características internas do chip 80286 da Intel, a CPU do primeiro AT. Sim, ele era de fato um microprocessador com registros internos de 16 bits. E, realmente, em uma máquina com dezesseis linhas de acesso a memória, permitia um desempenho muito superior ao do XT. E, certamente, poderia acessar 16Mbytes de memória. E, mais ainda, era dotado de características internas que lhe possibilitavam transferir rapidamente dados entre a memória e disco, fazendo o sistema "pensar" que os dados estavam sempre na memória: um ato de ilusionismo conhecido por memória virtual, por meio do qual pode apresentar ao sistema um impensável horizonte de um gigabyte. Teoricamente ele faria desaparecer as limitações da CPU 8088, usada no XT, cuja miopia a impedia de enxergar mais de um Megabyte. E porquê não o fez?

Surpreendentemente, as razões desta debilidade podem ser encontradas entre os motivos da grande pujança da linha PC, que a transformaram em um padrão mundial: o esforço em manter compatibilidade com os modelos anteriores.

Pois um dos fatores decisivos para o sucesso de um novo micro é a disponibilidade de software. O que, aparentemente, é contraditório: como se pode esperar que uma máquina recém lançada já possa dispor de programas feitos para ela? A fórmula que a IBM e Intel encontraram para resolver esse dilema foi dotar o chip 80286 de dois modos distintos de operação: o modo "real" e o modo "protegido".

No modo real o 80286 era uma cópia exata do 8086, uma edição melhorada do 8088 utilizado no XT. Os chips 8086 e 8088 eram rigorosamente compatíveis. E o 80286, operando em modo real, era um gêmeo idêntico do 8086, mantendo essa compatibilidade. E o fazia de forma tão estrita que trazia com ela todas as suas limitações. Inclusive, e principalmente, as ligadas ao acesso à memória. Portanto, um AT operando em modo real nada mais é que um XT mais veloz.

Com o modo real IBM e Intel pretenderam tirar vantagem dos inúmeros programas disponíveis para a linha PC, que somente podiam rodar nos XT ou em máquinas rigorosamente compatíveis. Desta forma a máquina recém lançada pôde imediatamente ser absorvida por um mercado onde os investimentos em software eram cada vez mais significativos se comparados com os preços de hardware. Mas isso somente era possível em modo real, onde as fantásticas características de acesso à memória não podiam ser exploradas.

Mas onde o 80286 se propunha a brilhar era no modo protegido. Ali sim, ele se libertaria das peias que o subjugavam e correria livre e solto por 16 megas de memória, além de eventuais incursões pelo impensável giga da memória virtual.

As vantagens do modo protegido sobre o modo real eram tão evidentes que levaram a Intel a cometer um erro fatal, que acabou por limitar a eficácia do AT-286: supondo que, após ter experimentado suas delícias, jamais quereria alguém retornar do modo protegido ao limitado modo real, conceberam a passagem deste para aquele como uma viagem sem volta: tendo passado do modo real para o protegido, é impraticável retornar sem uma reinicialização da CPU 80286. Ou seja: para um programa rodando sob o DOS, é impossível passar ao modo protegido para desfrutar seus benefícios e depois retornar ao modo real. E, em modo protegido, não se pode acessar nem mesmo os serviços do sistema operacional. Ao menos os do DOS, que foi desenvolvido para o 8088, tendo em mente seu limite de endereçamento de um Megabyte. Na verdade, para se usufruir totalmente as facilidades do modo protegido, seria necessário um novo sistema operacional livre das limitações do DOS em termos de endereçamento de memória. Esse sistema somente seria desenvolvido três anos depois do lançamento do AT: o OS/2 que, no entanto, em suas versões iniciais era tão limitado que não se difundiu como esperado pela IBM.

Essa é a razão da frustração do micreiro que, ao migrar de um XT com 640K de memória RAM para um AT com abundantes 2M, se sente logrado ao perceber que o quase mega e meio excedente não o liberou das amarras dos 640K. Eu bem sei que é assim: aconteceu comigo há alguns anos...

Mas isso não quer dizer que a memória do AT que se estende acima dos 640K não sirva para nada: ela é a chamada memória estendida. O irremediavelmente míope DOS, com sua incapacidade congênita de enxergar qualquer coisa acima dos 1024K, jamais consegue acessá-la, pois seus endereços começam justamente aí. Mas programas especialmente desenvolvidos conseguem usá-la para certos fins, como discos virtuais e spoolers de impressora. Que ficam, porém, muito aquém das maravilhas que o AT prometia.

Algo soou estranho aí em cima? Pensou que os endereços da memória estendida começavam logo acima dos 640K? Mas não se esqueça que o velho DOS egoisticamente reservou apenas para si os endereços entre 640 e 1024K: aí se localizam a memória de vídeo e o código armazenado em ROM, inclusive o BIOS e os programas de controle de discos rígidos e outros dispositivos. Por isso os endereços da memória estendida começam imediatamente acima de 1024K. Se você está um tanto confuso com esta história de memória estendida (e olha que não falamos ainda da expandida, que é diferente), não se preocupe: a maioria das pessoas fica. Mas brevemente voltaremos ao assunto para elucidar a confusão das memórias. Tão logo acabemos nosso passeio através da evolução da linha PC. Que ainda não acabou: semana que vem vamos conversar sobre seus dois mais novos e ofuscantes membros, Os micros baseados nas CPU 80386 e 80486. Que, esses sim, através de um fascinante subterfúgio, conseguem contornar, ao menos parcialmente, o sufocante limite dos 640K. E garantir uma não desprezível sobrevida ao DOS. E a todos os programas desenvolvidos para ele.

B. Piropo