37

是否可以使用 Python 制作一个简约的操作系统?
我真的不想进入像汇编这样的低级代码,所以我想使用
像 Perl 或 Python 这样的简单语言。但是怎么做?

4

4 回答 4

52

不幸的是,Python 被归类为一种非常高级的编程语言。例如,它不能用于直接访问硬件和执行低级数据结构操作。它完全依赖于某种东西来从中抽象出硬件,那就是内核。但是,从技术上讲,创建一个以 Python 为中心的操作系统是可行的,即;只有非常低级的东西是用 C 和汇编编写的,而操作系统的其余大部分都是用 Python 编写的。

本文更详细地讨论了哪些语言适合编写操作系统内核。

于 2012-06-05T21:02:42.927 回答
22

您当然可以在没有操作系统的情况下运行 Python,如英特尔 BIOS 实施测试套件 (BITS) 项目所示。脚本指南解释:

“... 包括用于访问硬件平台的各种低级功能的 Python API,包括 ACPI、CPU 和芯片组寄存器、PCI 和 PCI Express。您可以编写脚本来探索和测试平台功能,使用 Python 的全部功能在 32 位环 0 中,没有操作系统的方式.."

现在,BITS 是一个特定于英特尔硬件的 BIOS 测试平台,并不意味着运行基于 Python 的定制操作系统,但这并不意味着你不能尝试它......

于 2015-04-15T16:40:50.367 回答
15

我已经移植了 Python 解释器作为用户空间程序在我的操作系统中运行,它是我移植的第一个程序——也是迄今为止唯一的一个程序;从这个经验来看,我认为用 Python 编写很多操作系统功能肯定是可能的;当然,您甚至可以将 Python 嵌入内核中,而只需极少的功能支持。

但是,您需要为中断、低级内存管理等编写程序集和 C。就我而言,我针对Newlib C 库构建了一个经过特殊修改的 Python 2.5.2;在最小的情况下,您只需要为 Newlib 库提供堆内存管理,并且可以在其上运行 Python。

因此,Python 解释器不包含它自己的堆实现,并且它确实依赖于 C 库,因此您不能立即在裸机上运行它,但是按照惯例编写的更多操作系统内核也可以是用 Python 编写。

特殊情况当然是微内核,其中大部分功能都在用户空间中作为服务。这些可以更自然地用任何首选的编程语言实现,包括 Python。

于 2014-06-22T09:46:13.620 回答
11

我建议你找一本关于操作系统设计的好教科书,然后学习。我很确定你不会找到这样一本包含 Python 源代码的书。C 的可能性更大。(您可能会发现一本使用 Pascal 而不是 C 的旧教科书,但实际上并没有那么不同。)

一旦你对操作系统设计的研究足以真正能够编写操作系统,你就会知道足够多的知识,对哪些语言适合你有自己的看法。

于 2012-06-05T21:34:05.607 回答