<分区>
我有一个问题一直在我脑海中盘旋。我知道像 C 这样的语言比 Python 快,因此用于编写操作系统。我在某处读到,用 Python 编写的操作系统会非常慢。所以这是我的问题: 随着处理器速度的不断提高,特定语言的执行速度是否在操作系统开发中变得越来越不重要?将来是否有可能只用 Python 编写一个操作系统,其运行速度几乎与用 C 编写的操作系统相同?谢谢。
标签 python
<分区>
我有一个问题一直在我脑海中盘旋。我知道像 C 这样的语言比 Python 快,因此用于编写操作系统。我在某处读到,用 Python 编写的操作系统会非常慢。所以这是我的问题: 随着处理器速度的不断提高,特定语言的执行速度是否在操作系统开发中变得越来越不重要?将来是否有可能只用 Python 编写一个操作系统,其运行速度几乎与用 C 编写的操作系统相同?谢谢。
最佳答案
一般问题
不可能单独用 Python 编写操作系统,因为 Python 不是自托管的。
像 gcc 这样的 C 编译器有特殊的“独立”模式,专为操作系统开发(和其他相关任务)而设计,其中像 printf
这样的函数不可用(因为你必须自己使用汇编器)。
在 Python 中,像 print
这样的函数是内置的(并且不能直接删除),如果您没有操作系统,那么它们将如何实现?
最后,即使您可以禁用依赖于操作系统的 Python 的所有部分,您仍然无法控制 CPU。要启用分页和中断之类的功能,需要特殊的汇编程序指令,而 Python 无法生成这些指令。此外,您需要将事物放置在内存中的特定位置,而 Python 没有原始指针。
This page有很多关于使用 C 以外的语言进行操作系统开发的有用信息。
速度
你说得对,Python 只是比 C 慢一个常数。你可以看到,在操作系统开发以外的许多领域,随着 CPU 变得更快,动态语言正变得越来越流行。
操作系统开发也不异常(exception),因此您实际上会发现许多真实的例子,其中 Python 正在取代通常用 C 编写的操作系统部分。一个例子是 fusepy ,它允许您在 Python 中实现文件系统。
关于Python在操作系统开发中的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16853789/