2018/11/04

O peso da tradição que afecta o Windows 10

Tentem copiar ou criar um ficheiro chamado aux.h no Windows 10, e poderão ficar intrigados ao serem confrontados com um erro a dizer que tal não é possível - e não admira que tal aconteça, já que para se perceber a origem deste comportamento será necessário viajar no tempo até 1974.

É assustador pensar que, década após década, continuamos a depender de sistemas cujas origens remontam - literalmente - ao século passado, e que mesmo nas suas versões actuais continuam a manter coisas desse tempo, mesmo que agora já pouco ou nenhum sentido façam. Foi isso que aconteceu a uma pessoa que se deparou com a impossibilidade de copiar um ficheiro chamado aux.h para o seu computador com Windows 10, dando origem a um longo desabafo que traça as origens do problema, que remontam a 1974.



Indirectamente, a culpa é do Unix, que implementou - e bem - o conceito de que "tudo" era um ficheiro, facilitando o processo de interligar serviços e dispositivos usando funções standard. Copiar coisas de um ficheiro para uma porta série, ou de um teclado para um ficheiro, eram (e continuam a ser) coisas feitas com facilidade, e mantendo as coisas devidamente organizadas na pasta /dev. A mesma ideia foi aproveitada em 1974 para o CP/M, e foi aqui que o problema realmente começou.

Estamos a falar de uma altura em que os computadores tinham alguns KB de RAM e os discos rígidos eram uma raridade. Por isso, o CP/M decidiu poupar recursos ao não implementar o conceito de pastas - afinal, se não foi criado para lidar com "discos", isso não faria falta, certo? Mas, por outro lado, queria manter a ideia de ter acesso directo a dispositivos do Unix, pelo que em vez de os agrupar devidamente numa pasta especial, optou por simplesmente criar uma lista de nomes de ficheiros especiais reservados de acesso a dispositivo, com total prioridade sobre tudo o resto.


Quando a IBM quis lançar o seu IBM-PC, e perante o atraso (e custo) do CP/M para os CPUs x86, a IBM recorreu à Microsoft para que estes disponibilizassem o seu PC-DOS, que mais tarde se tornaria no MS-DOS. Só que este PC-DOS era na verdade um projecto que a MS tinha comprado a Tim Paterson chamado QDOS, e que emulava a API do CP/M - o que significava que também herdava os tais nomes especiais reservados. Por enquanto isto não era problema, mas com a evolução da tecnologia, pouco tempo demorou para que os sistemas de armazenamento começassem a ter maior capacidade, obrigando a que o sistema operativo começasse a suportar pastas no seu sistema de ficheiros. Isto chegou com o PC-DOS em 1983, e foi aqui que a MS tomou a decisão que actualmente causa estes "fenómenos".

Com a chegada das pastas, a MS tinha a opção de permitir que os nomes reservados pudessem ser utilizados para pastas, mas para garantir a retro-compatibilidade com batch files e programas que davam uso ao sistema antigo, a MS continuou a reservar completamente os nomes especiais, independentemente de serem usados num ficheiro ou numa pasta, com ou sem extensão (a lista de nomes reservados, e que por conta deste PC-DOS foi permanecendo ao longo dos MS-DOS, Windows, e ainda perdura no Windows 10 é: CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, e LPT9).


Para tornar a coisa ainda mais "divertida", estes nomes são nomes perfeitamente válidos em termos de sistema de ficheiros NTFS; pelo que é possível criar ficheiros com estes nomes num disco NTFS a partir de um sistema linux. Mas, quando ligarem o disco a um computador Windows e os tentarem copiar... vão ter as tais surpresas indesejadas (e isto já é uma sorte, nos tempos do Windows 95, a simples tentativa de acesso a um ficheiro chamado  C:\con\con ou C:\aux\aux dava direito a Blue Screen of Death imediato!)

... E com tudo isto, que tal se sentem pelo moderno computador com Windows 10 que utilizam, ainda manter resquícios vindos do tempo em que a MS comprou um sistema operativo chamado Quick and Dirty OS (QDOS)? Será que se pode considerar mais um exemplo do ditado popular que diz que "aquilo que nasce torto, tarde ou nunca se endireita"?

11 comentários:

  1. Desde 2010 que vivem no meu portátil 2 ficheiros com 0KB (sem qq extensao) que nunca consegui copiar, mudar ou apagar... Já não vivo sem eles... :)

    ResponderEliminar
    Respostas
    1. nada que o Unlocker 1.9.2 não remedeie... :)

      Eliminar
    2. 8 anos sem formatar um PC com windows? Credo!

      Eliminar
    3. Utilização "consciente", VMs, partição com um Win7 para tretas, outra com Win10 "limpinho" e a mania das limpezas, e a prendizagem por essa NET, têm feito milagres...

      Eliminar
    4. Unlocker também não resolve... :) Aquilo faz parte da mobília...

      Eliminar
    5. Usar um CD com um Linux rodando ao vivo, montando a partição com NTFS-3G pode ser a solução.

      Eliminar
    6. O meu PC caseiro ainda corre um glorioso Windows XP à perto de 6 ou 7 anos... Se bem que todo o software que necessito usar no meu dia a dia funcione bem é com programas da moda como o Google Chrome que tenho chatices por não me querer abrir páginas... Enfim, coisas do progresso

      Eliminar
  2. Tanto se fala sobre programação "em cima de programação" e dos seus possíveis maus efeitos, é um problema bem entranhado do qual não vejo fim.

    ResponderEliminar
    Respostas
    1. Concordo, e pessoalmente, suponho que a Google também pensa assim, daí que esteja para criar um novo sistema operativo para dispositivos móveis, muito provavelmente, devido à dificuldade de conseguir dar a volta à maior parte dos erros cometidos ainda na conceção do Android.

      Eliminar
  3. Este e um bom exemplo das consequências de algumas decisõe na fase de desenho de um projecto. Pesquisem por exemplo sobre a relação entre o tamanho do traseiro de um cavalo e um space shutle da NASA.

    ResponderEliminar