Python在操作系统开发中的速度

标签 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/

相关文章:

python - 日期时间格式不匹配

python - [Python][Tkinter]添加一个标志使标签的前景在循环中变成红色?

python - Redshift 中的长真空

python - 是否可以在 QuerySelectField 中没有默认值,同时在验证中不允许空白?

python - 卷积自动编码器的 Keras valueerror

python - 更改已设置的日志记录 'basicConfig'

python3 将文件的内容写入yaml

python - 无论输入如何,神经网络都会产生相同的输出

python - 在Python中的两个函数之间传递字符串变量

java - 是否可以在一个网站上使用多种编程语言