Comportamento, ciência, tecnologia, direito, política, religião, cinema e televisão, alguma controvérsia, algum bom senso, e um pouquinho de besteira, para dar um gostinho...

27 de fev. de 2010

Trânsito

Fazia tempo que eu não partia em uma viagem realmente longa. Com longa quero dizer quase metade das horas do dia na estrada, para enfrentar mais de mil quilômetros até o destino. Agora, nas férias, fui para Santa Catarina acompanhado da namorada. As praias são lindas, e o atendimento ao turista é muito bom, mas o destino não é o assunto desse post. Esse post é sobre a jornada.

Eu fiquei sinceramente assustado com a quantidade de pessoas totalmente sem noção de segurança no trânsito. Perdi as contas dos "quase" acidentes que presenciei e confesso que estou alarmado com a baixa quantidade de acidentes em nossas estradas, se comparada com o número de proezas, peripécias e manobras de risco executadas por muitos motoristas.

Vale lembrar que não importa a nacionalidade, pois uma considerável porcentagem de carros era estrangeira (notadamente, Argentinos).

Ultrapassagens sem segurança, luzes desligadas ou falhas, a total falta de respeito a distância mínima do outro veículo, a tentativa incessante de "passar na frente" dos outros motoristas, mesmo que isso coloque em risco as outras pessoas, transitando na faixa contrária. Isso só para citar alguns exemplos.

Fiquei alarmado que estes motoristas tenham uma carteira de habilitação. Não aprenderam na auto escola sobre segurança? Esqueceram tudo?

O problema é que esses idiotas acabam colocando em risco, não só as próprias vidas, mas as vidas de motoristas conscientes e suas famílias, que muitas vezes estão tranquilamente curtindo uma viagem, ou apenas se deslocando para o trabalho ou casa. Essas pessoas deveriam perder o direito de dirigir. Caminhões ultrapassando carros de passeio (velocidade controlada uma ova) ou outros caminhões, motos passando raspando (e voando) no meio da pista, entre dois carros, gente ultrapassando em pedágios, refúgios e até na FILA causada por um reparo na estrada ou acidente.

Nessa viagem, vi vários carros e carretas desmantelados, frutos de acidentes, e mesmo com essa visão horrenda do que pode acontecer, as pessoas não se intimidam.

É triste. Cada vez que saímos com nossos veículos, esses malucos colocam em risco nossas vidas, impunemente na maioria absoluta das vezes...

17 de jan. de 2010

O bug do Windows 98

Em 1997 eu ganhei meu primeiro computador. Era um top de linha da época, um K6-II 233MHz com 48MB de RAM, disco rígido de 4GB (um enorme Quantumm Bigfoot, muito barulhento), tinha até duas portas USB, que eram raríssimas naquele tempo.

Apesar de já ter lidado em DOS e Win 3.11 em cursos no colégio, e ter uma boa noção de como eles funcionavam, foi quando ganhei esse computador que a curiosidade realmente foi satisfeita. Devo ter quebrado o software dele ao menos umas 10 vezes nas primeiras semanas, e aprendi a consertar ele logo em seguida.

Nesse mesmo tempo, eu ganhei um jogo do meu irmão (será que ele lembra?) chamado Privateer 2: The Darkening. Aí vai adivinhação do inglês, dicionário, e um RPG muito grande cheio de missões, onde controlar a nave envolvia desde o Joystick até 80% das teclas existentes no teclado, entre controle de velocidade, estabilidade, alvos e equipamentos. O p2td rodava em DOS, era necessário criar um disco de boot DOS que desse suporte a todos os drivers necessários (CD-ROM, som, etc). Não demorou muito para que eu desvendasse os segredos do autoexec.bat, do config.sys e da linguagem batch de DOS.

Foi aí que eu descobri, por acidente, um dos maiores e talvez nunca corrigidos bugs do Windows 98. Procurei na Internet, mas não encontrei nenhum relato, então pode ser que ninguém tenha descoberto mesmo, ou não procurei direito. Enfim, resolvi divulgar ele aqui.

A sequência de inicialização do win 98 envolve o DOS, na verdade o win é apenas um programa que roda emcima do DOS e "assume" o controle. No entanto, quando se boota, o que dispara é o DOS mesmo. O DOS então chama o Windows através de um comando: WIN. Esse comando dispara o WIN.COM presente na pasta WINDOWS e roda o sistema. No entanto, por uma falha de design, o DOS chama WIN mesmo, e não WIN.COM. No DOS, se você chama um programa apenas pelo nome, sem a extensão, ele vai disparar o comando de acordo com uma precedência de extensões. Nessa precedência, o .COM não é o primeiro. Primeiro vem o .BAT!!!

