Windows RT不能运行传统的Windows程序,就是因为x86和ARM是不同的指令集,不是因为任何其他非技术的原因,不同的指令集本身就是技术的鸿沟。这篇文章的小编,水平太低,混淆概念。那篇文章(Wordpress,可能需要梯子)所说的是绕过Windows RT应用完整性检查的方法,也就是可以运行没有经过微软签名认证的程序,没有说可以运行x86的应用。
CPU 执行指令,使得程序能够运行。但是CPU存在很多种不同的架构,我们有时也称之为平台,这些不同的架构针对不同的应用需求而设计,所以他们的程序是不通用 的。有一种使得程序通用的方法,就是构造一种虚拟机,把程序编译为这种虚拟机的指令,然后把这个虚拟机在不同的CPU架构上实现一次,这样子程序就可以在 不同的平台上使用了。Java就属于这一种类型的程序,可以在任何的平台上运行和使用。
不过微软是有办法让Windows RT运行一部分传统Windows的应用程序的,因为Windows系统都自带了一个虚拟机,就是.NET CLR,而且这是一个做得很好的虚拟机。也就是使用.NET开发的应用程序,理论上是可以在Windows RT上运行的。不过不知道微软有没有这种打算,似乎没有看到这方面的新闻。
CPU 执行指令,使得程序能够运行。但是CPU存在很多种不同的架构,我们有时也称之为平台,这些不同的架构针对不同的应用需求而设计,所以他们的程序是不通用 的。有一种使得程序通用的方法,就是构造一种虚拟机,把程序编译为这种虚拟机的指令,然后把这个虚拟机在不同的CPU架构上实现一次,这样子程序就可以在 不同的平台上使用了。Java就属于这一种类型的程序,可以在任何的平台上运行和使用。
不过微软是有办法让Windows RT运行一部分传统Windows的应用程序的,因为Windows系统都自带了一个虚拟机,就是.NET CLR,而且这是一个做得很好的虚拟机。也就是使用.NET开发的应用程序,理论上是可以在Windows RT上运行的。不过不知道微软有没有这种打算,似乎没有看到这方面的新闻。
作者:余天升 来源:知乎