
O Windows XP executou softwares antigos, em parte porque foram enviados com um banco de dados oculto.aplicativos problemáticosQuando o Windows viu um deles, ele poderia mentir para o aplicativo sobre a versão do Windows ou até mesmo entregar o antigo gerenciador de memória do Windows 95, apenas para aquele programa.
Se você usasse o Windows XP antigamente, você ainda poderia ser um fã pela única razão de que ele funcionava quase tudo que você jogou nele, incluindo jogos e softwares de negócios escritos anos antes de ser lançado em 2001. Muitos desses aplicativos não foram atualizados para XP, e eles correram mesmo assim!

Engenheiro da Microsoft.Raymond Chen., que trabalha no Windows há mais de 30 anos, escreveu em 2003 que XP manteve sua lista de correções de compatibilidade na pasta C:\WINDOWS\AppPatch, armazenada em um formato binário"para permitir uma varredura rápida."
O que me intriga aqui é o que o Windows fez depois de achar uma combinação. Poderia mudar como o Windows funciona apenas para aquele aplicativo, e só enquanto ele estava rodando. Isso soa como o que uma IA faria, mas, claro, isso foi há 25 anos, e tudo era puro intelecto humano.
O Windows XP pode reconhecer um aplicativo e mudar o Windows só para ele.
A Microsoft chama esta lista deBase de dados de compatibilidade de aplicativos, um arquivo binário indexado com um.sdbExtensão. No XP, o banco de dados principal eraSysmain..sdb, e Microsoft disse que haviaCerca de 200 correções de compatibilidade.Quando o SO lançou.
Para o software de aplicação, o Windows não olhou apenas para seu nome .exe. XP combinou aplicativos usando tamanho de arquivo, checksum, versão, e data, e poderia até mesmo verificar outros arquivos na pasta do aplicativo, então uma correção poderia atingir uma versão de um programa sem acertar o mais novo que funcionasse bem.
Uma vez que o Windows encontrou uma combinação, ele aplicou o que a Microsoft chama deShimsQuando o aplicativo chamou uma API do Windows, o Windows roteou essa chamada através de uma pequena função, que poderia alterar o que o aplicativo enviou, alterar o que o Windows retornou, ou executar seu próprio código antes de chamar a função correta do Windows.
Por exemplo, alguns aplicativos se recusaram a correr a menos que vissem uma versão específica do Windows. Shims gostamWin98VersionLieCorrigindo isso devolvendo as informações da versão do Windows 98 ao aplicativo, não importa qual Windows estava rodando no PC.
Sim.O Windows estava mentindo para o aplicativo.E o aplicativo não fazia ideia.

Chen não era fã de desenvolvedores dependendo disso. Em um2010 post, ele disse que se um programa só é executado após a aplicação de VersionLie, seu desenvolvedor deve corrigir as verificações de versão, porque o modo de compatibilidade é" ali para o cliente, não para o programa."
Falando nisso, modos de compatibilidade não são mini versões do antigo Windows. Cada um é um pacote de abas e bandeiras, eModo Windows 95No XP embalaram cerca de 50 dos ajustes mais comuns.
Microsoft foi muito mais longe do que mentir sobre a versão do Windows.
Fingir uma versão número é uma coisa, mas o shim favorito de Chen éEmular o Heap, que, em suas palavras,"substitui a pilha padrão com uma cópia exata do gerenciador de pilha Windows 95."
OmonteÉ como um programa empresta memória do Windows, e alguns aplicativos antigos foram escritos de tal forma que eles dependiam muito de como o Windows 95 lidava com eles, então eles quebraram quando era uma versão mais nova do software, como XP.
Então, ao invés de dizer aos usuários que o aplicativo foi mal escrito, o Windows deu àquele aplicativo o gerente de memória com quem cresceu.
A Microsoft fazia essas coisas muito antes do XP. Ex-programador da Microsoft Joel SpolskyUma vez escreveuSimCity leu a memória que tinha acabado de liberar, então o Windows 95 enviou com código que procurava o SimCity e executou o alocador de memória em um modo especial que não liberou a memória imediatamente.
O outro lado da moeda é a segurança. Em um2017 postChen explicou que o modo de compatibilidade do Windows 2000 faz um programa carregar DLLs usando regras do Windows 2000, que antecedem o mais seguroSafeDllSearchModeE a Microsoft fez isso de propósito para aplicativos que dependem dessas regras.
Chen chama de "Compatibilidade bug-for-bug,"e aponta que um vendedor que não conserta seu aplicativo há mais de 15 anos não vai consertar agora.
Ainda assim, shims não podem fazer tudo. Chen diz que eles só trabalham dentro do próprio processo do aplicativo, para que eles não mudem os limites de segurança entre o programa e o resto do sistema, e eles não são nenhuma ajuda para drivers de modo de kernel incompatíveis.
A Microsoft não podia deixar um aplicativo quebrado matar uma atualização do Windows.
Então por que a Microsoft não bloqueou aplicativos que dependiam de recursos não documentados? Em sua2003 postChen disse todos os aplicativos bloqueados.é outra razão para as pessoas não atualizarem para a próxima versão do Windows."
"É preciso apenas um programa incompatível para azedar uma atualização,"Ele escreveu.
Chen pediu aos leitores para imaginarem ser um gerente de TI cuja empresa não trabalha no XP. O vendedor pode querer 150 dólares por cópia para a versão 2.0, e nas palavras de Chen,"Parabéns, o custo da atualização para o Windows XP triplicou."E isso se o vendedor ainda estiver no negócio.

Você não está sozinho se está pensando nestes dias em que cada aplicativo se transformou em uma assinatura!
Enfim, Chen também lembrou de uma pesquisa da equipe de configuração da Microsoft, onde praticamente todas as empresas tinham pelo menos um programa "deal-breaker" (leia: um aplicativo que a empresa não pode funcionar sem), geralmente um aplicativo Visual Basic interno cujo desenvolvedor tinha deixado. Poderia atualizar o escritório para XP e perder o único aplicativo em que seu negócio funciona? Claro que não, e na minha opinião, a Microsoft sabia disso melhor do que ninguém.
XP também deu à Microsoft uma maneira mais limpa de gerenciar esses hacks. De acordo com Chen, muitas correções de compatibilidade mudaram para DLLs na pasta AppPatch, então"A compatibilidade não mais suja os arquivos centrais do SO."
A Microsoft continuou alimentando o XP por anos também. SuaAtualização de compatibilidade de aplicativos de abril de 2011substituídoSysmain.sdbem XP SP3 com uma versão 1.206.508-byte, aproximadamente 1.2MB, quase uma década após o lançamento do XP.
Compatibilidade moldou outras decisões XP também. Com XP SP2, MicrosoftWindows de 32 bits com 4GB de RAME o Windows ainda carregapeculiares como o túnel do sistema de arquivos.Porque o software antigo os espera.
Windows XP faz 25 anos no final deste mês, e as pessoas aindaCelebrar o papel de parede da BlissComo se fosse um tesouro nacional. Ironicamente, alguns dos aplicativos que ganharam XP sua reputação foram mal escritos, e alguns estavam simplesmente verificando o número da versão errada.

Claro, não precisávamos saber nada disso. Clicamos duas vezes no programa e ele abriu.
Então, da próxima vez que alguém comentar que XP foi tão bem escrito que ele correu tudo, você vai saber a verdadeira história por trás disso.
FONTE: Matéria original