Em suma, se um usuário criasse um arquivo chamado WIN.BAT no diretório WINDOWS, o sistema Windows nunca seria disparado, e sim aquele bat que pode conter o que você quiser. E se dentro desse .bat você criasse um loop infinito, nunca voltaria ao prompt do DOS.

Ainda não descobri a causa exata, mas a segunda parte do bug parece advir do fato do DOS passar a renegar os comandos, assumindo que o WINDOWS vai tomar precedência e agir sobre os comandos do teclado. Com exceção da PRIMEIRA keystroke (tecla ou combinação de teclas), destinada a passar um parâmetro para o Windows (bootar no Modo de Segurança, por exemplo), o DOS passa a NÃO RESPONDER COMANDOS DEPOIS DESSA PRIMEIRA KEYSTROKE, A NÃO SER QUANDO A EXECUÇÃO DO WIN CHAMADO FOR FINALIZADA!

Se um WIN.BAT for criado, portanto, a única maneira de SAIR da execução dele seria que o PRIMEIRO keystroke seja um comando de PARAR para o .BAT que está rodando com um loop infinito (CTRL + C). De outra forma, mesmo teclar espaço, ESC ou qualquer outra tecla, seria um reboot forçado, pois o BAT rodaria infinitamente, sem chance de ser parado. Portanto, em um Windows 98, um arquivo Win.BAT no diretório WINDOWS com o seguinte conteúdo:

@echo off
:loop
REM Insira aqui echos ou qualquer outro comando, ou mesmo deixe assim para nao aparecer nada.
goto loop

Impediria um Win 98 de inicializar corretamente até que o arquivo fosse deletado. E se qualquer tecla diferente de CTRL + C fosse pressionada, acarretaria em um reboot forçado pelo usuário, afim de sair do loop infinito que impede o boot normal.

12 de dez. de 2009

Windows - Técnicos de TI e usuários

Saber lidar com um sistema operacional nada mais é do que inferir como ele funciona a partir de conhecimento básico, e usar esse conhecimento para dominar o sistema.

O Windows nada mais é do que um conjunto de arquivos realizando operações específicas para lidar com um hardware. Quando o sistema passa de um embaralhado de arquivos dll e sys para uma coisa conexa, você nota que dificilmente um sistema estará além de reparo. Aí você começa a querer de fato esganar os "formatadores" que se dizem técnicos de informática por aí.

Se você sabe usar as ferramentas certas (elas aparecem o tempo todo, atualizadas e melhoradas, na Internet), você pode pegar um computador de um usuário que já tentou de tudo ao seu alcance e torná-lo novamente utilizável (mantendo o papel de parede antigo). Com raras exceções, qualquer sistema operacional pode ser "revivido" com uma simples pesquisa na Internet, tempo e vontade. Embora muitos usuários estejam acostumados a perder tudo e começar do zero (e ainda dizem que o Windows é mais fácil), muitos não tem essa opção e ficariam extremamente contentes em ter seu sistema antigo, com suas personalizações e arquivos, no lugar onde estavam antes.

Para isso, sua melhor opção é sempre ter OUTRO computador disponível ao seu lado. Esse computador vai ser a base para você consertar o seu "paciente" e esse computador precisa FUNCIONAR. Então, obviamente, esse computador vai ser Linux. Você precisa também de um ambiente do qual você possa extrair arquivos. No caso, o VirtualBox é a escolha perfeita. Se você lida com Windows, você pode ter várias instalações (português, inglês, SP1, SP2, SP3) onde testar as soluções, passíveis de snapshots para que você não quebre elas, e sempre disponíveis, a um clique.

Mas qual o motivo para se ter uma estação Linux? Antes de mais nada, é para que você não tenha que consertar o tempo inteiro o seu computador. Além de ser ridículo um técnico de informática ter que consertar o próprio micro, isso vai demandar tempo que poderia ser utilizado no conserto do seu "paciente". A outra razão é a virtualização, que expliquei anteriormente, e a outra razão é que o Linux te dá um insight que você não consegue utilizando Windows. Ele não te esconde nada, não faz nada "por trás dos panos". Ele te ensina como um computador funciona de verdade. E você precisa desse conhecimento para consertar computadores.

Se sua segunda opção é formatar o computador, então por favor não se denomine técnico. Qualquer um faz isso, e só porque você aprendeu a usar um crack para instalar um Windows ilegal que eventualmente vai deixar seu cliente na mão, você não é melhor que os scripts kiddies da Internet.