Python CPU和操作系统

问题描述:

如果Python VM本身被构建到硬件中,那么操作系统是不是可以完全在Python中?像旧的Lisp Machine一样?
假设我有一个cpu是Python虚拟机的硬件实现,那么所有用python编写的程序都会以汇编速度执行,不是吗(但是Python大部分是解释的,但我们可以编译它)?
如果我们有这样一个“蟒蛇微处理器”,那么内存和其他子系统呢?它会与当前的内存兼容吗?
是否有关于寄存器和Python VM体系结构的信息,类似于我们对8086的信息?Python CPU和操作系统

+1

(1)Python *被编译。在大多数字节码的实现中,有些(最着名的是PyPy,因为它是完全兼容的实现)编译为C或直接编译为机器码。 (2)与其他所有组件/机器代码一样,它只是运行它的东西。当然可以构建一个处理器,例如运行CPython字节码指令。使其运行速度与现代x64处理器一样快,这是一项非常不可能完成的任务。 – delnan 2011-04-03 00:44:58

+0

另请参阅[google pypy + fpga](http://www.google.com/search?q=pypy+fpga)(+去年之内)。 – denis 2011-06-16 13:38:04

岂不是能有一个OS 完全是用Python如果Python的VM 本身就是建设成为一个硬件? 有点像好老Lisp 机器?

是的,理论上这是可能的。

假设我有一个CPU中是 硬件实现蟒蛇 虚拟机,然后用Python编写的所有程序 将与 组装的速度进行,不会吧(但 Python是大多解释但我们 可以编译它)?

Python没有速度,它是一种语言。解释器(在这里是处理器)的速度可以被测试。但正如很难比较RISC和CISC处理器的性能一样,将Assembly和Python进行比较也很困难。

如果我们有这样的 “蟒蛇微处理器”,怎么样 内存和其它子系统?它会 与当前的 内存兼容。

python微处理器将不得不做内存管理(并因此垃圾收集)。由于这通常由解释器完成,现在微处理器必须这样做。

是否有对 寄存器和Python的VM 架构的任何信息,类似于 我们所拥有的8086的东西吗?

通常情况下,你不直接在Python中访问内存,所以这里的寄存器不应该是相关的。

+0

哦,没想到垃圾收集。好的,这会使电路更复杂。但为什么我们有一台Lisp机器呢? – boring 2011-04-03 01:01:08

Similar things were tried for Java,但没有一件真的是风靡世界。

是的,这可能是可能的,但设计新的硬件是昂贵的。投资回报会证明建造这样的玩具是否合理?我猜不是的,否则现在有人会尝试它。 :)

+1

那里**是真正的大型铁本身运行Java。是的,这是_quite_ _expensive_。例如IBM的[zAPP](http://en.wikipedia.org/wiki/ZAAP)和Azul的[Vega](http://en.wikipedia.org/wiki/Azul_Systems)。 – 2011-04-03 13:33:26

+0

@Mackie Messer,真棒;我喜欢那种疯狂的大硬件。回到学校后,我们看到_Java工作站_的_photos_,其中包含显示器,键盘和鼠标,它们正在取代PC_。这似乎是一个可爱的笑话,但zAPP和Vega肯定听起来很棒。没有像那些工作站那样。 :) – sarnold 2011-04-04 01:56:54

新的操作系统很有趣而且很酷,而基于python的操作系统很酷。再说一次,linux非常好,已经有了很多的发展。它必须是“正确的时间”。

+0

答案似乎不了解什么是操作系统和虚拟机是什么。 – Rollo 2014-12-07 12:43:13

在70年代,这样的想法很受欢迎。这个想法是关闭编译器/虚拟机和指令集架构之间的semantic gap,从而将编程语言和硬件更紧密地结合在一起。然而,当Patterson和Ditzel发表了The Case for the Reduced Instruction Set Computer (PDF, 672KB)之后,RISC和微处理器成功之后,关闭语义鸿沟的想法已基本消失。

现在,随着晶体管数量的不断增加,这个想法可能会再次变得有趣。但是,正如其他人已经指出的那样,设计芯片代价高昂。你需要一个非常好的理由来吸收这么多钱。但它绝对有可能。 IBMAzul已经用它们的大规模并行Java芯片展示了这一点。

我想你应该打电话给Google,让他们相信他们迫切需要一个Python处理器。 ;-)

+0

什么意思是“随着晶体管数量的不断增加,这个想法可能会再次变得有趣”? – Bakudan 2011-05-20 11:42:09

+1

@Bakudan:如今晶体管本质上是免费的,而功耗却是极限。在过去,这只是另一种方式。因此,如果复杂的架构不使用过多的功率,那么今天的复杂架构是合理的。例如。一个通用微处理器上的Python解释器很可能是一个更复杂,更专用的Python处理器。 – 2011-05-20 15:58:58

假设我有一个cpu是python虚拟机的硬件实现,那么所有用python编写的程序都会以汇编的速度执行,不是吗(但是Python大部分是解释的,但是我们可以编译它)?

是的,它会是组装速度。请参阅此链接以与avr微控制器汇编代码进行比较。 http://pycpu.wordpress.com/code-examples/speed-pycpu-vs-8bit-avr/。 这是一个可以做非常非常有限的python字节码的cpu的硬件实现。但足够ifs条件和while循环与简单的整数。