Por que o Windows 7 não pode ser instalado em um sistema com processador ARM?


12

Hoje eu estava lendo algumas notícias ( 1 , 2 , 3 , 4 ) sobre o Microsoft Windows 8 e vi que um dos novos recursos é que ele pode ser executado em um sistema baseado no processador ARM . Isso me faz pensar nos motivos pelos quais isso não pode ser feito com a versão atual do Windows (Seven).

Quais são as limitações reais para o Windows 7 estar ciente de instalá-lo em um sistema com processador ARM? Teria a ver com a versão do kernel, drivers, arquitetura ou mesmo uma mistura desses fatores?

Até que eu saiba, posso instalar o Linux em um ARM, então nem consigo instalar o Windows Seven na máquina virtual VMWare em um ARM?


1
Observe que o Windows 8 está programado para ser executado no ARM. windows8news.com/2011/01/05/…
JSB ·

1
Você pode instalar o Windows 7 em uma máquina virtual em execução em um sistema operacional ARM. Você só precisa encontrar um programa de máquina virtual que seja executado no ARM e seja capaz de executar um convidado x86.
Breakthrough

Respostas:


30

Para que os binários sejam executados em um processador ARM, eles precisam ser compilados especificamente para esse processador ou em um emulador.

Como os sistemas Linux são de código aberto, as pessoas podem compilá-los especificamente para sistemas ARM e reescrever qualquer código específico x86. Como a fonte do Windows está fechada, a menos que a Microsoft libere uma versão do ARM, ela não pode ser recompilada e executada nela.

Existem outros problemas ao mudar para sistemas ARM, mas este é provavelmente o maior.

Até onde eu sei, o VMware não emulará um x86. Eu acho que o qemu pode, mas não o usei para emular o ARM x86 antes, apenas emular o x86 ARM. Haverá um impacto significativo no desempenho se funcionar.

Embora qualquer programa precise ser compilado para a arquitetura em que se destina, um sistema operacional geralmente precisa ser muito mais personalizado para a arquitetura específica. Os sistemas operacionais são responsáveis ​​por coisas como agendamento e alternância de tarefas, que funcionam com o processador em níveis muito profundos.


8
Observe que você pode generalizar a primeira frase removendo a palavra "ARM" e ainda ter uma afirmação verdadeira - como regra, os binários sempre precisam ser compilados para a arquitetura em que estão executando, ou então têm uma camada de emulador ou intérprete .
Shinrai

4
@jhulst Eu usei o qemu para emular o x86 no PowerPC e, sim, é incrivelmente lento.
Cajunluke

Supostamente, o VPC (que a MS comprou) fez x86 no PPC decentemente com recompilação dinâmica. Concedido, isso foi há muito tempo, e eu nunca tentei de verdade. QEMU é horrível que não seja a sua portabilidade IMO. Ele faz algumas coisas MUITO bem (como não precisar de ganchos de kernel), mas é ineficiente.
Journeyman Geek

Essa porta QEMU para a plataforma host ARM não parece muito popular e eu não consegui encontrar outras.
RedGrittyBrick

Os drivers de dispositivo também seriam um problema, especialmente para qualquer item exclusivo limitado aos sistemas ARM.
CarlF

8

A resposta simples é "A MS não lançou uma porta" (embora o Windows 8 deva ser portado para o ARM), simplesmente porque não fazia sentido nos negócios na época. Se você quiser entrar, se a MS puder ...

Bem, historicamente, a família NT é executada em vários processadores - o NT é executado em Alpha, PPC e MIPS, e havia portas planejadas para as arquiteturas Clipper e SPARC. Isso é possível porque o Windows NT abstraiu as partes dependentes de hardware do código (o HAL ) e reescreve exatamente essa seção e recompila tudo o mais deve fazer o truque (embora, em teoria, o software baseado em .NET seja supostamente independente de hardware).

Ao contrário do Linux, que, se bem me lembro, tem ramificações separadas do kernel para cada arquitetura, supostamente SOMENTE o HAL é específico do hardware e o resto é comum - acredito que uma vez que um HAL para a plataforma ARM em questão foi criado, ele deve ser relativamente trivial e diferente da codificação de vários bits de hardware, especialmente se o sistema fosse convencional, por exemplo, usando PCI-E e outras interfaces padrão do setor.

Supondo que a Microsoft lançou uma porta ARM do Windows 7, qualquer software que não seja interpretado ou que esteja sendo executado em uma VM como JVM, LLVM ou CLR precisaria ser recompilado ou executado em uma camada de conversão, como Rosetta ou a antiga compatibilidade de 68K em macs mais antigos , que esteja ciente do código específico do x86 (e o execute na emulação de forma transparente) e que exista energia suficiente do processador para tradução.


O software .NET pode ser executado em quase todas as principais arquiteturas usando o Mono, que é um compilador / tempo de execução Open Source para programas .NET que é executado na maioria dos principais sistemas operacionais. Isso não é diretamente relevante para a pergunta original, é claro.
CarlF

Bem não. É relevante para a parte em que 'o software precisaria ser recompilado'. Eu acredito que o CLR é potencialmente independente da plataforma e / ou o código .net é otimizado / compilado na instalação. Eu esqueci completamente sobre mono, infelizmente, a sua uma daquelas coisas que funciona silenciosamente em segundo plano; p
Journeyman Geek

@CarlF A ressalva é que você não pode usar o P / Invoke para acessar os binários do win32. No momento em que você precisa fazer isso, perde o suporte de plataforma cruzada. Isso é menos problemático do que era quando a estrutura .Net cresceu; mas se o seu aplicativo precisar fazer uma interface rígida com as dependências de sistemas de terceiros, o código nativo se tornará bastante comum.
Dan is Fiddling por Firelight

2

Você não pode executar binários em processadores com arquitetura diferente da arquitetura em que os binários foram compilados.

Você não pode executar um AMD64 Linux no ARM, assim como não pode executar o AMD64 linux em um processador i386 (32 bits). Suas únicas opções são emular um processador inteiro (consulte qemu ) e depois tentar o seu melhor.

O VMware / VirtualBox não são emuladores de processador; portanto, você também não tem sorte.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.