今天,我在读一些新闻(1,2,3,4有关Microsoft Windows 8),看到的新功能之一是,它可以运行在ARM处理器为基础的系统。这使我想知道为什么当前版本的Windows(Seven)无法完成它的原因。
要在基于ARM处理器的系统上安装Windows 7,对Windows 7的实际限制是什么?它与内核版本,驱动程序,体系结构甚至是这些因素的混合有关吗?
在不知不觉中,我可以在ARM上安装Linux,所以我什至不能在ARM的VMWare虚拟机下安装Windows 7?
今天,我在读一些新闻(1,2,3,4有关Microsoft Windows 8),看到的新功能之一是,它可以运行在ARM处理器为基础的系统。这使我想知道为什么当前版本的Windows(Seven)无法完成它的原因。
要在基于ARM处理器的系统上安装Windows 7,对Windows 7的实际限制是什么?它与内核版本,驱动程序,体系结构甚至是这些因素的混合有关吗?
在不知不觉中,我可以在ARM上安装Linux,所以我什至不能在ARM的VMWare虚拟机下安装Windows 7?
Answers:
为了使二进制文件能够在ARM处理器上运行,它们必须专门针对该处理器进行编译或在仿真器中运行。
由于Linux系统是开源的,因此人们可以为ARM系统专门编译它们,并重写任何x86特定的代码。由于Windows的源代码是封闭的,因此除非Microsoft发布ARM版本,否则无法对其进行重新编译和运行。
迁移到ARM系统还存在其他问题,但这可能是最大的问题。
据我所知,VMware不会模拟x86。我认为qemu也许可以,但是我以前没有将它用于ARM仿真x86,只是x86仿真ARM。如果有效,将会对性能造成重大影响。
尽管需要针对要在其上运行的体系结构编译任何程序,但通常需要针对特定体系结构对操作系统进行更多的自定义。操作系统负责诸如调度和任务切换之类的事情,它们在很深的层次上与处理器一起工作。
一个简单的答案是“ MS尚未释放端口”(尽管Windows 8应该被移植到ARM),只是造成当时没有任何商业意义。如果您想了解MS是否可以...
好的,从历史上看,NT系列已经在多种处理器上运行-NT在Alpha,PPC和MIPS上运行,并且为Clipper和SPARC体系结构计划了端口。这是可能的,因为Windows NT提取了代码的硬件相关部分(HAL),并重写了该部分,然后重新编译了其他所有代码(尽管从理论上讲,基于.NET的软件与硬件无关)。
与Linux不同的是,如果我记得正确的话,每个体系结构都有单独的内核分支,那么据说HAL仅针对硬件,其余的则很常见-我相信,一旦为所讨论的ARM平台创建了HAL,它就应该相对这很简单,并且与为各种硬件进行编码没有什么不同,特别是如果系统是常规的,例如使用PCI-E和其他行业标准的接口。
假设Microsoft发布了Windows 7的ARM端口,则任何未解释的软件或在诸如JVM,LLVM或CLR之类的VM上运行的任何软件都需要重新编译或在翻译层(如Rosetta或旧的68K兼容性)上运行在较旧的Mac上,它知道x86特定的代码(并透明地运行该代码),并且具有足够的处理器功能来进行翻译。