5

这是一个非常广泛的问题,我主要是在寻找可以了解以下内容的资源。

我知道 python 解释器是用 C 编写的,并生成要在同样用 C 编写的 python 虚拟机上运行的字节码(对吗?)。我的问题是有可能在 python 本身中实现这两者吗?我想我要去哪里是(技术)在python中编写类似OS的东西的可能性,特别是没有静态编译任何东西?

如果我理解正确,python 没有汇编程序,它也必须用 python 编写。这些事情在技术上(可行吗?)可以做到吗?或者python的动态类型会带来某种问题吗?

我对微处理器架构、汇编和机器代码略知一二,这是一名 EE 毕业生在学校学习的内容。但是对于像 python 这样的高级语言,我会迷失在整个画面中。

4

4 回答 4

9

编译器,而不是解释器。但是您正在寻找PyPy

于 2010-11-10T18:52:25.253 回答
3

您首先需要使用任何语言(最好是 Python)编写 Python 编译器(而不是解释器)。编译器的第一次运行需要通过解释器运行。

然后,您将自己编译您的编译器,从而生成一个不需要解释器的本机编译器。

然后,您可以使用编译器将任何 Python 编译为本机代码。

这个过程称为引导,并且被许多(如果不是大多数)主要编译器用于许多语言。

您可以在此处阅读有关此过程的更多信息:http://en.wikipedia.org/wiki/Bootstrapping_(compilers)

至于创建操作系统,如果您想避免编译代码,则至少需要实现 Python 解释器。如果您将 Python 解释器编写为微内核,则可以用 Python 编写操作系统的其余部分。(编辑:我只是无意中描述了贾罗提到的 Cleese :))

于 2012-04-09T16:49:26.850 回答
2

James Tauber 还在 Python 中构建了一个名为Cleese的概念验证操作系统,并且最近开始努力让它在Pypy(用 Python 编写的 Python 解释器)上工作

于 2012-04-09T16:32:52.107 回答
1

关于操作系统实现问题,您需要一种系统编程语言来实现操作系统。除非你能想出一个 python 汇编程序并将 python 转换为不需要 VM 的直接可执行二进制文件,否则在纯 python 中完成这一切是不可能的。

如果您想在汇编中编写代码并让 python 为您组装它,请查看稍微过时和实验性的pyasm

于 2010-11-10T19:20:08.857 回答