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

12

Hoje eu estava lendo algumas notícias ( 1 , 2 , 3 , 4 ) sobre o Microsoft Windows 8 e viu que um dos os novos recursos são 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 baseado no processador ARM? Isso teria a ver com a versão do kernel, drivers, arquitetura ou até mesmo uma mistura desses fatores?

Até que eu saiba, posso instalar o Linux em um ARM, por isso não posso instalar o Windows Seven em uma máquina virtual VMWare em um ARM?

    
por Diogo 26.08.2011 / 15:42

3 respostas

30

Para que os binários sejam executados em um processador ARM, eles devem ser compilados especificamente para esse processador ou executados 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 do x86. Como a fonte do Windows é fechada, a menos que a Microsoft libere uma versão do ARM, ela não poderá ser recompilada e executada nela.

Existem outros problemas com a mudança para sistemas ARM, mas este é provavelmente o maior.

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

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

    
por 26.08.2011 / 15:49
8

A resposta simples é "O MS não liberou uma porta" (embora o Windows 8 deva ser portado para o ARM), simplesmente porque não fazia sentido no momento. Se você quiser entrar, se a MS puder ...

Bem, historicamente, a família NT rodou em uma série de processadores - o NT rodava em Alpha, PPC e MIPS, e havia portas planejadas para o Clipper e arquiteturas SPARC. Isso é possível porque o Windows NT abstraiu as partes dependentes de hardware do código (o HAL ) e reescreveu apenas essa seção e recompilou tudo mais deve fazer o truque (embora na teoria o software baseado em .NET seja supostamente independente de hardware).

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

Supondo que a Microsoft liberou uma porta ARM do Windows 7, qualquer software que não seja interpretado ou executado em uma VM de tipos como JVM, LLVM ou CLR precisaria ser recompilado ou executado em uma camada de conversão, como Rosetta ou os antigos 68K camada de compatibilidade em macs antigos , que está ciente do código específico do x86 (e executa isso em emulação de forma transparente), e há poder de processamento suficiente para tradução.

    
por 26.08.2011 / 16:04
2

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

Não é possível executar um AMD64 Linux em ARM, assim como não é possível executar o AMD64 linux em um processador i386 (32 bits). Suas únicas opções são emular um processador inteiro (veja qemu ) e depois tentar o seu melhor.

VMware / VirtualBox não são emuladores de processador, portanto você também está sem sorte.

    
por 26.08.2011 / 15:47