Por que o Windows 7 de 64 bits não pode executar programas de 32 bits?

9

Pelo que entendi, a arquitetura não mudou tanto quanto de 16 para 32 bits. Por que precisamos do modo XP e similares para executar aplicativos de 32 bits no Windows 7 de 64 bits?

Ou entendi errado?

Oscar
fonte
Tivemos um programa que não gostou muito. O problema real no final se resumia ao Office de 64 bits (tivemos um plug-in do Office).
Joshua

Respostas:

16

ele pode executar programas de 32 bits bem. Não pode executar programas de 16 bits.

O modo XP é um pouco seguro - se um software específico não for executado no 7 (32 OU 64 bits - o modo xp está disponível para edição profissional e em ambos), você poderá executá-lo no modo XP. Isso ainda não aconteceu comigo, mas provavelmente é para o público 'você pode tirar XP da minha mão moribunda'.

Na maioria dos casos, o modo de compatibilidade

Journeyman Geek
fonte
Dang! Eu tive problemas para executar alguns aplicativos como o Visual Studio 6, o Guitar Pro, etc, e toda a pesquisa me levou a ganhar o modo xp sem realmente saber o porquê. Muito obrigado!
Oscar
2
Alguns aplicativos reclamam, mas não há razão na teoria de que você não possa executar aplicativos de 32 bits.
Shinrai
@Oscar VS6 requer MS Java.
Kinokijuf
5

Espero que isso ilumine as incompatibilidades:

A Microsoft decidiu reforçar o kernel com as versões de 64 bits. Os drivers de dispositivo têm o mesmo nível de acesso ao hardware que o kernel; portanto, algumas coisas específicas que foram alteradas nas versões de 64 bits em nome da segurança são:

  • Os drivers devem ser assinados pela Microsoft para carregar.
  • Não sei se tecnicamente drivers de 32 bits podem funcionar com um kernel de 64 bits (improvável), mas a Microsoft não está assinando novos drivers de 32 bits com a chave que o kernel de 64 bits deseja. Portanto, todos os drivers XP de 32 bits existentes não funcionarão no Vista / 7 de 64 bits.
  • Os drivers não podem sobrescrever ou corrigir o kernel.

A Microsoft também mudou para um novo modelo de driver de vídeo (LDDM), mas manteve o antigo (XDDM). O XDDM, o modelo antigo, não suporta o Aero.

Alguns programas carregam drivers de dispositivo personalizados em tempo real para realizar suas tarefas. Definitivamente, eles não funcionarão no Vista / 7.

A Microsoft atualizou alguns componentes no Vista / 7. Isso pode significar uma alteração no comportamento não documentado desses componentes. Programas que dependem de bugs nesses componentes ou funções DLL não documentadas também teriam um problema.

LawrenceC
fonte
+1 para obter informações sobre drivers de 32 bits e 64 bits do Windows. Eu tenho algum hardware de áudio antigo (SW1000XG, UR-80) que funcionará apenas na minha instalação de 32 bits do Windows 7, mas não na minha instalação de 64 bits. É uma pena, porque eles são legais, kit clássico.
Therobyouknow 25/11
"Não sei se os drivers tecnicamente de 32 bits podem funcionar com um kernel de 64 bits (improvável)" . Não é impossível em sistemas operacionais em geral, mas fazê-lo no Windows exigiria que todos os drivers estivessem em conformidade com os modelos de driver com um isolamento muito mais rígido de vários detalhes internos do sistema operacional. Não vejo como isso poderia ser feito, por exemplo, com o Windows Driver Model ou com os drivers pré-WDM. WDF seria mais fácil, mas ainda não é um slam-dunk.
precisa saber é o seguinte
2

Os programas de 32 bits devem funcionar bem no Windows de 64 bits.

O modo XP é para programas incompatíveis com o Windows Vista e o Windows 7 de ambos os tipos.

Consulte este artigo da Ars Technica para obter mais informações.

O problema realmente veio à tona com o lançamento do Windows Vista. A compatibilidade do Vista com o XP era muito boa, mas não era perfeita. A Microsoft fez muito trabalho no Vista para protegê-lo contra ataques (UAC, é claro, mas também outras coisas, como proibir serviços de ter interação com o usuário) e, juntos, essas modificações e melhorias, junto com outras coisas mais comuns, como atualizar o número da versão que o Windows conspirou para quebrar algum software antigo.

ChrisF
fonte