【问题标题】:Python CPU and OSPython CPU 和操作系统
【发布时间】:2011-07-28 11:03:21
【问题描述】:

如果 Python 虚拟机本身内置在硬件中,难道就不可能有一个完全用 Python 编写的操作系统吗?像老式的 Lisp 机器之类的东西?
假设我有一个 cpu 是 python 虚拟机的硬件实现,那么所有用 python 编写的程序都会以汇编的速度执行,不是吗(但 Python 主要是解释的,但我们可以编译它)?
如果我们有这样一个“python 微处理器”,那么内存和其他子系统呢?是否与当前内存兼容。
是否有关于寄存器和 Python VM 架构的任何信息,类似于我们对 8086 的信息?

【问题讨论】:

  • (1) Python 编译。在大多数字节码实现中,有些(最值得注意的是 PyPy,因为它是一个完全兼容的实现)编译为 C 或直接编译为机器码。 (2) 与其他所有内容一样,汇编/机器代码仅与运行它的东西一样快。当然可以构建一个运行例如的处理器。 CPython 字节码指令。让它像现代 x64 处理器一样快地运行是一项几乎不可能完成的任务。
  • 另见google pypy+fpga(+ 在过去一年内)。

标签: python operating-system cpu-architecture


【解决方案1】:

Similar things were tried for Java,但没有人真正风靡全球。

是的,有可能,但设计新硬件昂贵。投资回报是否可以证明制造这样一个玩具的合理性?我猜不会,否则现在已经有人尝试过了。 :)

【讨论】:

  • 真正的大铁可以在本地运行 Java。是的,它相当 昂贵。例如 IBM 的 zAPP 和 Azul 的 Vega
  • @Mackie Messer,太棒了;我喜欢那种疯狂的大硬件。回到学校,我们看到了 Java 工作站照片,配备了显示器、键盘和鼠标,它们将取代 PC。现在这似乎是一个可爱的笑话,但 zAPP 和 Vega 听起来确实很棒。不像那些工作站。 :)
【解决方案2】:

难道不能有操作系统吗 如果 Python VM 完全在 Python 中 本身是构建成硬件的? 有点像旧的 Lisp 机器?

是的,理论上是可以的。

假设我有一个 CPU python的硬件实现 虚拟机,然后是所有程序 用python编写会执行 组装的速度,不是吗(但是 Python 主要是解释型的,但我们 可以编译吗)?

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

如果我们有这样的 'python-microprocessor',怎么样 内存和其他子系统?将 它与当前兼容 记忆。

python 微处理器必须进行内存管理(以及垃圾收集)。由于这通常由解释器完成,现在微处理器必须这样做。

有没有相关信息 寄存器和 Python VM 建筑,类似于 8086 有什么?

通常您不会直接在 Python 中访问内存,因此寄存器在这里不应该是相关的。

【讨论】:

  • 哦,没想到垃圾回收。好的,那会使电路更复杂。但是为什么我们有 Lisp 机器呢?
【解决方案3】:

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

【讨论】:

  • Answer 似乎缺乏对什么是操作系统和什么是虚拟机的理解。
【解决方案4】:

在 70 年代,这种想法非常流行。这个想法是关闭编译器/虚拟机和指令集架构之间的semantic gap,从而使编程语言和硬件更紧密地结合在一起。然而,当 Patterson 和 Ditzel 发表The Case for the Reduced Instruction Set Computer (PDF, 672KB) 并在 RISC 和微处理器取得成功之后,缩小语义鸿沟的想法基本上已经死了。

现在,随着晶体管数量的不断增加,这个想法可能会再次变得有趣。但是,正如其他人已经指出的那样,设计芯片的成本很高。你需要一个很好的理由来花这么多钱。但这绝对是可能的。 IBMAzul 已经通过他们的大规模并行 Java 芯片证明了这一点。

我想你应该打电话给 Google 并说服他们他们迫切需要 Python 处理器。 ;-)

【讨论】:

  • 什么意思是“随着晶体管数量的不断增加,这个想法可能会再次变得有趣”?
  • @Bakudan:现在晶体管基本上是免费的,但限制是功耗。在过去,情况正好相反。因此,如果不使用过多的功率,今天的复杂架构是合理的。例如。普通微处理器上的 Python 解释器很可能低于比更复杂、专用的 Python 处理器更节能。
【解决方案5】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    • 2017-06-23
    • 2012-02-05
    • 2015-01-12
    • 2014-01-23
    相关资源
    最近更新 更多