Tudo começa com o antigo PIP
comando CP / M - esse comando, usado para copiar arquivos, permitiu especificar nomes de dispositivos especiais em vez de arquivos.
Gary Kildall, que desenvolveu o CP / M, baseou grande parte do design de sua estrutura de arquivos e processador de comandos em sistemas operacionais da Digital Equipment, como o RSTS / E para o PDP-11. Além de acessar arquivos em um disquete, o comando PIP no CP / M também pode transferir dados para e dos seguintes "arquivos especiais":
CON: — console (input and output)
AUX: — an auxiliary device. In CP/M 1 and 2, PIP used PUN: (paper tape punch) and RDR: (paper tape reader) instead of AUX:
LST: — list output device, usually the printer
PRN: — as LST:, but lines were numbered, tabs expanded and form feeds added every 60 lines
NUL: — null device, akin to /dev/null
EOF: — input device that produced end-of-file characters, ASCII 0x1A
INP: — custom input device, by default the same as EOF:
OUT: — custom output device, by default the same as NUL:
Esses arquivos não eram verdadeiros, no entanto, porque o manuseio era limitado ao PIP.
Então o DOS aparece no início dos anos 80, um clone 8086 CP / M destinado a trabalhar no então novo PC IBM. O DOS estendeu um pouco mais esse conceito - os itens acima eram "arquivos especiais" e podiam ser especificados sempre que um arquivo era esperado nos comandos do DOS. Portanto, o copy
comando interno do DOS pode ser usado para imprimir um documento executando copy myfile.txt prn:
. (Versões posteriores do CP / M podem ter sido capazes de fazer isso, mas duvido.)
Avance para o Windows 95. Sendo construído sobre o DOS, o código que gerencia esses nomes de arquivos especiais permaneceu, mas evidentemente não foi integrado muito bem na parte da GUI do Windows 95. Isso causou alguns problemas, como o bug CON \ CON - e isso também causava problemas no IE.
Provavelmente por causa da paranóia de outros erros ocultos (embora nenhum deva existir nas versões do Windows baseadas no NT), a Microsoft decidiu fazer com que o Explorer sempre rejeitasse qualquer tentativa de criar um arquivo com esse nome. É engraçado que, mesmo no sistema Windows 8 que estou usando agora, ainda não consiga criar uma pasta chamada "con". (O Windows 10 ainda não permitirá que você faça isso).