Python的CPU和操作系统
如果把Python虚拟机直接做成硬件,那我们能不能有一个完全用Python写的操作系统呢?就像以前的Lisp机器那样?
假设我有一个CPU,它是Python虚拟机的硬件实现,那么用Python写的所有程序运行速度就能和汇编语言一样快,是不是?(不过Python大多数时候是解释执行的,但我们也可以把它编译成机器码)
如果我们有这样一个“Python微处理器”,那内存和其他系统怎么办?它能和现在的内存兼容吗?
有没有关于寄存器和Python虚拟机架构的信息,类似于我们对8086的了解?
5 个回答
假设我有一个CPU,它是Python虚拟机的硬件实现,那么所有用Python写的程序运行速度就会和汇编语言一样快,是吗?(不过Python大部分是解释执行的,但我们可以把它编译成机器码)
是的,那样的话速度就会和汇编语言一样快。你可以看看这个链接,里面有和AVR微控制器的汇编代码的比较。 http://pycpu.wordpress.com/code-examples/speed-pycpu-vs-8bit-avr/。这是一个可以执行非常有限的Python字节码的CPU硬件实现。不过对于简单的条件判断和循环操作,它是足够用的。
类似的尝试也曾在Java上进行过,但没有哪个真正引起轰动。
是的,这可能是可行的,但设计新的硬件是非常昂贵的。投资回报是否值得去造这样一个玩意儿呢?我猜是不值得的,不然早就有人尝试过了。:)
如果把Python虚拟机直接做成硬件,那我们能不能完全用Python来做一个操作系统呢?就像以前的Lisp机器那样?
理论上是有可能的。
假设我有一个CPU,它是Python虚拟机的硬件实现,那么用Python写的所有程序运行速度是不是能和汇编语言一样快呢?(不过Python大多数是解释执行的,但我们可以编译它)
Python本身没有速度,它只是一种编程语言。我们可以测试解释器(在这里是处理器)的速度。但就像比较RISC和CISC处理器的性能很难一样,比较汇编语言和Python的速度也不容易。
如果我们有这样一个“Python微处理器”,那内存和其他子系统怎么办?它能和现在的内存兼容吗?
这个Python微处理器需要负责内存管理(也就是垃圾回收)。通常这些工作是由解释器来做的,现在就得由微处理器来处理了。
有没有关于寄存器和Python虚拟机架构的信息,类似于我们对8086的了解?
在Python中,通常你不会直接访问内存,所以寄存器在这里并不重要。