Antes de mais nada, uma correção. No MicroCosmo de trinta
de janeiro, há duas semanas, eu descrevi como simular números binários
com conjuntos de capacitores, onde capacitores carregados representariam
“um” e descarregados representariam “zero”. Os que tentaram entender
a coisa com base na descrição devem ter ficado bastante confusos.
E com razão, já que na descrição faltaram duas palavras. Então,
vamos desfazer a confusão. No pé da primeira coluna, onde eu descrevia
como representar o número binário 00101101 com um conjunto de oito
capacitores, deveria estar escrito: “Pegue o da extremidade direita
e carregue. Desloque-se para a esquerda e descarregue o vizinho,
carregue os dois seguintes, descarregue o próximo, carregue o seguinte
e descarregue os dois últimos da esquerda”. Esse “e descarregue”
que faltou parece pouco, mas foi o bastante para transformar o 00101101
(que representa o decimal 45) em 11101101 (que representa o decimal
237) e fazer a explicação perder o sentido. Uma diferença substancial,
pela qual me desculpo.
Agora,
adiante em nossa caminhada. Já sabemos que “memória RAM” é um conjunto
de posições de memória cujo conteúdo só se mantém enquanto o micro
permanece ligado. Quer dizer: é uma forma de armazenamento de informações
eminentemente perecível (por isso algumas pessoas se referem a ela
como “memória volátil”). Ainda usando o exemplo da carta: se não
houver uma forma menos provisória de armazená-la, caso o missivista
decida imprimi-la novamente após desligar o micro, terá que redigitar
todo o texto ao ligá-lo novamente. O que é bastante inconveniente.
Mas
vamos pensar um pouco: afinal, em que consiste, exatamente, aquela
carta? Bem, do ponto de vista do autor, talvez seja o espelho de
sua alma e coração. Mas do ponto de vista de um espectador desinteressado,
é apenas um conjunto de caracteres impressos em uma folha de papel.
E do ponto de vista do micro, não passa de um conjunto de bytes,
em uma ordem determinada, armazenados na memória RAM.
Assim,
o problema de reproduzir a carta se reduz a uma questão muito simples:
ao se religar o micro, basta repor na memória o mesmo conjunto de
bytes, na mesma ordem. Portanto, o que precisamos é uma forma de
preservar esse conjunto de bytes de modo que ele possa ser reposto
na memória.
Mas
bytes, como vimos, nada mais são que conjuntos de oito bits. E bits
não passam de representações dos números “um” e “zero”. Que podem
ser simuladas de diversas maneiras. Inclusive usando o interessante
fenômeno físico denominado magnetismo.
Não
conheço ninguém que, na infância, não se tenha maravilhado com as
curiosas propriedades dos imãs. Colocados em uma determinada posição,
lançam-se um para o outro e se juntam como um casal de adolescentes
apaixonados - para separá-los, há que puxar com força. Mas inverta
a posição de um deles, que se repelem como um irreconciliável par
de recém-divorciados e não há como mantê-los juntos. Isso acontece
porque todo imã tem dois pólos, polo norte e polo sul (não por acaso:
nosso planeta também é um gigantesco imã que, como todos os demais,
também tem seus dois pólos). E pólos diferentes se atraem, enquanto
pólos iguais se repelem (é por isso que a agulha da bússola aponta
sempre na mesma direção: ela também é um imã, cujo polo norte é
atraído pelo polo sul da terra e vice-versa). Se você está acompanhando
esse MicroCosmo, um sinal de alerta já deve ter soado em sua mente:
dois pólos, dois estados. Ideal para representar quantidades em
binário: poderíamos considerar que um conjunto de imãs cujos pólos
se orientem em um dado sentido representa o “um” e no sentido oposto
representa o “zero”. E (empregando técnicas que não são nada complicadas,
mas não cabem aqui nessa coluna) é fácil determinar em que sentido
se orientam os pólos de um imã: basta verificar o sentido de seu
“campo magnético”.
Mas
como criar imãs e ajustar sua orientação? Bem, acontece que o magnetismo
e a eletricidade interagem de forma fascinante. Há mesmo todo um
ramo da física apenas para estudar o assunto, o “eletromagnetismo”.
Infelizmente nos falta tempo e espaço para entrar em detalhes, mas
aceite como verdadeiro o fato de que um campo magnético em movimento
pode gerar uma corrente elétrica em um condutor (diz-se que a corrente
foi “induzida”) e um campo elétrico pode exercer uma certa força
sobre os imãs, fazendo-os girar sobre seus eixos e mudar sua orientação.
Agora,
imagine uma “superfície magnética”, ou seja, uma superfície recoberta
com uma imensa quantidade de imãs microscópicos cuja distribuição
é totalmente irregular, cada um apontando para uma direção diferente.
Como são zilhões de imãs com orientações distintas, seus “campos
magnéticos” se cancelam e se alguém tentar medir o campo magnético
em qualquer ponto da superfície, nada será detectado.
Agora,
façamos passar uma corrente elétrica suficientemente forte em um
condutor próximo à superfície. Isso gera um “campo elétrico”, e
todos os pequenos imãs situados na região junto ao condutor elétrico,
obedientemente, se voltarão na direção para a qual o campo elétrico
os empurra, com os pólos apontados no mesmo sentido. Agora, vamos
mover o condutor para mais adiante e inverter o sentido da corrente
elétrica. Com isso, o campo elétrico se inverte e os imãs dessa
outra região se orientarão no sentido oposto. E agora, ao se medir
o campo magnético nas vizinhanças de cada uma destas regiões, pode-se
detectar que, em uma, ele se situa no sentido oposto do medido nas
proximidades da outra.
Pronto:
agora já temos a base técnica necessária para usar essa superfície
magnética como meio de armazenamento de nossos bits. Se você ainda
não percebeu como, aguarde pelos detalhes na semana que vem.
B.
Piropo