在128位处理器问世之前,您是否可以在128位操作系统上工作,或者您是否必须等待128位处理器才能使用它?

时间:2013-11-24 18:33:53

标签: operating-system processor

我只是想知道微软是否必须等到128位procssor在他们使用128位操作系统之前出来,或者他们是否可以提前处理它。

我对操作系统的了解不多,但是,我喜欢你能给我的任何信息,谢谢:)

2 个答案:

答案 0 :(得分:5)

简短回答:您无法在本机硬件上运行它,但您可以使用仿真层来模拟较新的硬件。

更长的答案:

本地运行

这种情况与尝试在32位处理器上运行64位操作系统或应用程序非常相似 - 它本身无法在位(处理器)<位(OS)。基本上, 32位处理器无法理解64位指令,因此无法运行64位操作系统或应用程序。这包含在this related SO answer

  

...传统x86处理器和x86-64之间的区别不仅在于指针大小,还在指令集中。虽然指针更大并消耗更多内存(8个字节而不是4个),但它可以通过更大的寄存器集来补偿...

2011年在StackOverflow上询问了{p> Is there any way to execute 64-bit programs on a 32-bit computer?,并且有类似的“否”答案,但this superuser answer以更详细的信息回答它:

  

出于所有意图和目的,在32位硬件上执行64位指令基本上是不可能的,而64位Windows可能有一些32位文件,主要部分是64位,所以它甚至不会开机。

superuser.com上的其他几个答案涵盖了类似的基础,例如thisthisthisthis site可以很好地涵盖基础架构原因以及有助于解释它的漂亮图片:

  

architecture layering

     

要运行64位操作系统,您需要从较低级别支持:64位CPU。

     

要运行64位应用程序,您需要所有较低级别的支持:64位操作系统和64位CPU。

     

这种简化足以让我们了解混合32位和64位部分时会发生什么。但是如果你想更深入地理解这个问题,那么你还需要考虑支持CPU的硬件和允许操作系统和应用程序与系统硬件连接的设备驱动程序。

我希望你能从这些例子中看出为什么在64位处理器架构之上本身运行理论上的128位操作系统同样不可能 - 底层系统无法理解指令。

模拟救援!

现在,尽管如此, 是一种运行它的方法。如果您有64位处理器,则可以编写/使用基本上模拟的64位操作系统,或假装为128位硬件以运行其他操作系统。在上图中,这将是硬件处理器和操作系统之间的一个层 - 从128位操作系统的角度来看,它看到了128位硬件,即使它实际上是由软件仿真提供的。

现在,由于它是仿真,性能很可能......“不好”。正如评论中所提到的,“如果有人试图模拟一台较新的128位机器,那么软件就会悠闲地漫步,而不是跑步”。

鉴于性能限制,此仿真主要用于您在问题中描述的场景 - 在硬件准备好之前开发新操作系统,或者可能是为了解决或证明一个概念。 Here是在8位处理器上运行32位操作系统的示例。

  

要让世界上最慢的Linux计算机运行,他必须写一个   ARMv5仿真器,支持32位处理器和MMU。

     

它有多慢? “它需要大约2个小时才能启动   to bash prompt('init = / bin / bash'内核命令行)。然后再4个   几小时启动整个Ubuntu('exec init'然后登录)。   开始X需要更长的时间。

作为一个兴趣点:反向(模拟旧硬件而不是更新)可以非常快。例如,用于旧视频游戏控制台的软件模拟器基本上可以模拟PC上的控制台硬件,但由于控制台硬件最初发布以来的巨大硬件改进,因此运行速度要快许多倍。

摘要

所以是的,这是可能的,但只能通过仿真 - 不能直接在硬件上运行。

答案 1 :(得分:3)

答案很长:是的

Linux至少设计用于32位CPU,但它运行在8位CPU上。 http://www.extremetech.com/extreme/124287-the-worlds-slowest-linux-pc

基本上通过仿真,您可以模拟未来的处理器。性能会很差,但可以做到。除非您是开发新处理器的团队,否则除了概念验证和早期测试外,没有什么意义。

此外,在没有仿真的情况下,可以通过增加指令将2个64位值链接到128位值,或将4个64位值转换为256位值来修改C编译器以支持更大的int和long变量。因此,忽略内存限制,为128位处理器设计的代码可以在64位处理器上运行。这不会像仿真那样具有很大的性能损失,并且对于测试新操作系统的某些部分会更有意义,例如为当前处理器上的未来处理器设计的新的大规模文件系统类型。