1

我有一个问题一直萦绕在我的脑海中。我知道像 C 这样的语言比 Python 快,因此被用来编写操作系统。我在某处读到过用 Python 编写的操作系统会非常慢。所以我的问题是:随着处理器速度的不断提高,特定语言的执行速度在操作系统开发中是否变得不那么重要了?将来是否有可能仅用 Python 编写一个操作系统,其运行速度几乎与用 C 编写的操作系统相同?谢谢你。

4

2 回答 2

4

一般问题

仅用 Python 编写操作系统是不可能的,因为 Python 不是自托管的。

像 gcc 这样的 C 编译器具有特殊的“独立”模式,专为操作系统开发(和其他相关任务)而设计,其中的功能printf不可用(因为您必须使用汇编程序自己实现它们)。

在 Python 中,类似的函数print是内置的(不能只是删除),如果您没有操作系统,那么它们将如何实现?

最后,即使您可以禁用依赖于操作系统的所有 Python 部分,您仍然无法控制 CPU。要启用分页和中断等功能,需要特殊的汇编指令,Python 无法生成这些指令。此外,您需要将东西放在内存中的特定位置,而 Python 没有原始指针。

这个页面有很多关于使用非 C 语言进行 OS 开发的有用信息。

速度

你是对的,Python 只是比 C 慢的一个常数因素。你可以看到,在 OS 开发以外的许多领域,随着 CPU 变得更快,动态语言变得越来越流行。

操作系统开发也不例外,因此您实际上会发现许多实际示例,其中 Python 正在替换通常用 C 编写的操作系统的一部分。一个示例是fusepy,它允许您在 Python 中实现文件系统。

于 2013-05-31T09:14:07.730 回答
1

不。想一想:如果对于以 X 速度运行的处理器而言,Python 比 C 慢,那么对于以 2X 速度运行的处理器而言,Python 与 C 的速度有何不同?

但是……你可以用动态语言编写操作系统。人们会这样做。一旦你引导解释器。但这不会成为主流。至少不会很快。因为:主流操作系统已经……嗯……主流。人们希望在他们的新处理器中使用所有这些处理能力来......嗯......处理东西。而不是为……嗯……处理东西提供基础。

于 2013-05-31T09:17:00.353 回答