Dio*_*ogo 12 windows windows-7 cpu-architecture
今天,我在读一些新闻(1,2,3,4有关Microsoft Windows 8),看到的新功能之一是,它可以运行在ARM处理器为基础的系统。这让我想知道使用当前发行版的 Windows(Seven) 无法完成的原因。
在基于 ARM 处理器的系统上安装 Windows 7 有哪些实际限制?它与内核版本、驱动程序、体系结构甚至这些因素的混合有关吗?
直到我知道,我可以在ARM上安装Linux,所以我甚至无法在ARM上的VMWare虚拟机下安装Windows 7?
jhu*_*lst 30
对于在 ARM 处理器上运行的二进制文件,它们必须专门为该处理器编译或在模拟器中运行。
由于 Linux 系统是开源的,人们可以专门为 ARM 系统编译它们并重写任何 x86 特定代码。因为Windows的源码是封闭的,除非微软发布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 和其他行业标准接口。
假设微软发布了 Windows 7 的 ARM 端口,任何不被解释的软件,或者在 JVM、LLVM 或 CLR 之类的 VM 上运行的软件都需要重新编译或在翻译层上运行,例如Rosetta或旧的 68K 兼容性旧 mac 上的层,它知道 x86 特定代码(并在仿真中透明地运行),并且有足够的处理器能力进行翻译。