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?
Respostas:
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.
fonte
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.
fonte
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.
fonte