
Janelas 11 26H2é a mais nova versão do sistema operacional desktop da Microsoft, mas alguns de seus arquivos mais importantes, incluindo kernel32.dll, user32.dll e ntoskrnl.exe, são nomeados como se fossem escritos para MS-DOS. Eles seguem uma antiga regra de nome chamada8.3E o Windows o mantém por perto.compatibilidade.
Raymond Chen., que tem trabalhado no Windows por mais de 30 anos, uma vez explicado porque a Microsoft prefere um formato cujas falhas são bem documentadas em vez de um novo que poderia quebrar outra coisa.
No meu PC rodando Windows 11 26H2, os cantos arredondados do File Explorer e ícones Fluent cobrem uma pasta System32 cheia de nomes que olhariam para casa em um disquete de 1990.

O que é um nome 8.3 e por que o MS-DOS usou?
Para quem não sabe, 8.3 é a regra de nome de arquivo.MS-DOSusado (sim, é aquele velho). Um nome pode ter até oito caracteres antes do ponto e até três depois dele (a extensão), então o nome mais longo possível de 8.3 é 12 caracteres, incluindo o ponto. Microsoftespecificação do sistema de arquivosTambém diz que um nome 8.3 só pode usar caracteres ASCII, não pode conter espaços, e não pode ter mais de um período.
Vários dos arquivos mais antigos do System32 seguem essa regra, enquanto novos componentes como o serviço de segurança do Windows não se aproximam.
| Nome do arquivo | Nome + extensão | Encaixa 8.3? |
|---|---|---|
| kernel32.dll | 8 + 3 | Sim. |
| Ntoskrnl.exe | 8 + 3 | Sim. |
| usuário32.dll | 6 + 3 | Sim. |
| Hal.dll. | 3 + 3 | Sim. |
| Serviço de Saúde da Segurança. | 21 + 3 | No |
MS-DOS mostrou esses nomes em maiúsculas, então KERNEL32.DLL poderia parecer mais familiar se você usasse um PC nos anos 90. Windows gerencia nomes de arquivos comoCaso-insensívelPor padrão, kernel32.dll e KERNEL32.DLL são basicamente o mesmo arquivo.
Mas por que o limite 8 e 3? Chen explicou de volta em um2009 postem suaVelho Novo Coisablogue."É uma reserva da CP/M,"Ele escreveu. CP/M era um sistema operacional.Gary Kildallcriado para microcomputadores em 1974, e MS-DOS trabalhou duro para permanecer compatível com ele, nomes de arquivos incluídos.
Curiosamente, até Chen não sabe por que CP/M escolheu esses números. Ele observa que dois bytes reservados no formato do diretório CP/M poderiam ter estendido nomes para 10.3, e adivinha que oito eram apenas um número conveniente.

Claro, 8.3 é só um hábito de nomear no Windows 11. NTFS, o sistema de arquivos padrão,suporta nomes de arquivos longosde até 255 caracteres, e Windows tem gerenciado nomes longos desde meados dos anos 90.
Por que o Windows guarda 8,3 nomes para seus arquivos mais antigos, de acordo com Raymond Chen
Em um mesmo mais cedo2007 postChen estava pensando em possíveis razões, não nas oficiais da Microsoft.
A razão mais óbvia é que o nome de um DLL não pode mudar uma vez que os programas se ligam a ele, como esses programas procuram o arquivo pelo nome. Se a Microsoft renomeou user32.dll amanhã, décadas de aplicativos Windows procurariam um arquivo que não existe mais. Sim, é uma coisa de compatibilidade!
O Windows 95 também não requereu a unidade do sistema para suportar nomes de arquivos longos, em parte porque empresas que usam perfis de roaming podem ter dependedo de servidores que não podiam lidar com eles, então cada arquivo do sistema Windows 95 tinha que caber 8.3. Chen acredita que o Windows NT permitiu uma unidade de sistema FAT de nomes curtos tão tarde quanto o Windows 2000, e os nomes longos tornaram-se obrigatórios apenas com o Windows XP.

Mesmo depois do XP, nomes longos vieram com bagagem extra. Windows pode gerar um apelido curto para cada nome longo, então se configurar cópias estilo shell. dll em uma pasta que já tem shellstuff. dll, o novo arquivo provavelmente vai acabar como Shells ~ 2.DLL. Alguns programas codificam esses pseudônimos, e Chen diz que muitos aplicativos assumem que arquivos de programas estão presentes em C: \PROGRA~1.
Por curiosidade, fiz dir /x no drive C do meu PC 26H2, e os arquivos do programa ainda aparecem como PROGRA~1.A documentação do NTFS da Microsoft explica porque, como nomes curtos são desativados por padrão em volumes recém formatados, mas permanecem habilitados no volume do sistema para compatibilidade de aplicativos.

O risco é um DLL com dois nomes. O carregador de Windows lida com os nomes curtos e longos de uma DLL como dois módulos diferentes, então um processo pode acabar com duas cópias em memória, cada uma com suas próprias variáveis globais. Chen compara com uma viagem de infância à Disneylândia, onde ele e seu irmão esperaram em uma saída da Autopia enquanto seus pais esperavam na outra, sem nenhum lado saber que havia dois. Isso pode ter sido traumático!
A última razão de Chen é a que acho mais convincente."Todos os problemas com 8.3 nomes são bem compreendidos e sob controle,"Ele escreveu, acrescentando que uma mudança para nomes longos só traria um novo conjunto de problemas em um sistema que já funciona.
Na minha opinião, o argumento se justifica ainda mais em 2026. Microsoft éReescrevendo diálogos de décadas.em WinUI 3, e até mesmo o novoJanela de Propriedadestem que contar com aplicativos de terceiros que adicionam suas próprias abas ao antigo. Renaming kernel32.dll quebraria muito mais do que algumas abas, e não faria um PC mais rápido ou mais seguro.
Ironicamente,REFS, o sistema de arquivos muitos esperam substituir NTFS algum dia,Derruba apoio para nomes curtosE se um aplicativo antigo vai procurar um arquivo 8.3 em uma unidade ReFS, ele simplesmente falha, provando exatamente por que a Microsoft não tocou nos nomes do System32 no NTFS.
Então, da próxima vez ntoskrnl. Exe aparece em um relatório de queda de tela azul, saiba que seu nome segue uma regra do Windows herdada de um1974Sistema operacional, e Microsoft tem boas razões para mantê-lo assim. Chen fez um ponto similar sobreA velha UI em 2003Observando que empresas com milhares de empregados odeiam mudanças de interface porque reciclagem custa milhões. Trocaria um Sistema 32 por aplicativos que se recusam a abrir? Nem eu.
FONTE: Matéria original