Por que o software do Windows 9x pode ser executado no Windows 7 de 64 bits?

-1

Por muitos anos (muito tempo depois da introdução do Windows XP) eu executei uma coleção de PCs com Windows 9x antigos. Basicamente, essas máquinas tinham especificações muito baixas em seu hardware para serem atualizadas para o XP (e custaram muito dinheiro), então continuei a usá-las com o software original: várias instalações do Windows 98SE e Windows ME como versões de 32 bits).

No evento, nunca usei o XP. As máquinas Win9x eram tão confiáveis que ainda estavam funcionando muito tempo depois que o XP e o Vista surgiram e desapareceram. Mas, eventualmente, tive que migrar, por um período de tempo, para o Windows 7 de 64 bits.

Eu não estou prestes a fazer algo realmente estúpido, como perguntar por que tal e tal programa não será executado no Win7 64bit! : -)

Sem exceção, todo o software que eu estava rodando no Windows 98SE de 32 bits funcionou de maneira simples (por assim dizer) na arquitetura NT de 64 bits do Win7. Hoje, ainda uso uma variedade desse software, especialmente os programas de processamento de texto e editores de HTML que uso rotineiramente.

Existe uma razão técnica pela qual eu nunca experimentei as dificuldades que eu esperava na execução de programas do Windows 9x em NT de 64 bits? Fui informado sobre as configurações de 'compatibilidade' no Win7, mas nunca tive que executar um programa em "modo de compatibilidade".

Estou ciente de que o Windows 7 mantém softwares de 32 e 64 bits em locais separados e os manipula de forma diferente: mas eu esperava que isso estivesse relacionado a programas de 32 e 64 bits criados para o Windows 7.

Surpreende-me que os programas do Windows 98 de 32 bits pareçam ser totalmente compatíveis com os programas Windows XP / Vista / 7 de 32 bits e gostariam de entender por que isso acontece. Existe realmente nenhuma diferença entre eles?

Além disso, muitos dos antigos programas do Windows 9x eram / são portáveis. Eu tenho o hábito de colocá-los em pendrives, ou na área de trabalho do Windows 7, e apenas executá-los. Eu não tive problemas. Mesmo que eles não estejam sendo executados a partir de uma pasta Arquivos de Programas. Mais uma vez, gostaria de entender por que o O / S não se opõe a isso, do ponto de vista técnico?

Estou fazendo algo inseguro? O Windows 7 O / S parece muito estável: mas eu gostaria de saber se estou pedindo para ele fazer coisas que eu não deveria fazer.

    
por Ed999 14.01.2017 / 13:19

2 respostas

3

Você deve ser o primeiro usuário que reclama porque não tem nenhum problema. ;)

Embora a grande mídia tenha se esforçado bastante para dar ao Windows uma reputação imerecida na área de compatibilidade de aplicativos, o fato é que a Microsoft investiu bastante em retrocompatibilidade e a grande maioria dos aplicativos criados para o Windows 98 ainda pode ser usada no Windows. 7. Além disso, o Windows 7 é o sistema operacional mais estável que a Microsoft já desenvolveu. Não cometa erros, a diferença entre o Windows 7 e o Windows 98 é enorme, mas:

  • O Windows 98 tirou proveito de uma rica API do Windows, que a Microsoft não fez questão de reescrever só porque! Por exemplo, a interface para desenhar um retângulo na tela , criando uma janela ou < href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms647624(v=vs.85).aspx"> exibir uma barra de menu ainda é o mesmo.
  • O Windows 7 implementou medidas destinadas a resolver os problemas de compatibilidade do software legado. Uma delas é a virtualização UAC. Os aplicativos do Windows 98 gravaram os dados do aplicativo na pasta de instalação. O Windows 7 não permite mais isso; no entanto, para aplicativos herdados, o UAC Virtualization redireciona a operação de gravação de dados para fora da pasta de instalação do aplicativo para %LOCALAPPDATA%\VirtualStore .

Os aplicativos do Windows 98 que não funcionam mais no Windows 7 incluem aplicativos de 16 bits (que não são executados no Windows de 64 bits mas às vezes são executados no Windows de 32 bits) e aplicativos que dependem de hacks ou sistemas legados antigos serviços.

    
por 14.01.2017 / 13:39
2

Você está fazendo muitas perguntas aqui, algumas bastante complexas, mas a resposta básica é "A Microsoft se esforça para manter a compatibilidade com versões anteriores". Honestamente, uma pergunta melhor poderia ser "por que isso não funcionaria?", Já que tanto o Win9x quanto o NT (incluindo o Win7) usam a API Win32 e o conjunto de instruções x86 (as extensões de 64 bits da AMD para o conjunto de instruções x86 da Intel são retrocompatíveis; um processador "x64" em execução no modo de 64 bits também pode executar programas de 32 bits.

A razão mais provável para as coisas não funcionarem seria simplesmente por causa dos controles de acesso. O Win9x não suportou nenhum tipo de controle de acesso; qualquer programa poderia fazer o que quisesse. Usado maliciosamente, isso tornou a escrita de malware realmente fácil. Usado de forma não maliciosa mas preguiçosa, isso significa que muitos desenvolvedores escreveram seus programas de forma que os programas gravassem dados em suas pastas de instalação. Esta é uma má ideia por várias razões diferentes, entre as quais a segurança; em um SO "real", o local padrão para o qual os arquivos são instalados não permite que não administradores gravem em arquivos, e você deve ser executado como um não-administrador, exceto ao instalar / atualizar um software.

É claro que essa coisa toda "escreve no diretório que você está usando" é fácil (eu disse que os desenvolvedores estavam sendo preguiçosos ...) e sim, também faz software " portátil "no sentido de que você pode colocá-lo em um flashdrive (que geralmente também não possui controles de acesso, já que eles usam variantes do sistema de arquivos FAT e o FAT não suporta permissões de arquivos). Executar o software desta maneira é menos seguro do que instalá-lo em uma área de acesso restrito e executá-lo de lá (como um usuário não administrador), mas provavelmente está OK, desde que você não compartilhe computador com outras pessoas.

Quanto ao motivo pelo qual o sistema operacional não se opõe ... por que você esperaria isso? Program Files não é uma pasta especial de qualquer forma, é apenas o lugar onde, por convenção, você instala programas. (Esta é realmente uma convenção realmente estúpida, porque alguns softwares quebram se você instalá-lo em um local com espaços em seu caminho, mas talvez o MS quisesse garantir que os desenvolvedores não estivessem sendo preguiçosos ... A única coisa especial sobre Program Files é que em sistemas de 64 bits, quando os processos de 32 bits pedem a pasta "Arquivos de Programas", eles são direcionados para a pasta Program Files (x86) . Além disso ... o SO permite que você execute programas de qualquer lugar que você, o usuário, tenha acesso. Alguns programas instalam intencionalmente em seu perfil de usuário ou em sua própria pasta na raiz da unidade ( C:\Python27 é uma pasta comum para ver em uma máquina de desenvolvedor). Esses programas funcionam bem.

    
por 14.01.2017 / 13:45