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

< Minhas Memórias >
< Parte V: Além do Primeiro Mega >


Na semana passada nos aventuramos no sombrio terreno que se estende além do primeiro mega da memória de nossas máquinas. E descobrimos que o que lá se esconde é mais ou menos como o pomar do vizinho rico: um vasto campo, povoado de delícias, mas praticamente inacessível. E que essas limitações se devem ao pobre e manco DOS que foi desenvolvido para a míope CPU 8088, e é incapaz de enxergar mais de 1Mb mesmo em máquinas mais poderosas. Mas vimos também que muito esforço tem sido desenvolvido para que, mesmo sob o DOS, a memória estendida possa ser aproveitada. E hoje vamos começar a examinar os frutos desses esforços.

Antes, porém, vamos esclarecer um detalhe. Se você pilota um XT com sua CPU 8088 ou equivalente, transponha para os umbrais do paraíso da memória estendida o aviso que Dante pregou na porta do inferno: deixai aqui toda a esperança, vós que entrais. Pois às 20 linhas de endereçamento do XT estão vedadas as delícias da memória estendida. Para transpor seus portais é preciso pelo menos um AT-286, cujas 24 linhas de endereços permitem acessar 16Mb, dos quais 15Mb podem ser de memória estendida. Ou uma CPU 386 (ou 486), cujas pujantes 32 linhas de endereçamento ampliam o horizonte do possível para até quatro inimagináveis gigabytes - o que poderia nos abrir um campo de até 4095Mb de estendida.

E, convém lembrar, também é preciso que a máquina de fato tenha essa memória. Pois há que distinguir entre a capacidade da CPU de acessar memória e a quantidade de memória efetivamente instalada. Uma analogia, para facilitar o entendimento: minha capacidade de gastar dinheiro é quase infinita. Porém, em termos práticos, ela é miseravelmente limitada pelo meu saldo bancário, sempre muito aquém do desejável. Pois assim é com a memória: se seu super-hier-ultra-386 veio com, digamos, 2Mb de memória, de nada adianta ele ser capaz de acessar os vastíssimos quatro giga. Vai ficar amarrado é nos seus dois mega, mesmo.

Isto posto, vamos adiante. Sei que vocês se lembram de nosso papo sobre a CPU 286, de modo que não será necessário repetir que ela tem dois modos de operação, o real e o protegido. E por isso mesmo não é preciso lembrar que o modo real, por simular um 8088, fica limitado à memória convencional, abrindo-se a memória estendida apenas para o modo protegido. Portanto, basta recordar que, devido a essas características da CPU, o AT-286 somente suporta o DOS no modo real. O que parece vedar inteiramente o acesso à memória estendida a tudo que rode sob o DOS, mesmo em um AT.

Felizmente não é bem assim. Pois o BIOS do AT, concebido para usar a CPU 286, inclui rotinas, ou "serviços", capazes de transferir dados da memória convencional para a estendida, e vice-versa. Como são apenas dados e não instruções, isso pode ser feito sem a necessidade de passar para o modo protegido. E, portanto, por programas rodando sob o DOS. Essa facilidade permitiu que fosse desenvolvida a primeira - e por muito tempo, a única - aplicação capaz de usar memória estendida nos AT: os discos RAM.

Um disco RAM nada mais é que uma unidade de disco simulada na memória. As informações são ali guardadas exatamente como em um disco, em blocos de memória que se comportam como os setores do disco. Um pequeno programa residente se instala na memória convencional e gerencia o processo de transferência entre ela e a estendida. Arquivos inteiros podem ser gravados e lidos nos discos RAM exatamente como nos discos reais. Vantagem? Rapidez! O acesso à memória é brutalmente mais rápido que ao disco. Discos RAM podem ser usados para apressar alguns programas, especialmente aqueles que usam "overlays" ou que, como bancos de dados e planilhas, gastam muito tempo lendo e escrevendo dados nos discos. Desvantagem? A natureza efêmera das informações gravadas em RAM, que se desvanecem tão logo o micro é desligado. Tudo o que se armazenou em um disco RAM e se pretende preservar deve ser copiado para um disco "de verdade" antes de se desligar o micro. Feitas as contas, pode valer a pena: basta copiar para o disco RAM os arquivos que se pretende usar durante uma sessão de trabalho, e copiar de volta o conteúdo do disco RAM ao se terminar a sessão.

Outras aplicações semelhantes foram desenvolvidas: "caches" de disco e "spoolers" de impressoras. A idéia básica é sempre a mesma: um programa residente na memória convencional promove a transferência de dados entre ela e a estendida. Nada de muito dramático, mas, afinal, uma utilização para a memória estendida. Já é alguma coisa. Mas muito pouca, convenhamos, para justificar uma CPU 286 e alguns mega de memória. O ideal era se conseguir que programas, e não apenas dados, pudessem se espraiar por aquelas plagas.

Para que esse milagre pudesse ser alcançado sem abandonar o DOS, foram desenvolvidos os chamados "DOS Extenders". Para os quais, me desculpem os puristas do vernáculo, não acho tradução mais eficaz que "estendedores do DOS". Pois é exatamente isso que fazem: estendem o sistema operacional para além do limite de 1Mb, permitindo seu ingresso no campo da memória estendida.

Como funcionam essas pequenas maravilhas? Bem, a coisa é um tanto complicada. Mas, simplificadamente, eles consistem em trechos de código incorporados aos programas que agem como um novo sistema operacional capaz de acionar o modo protegido das CPU 286 e 386, porém de forma compatível com o DOS. Deu para entender? Se não, não desespere: muita gente boa também não entende. Mas o que importa é perceber as vantagens e limitações práticas da coisa. A vantagem é, evidentemente, o fato de que programas que incorporam os DOS extenders podem ocupar a memória estendida seja com dados, seja com código. A limitação é menos evidente, mas bastante séria: o código que habilita esses programas a acessar a memória estendida está "embutido" no programa, e não no sistema operacional. É preciso então que o programa seja especialmente desenvolvido para isso, como por exemplo o Paradox 386, da Borland, ou o Lotus 1-2-3 versão 3.0. O que significa que apenas eles, e não os demais, podem desfrutar dessas vantagens.

Mas não é bem isso que espera o orgulhoso possuidor de um AT que abriga fartos mega de memória. Ele realmente ansiava era por algo que permitisse a seus bons e velhos programas o acesso a toda aquela memória estendida, que o DOS proíbe. Mas como, se o pobre sistema operacional usa antolhos que limitam seu campo de visão apenas ao primeiro mega?

A resposta cabe em duas palavras: memória expandida. Não por acaso o assunto da próxima Trilha Zero.

B. Piropo