Por que nenhum suporte ao Win16 no Windows de 64 bits? [fechadas]

6

Meu entendimento (da Wikipedia) é que o conjunto de instruções x64 suporta a execução do código de modo protegido de 16 bits do modo longo, mas não pode executar código de modo real sem ser desligado do modo longo porque modo longo não possui o modo 8086 virtual. Portanto, é lógico que os aplicativos DOS de modo real não podem ser executados em Win64 sem emulação de software ou conversão dinâmica. No entanto, por que o suporte para aplicativos em modo protegido do Win16 foi excluído quando o suporte a eles parece (pelo menos à primeira vista) ser razoavelmente implementável e incluído em versões mais recentes do Win32? Foi apenas uma questão de demanda não ser alta o suficiente para justificar os custos de implementação (e a versão do win32 já foi implementada), ou existe uma boa razão técnica?

    
por dsimcha 17.05.2010 / 00:27

3 respostas

11

Eu não acho que existam aplicativos reais no modo protegido do Win16. Eu entendo Windows / 286 e acima correu em modo protegido (chamado "modo padrão" ou "modo avançado" pela Microsoft), mas os aplicativos eram tecnicamente aplicativos de modo real.

Lembro de ter lido que foi uma surpresa para a Microsoft que a equipe do Windows tenha descoberto como executar o código de modo real em um sistema operacional de modo protegido. Mas uma solução semelhante para executar o código de modo real no modo longo provavelmente não existe.

Portanto, a questão realmente se resume a a) por que não alternar para o modo protegido (ou modo real) para executar aplicativos Win16 e b) por que não incluir um emulador (como em outras plataformas NT não-x86).

A resposta para a) é óbvia, eu acho, porque alternar entre modo longo e outros modos não é realmente algo que a CPU suporta sem uma reinicialização. O OS / 2 1.x teve o mesmo problema com o modo protegido e modo real e ofereceu apenas uma solução muito deselegante para o problema.

A resposta para b) é mais difícil, mas acho que se trata de uma decisão da Microsoft baseada nesses três pontos (eu amo listas):

  1. Poucas pessoas ainda executam aplicativos de 16 bits.

  2. As pessoas que executam podem executar o Windows de 32 bits para executá-las.

  3. Produtos de terceiros podem cobrir o mercado restante.

E, de fato, existem várias soluções para executar o Windows de 32 bits (e, portanto, os aplicativos de 16 bits) no Windows de 64 bits, incluindo o Virtual PC da Microsoft.

No geral, isso foi simplesmente uma decisão de parar de oferecer suporte à compatibilidade com (o que a Microsoft considera) uma plataforma legada, como a remoção da compatibilidade com OS / 2 de 16 bits no Windows XP. (Esses eram aplicativos de modo protegido de 16 bits.)

    
por 17.05.2010 / 00:37
1

@ A resposta de AndrewJBrehm é boa, mas dois pontos que gostaria de acrescentar é que a remoção do suporte de 16 bits torna a manutenção do produto de 64 bits mais fácil e mais segura. Imagine o número de casos de teste acumulados ao longo dos anos para o subsistema de 16 bits. Toda vez que você fizer uma mudança, você deve garantir que nada seja quebrado. Mais subsistemas, especialmente aqueles (relativamente) raramente usados, como o subsistema de 16 bits, são bons alvos para invasores.

    
por 17.05.2010 / 05:55
0

Use o Modo XP.

link

    
por 17.05.2010 / 02:18