是否可以使用 Python 制作一个简约的操作系统?
我真的不想进入像汇编这样的低级代码,所以我想使用
像 Perl 或 Python 这样的简单语言。但是怎么做?
4 回答
您当然可以在没有操作系统的情况下运行 Python,如英特尔 BIOS 实施测试套件 (BITS) 项目所示。脚本指南解释:
“... 包括用于访问硬件平台的各种低级功能的 Python API,包括 ACPI、CPU 和芯片组寄存器、PCI 和 PCI Express。您可以编写脚本来探索和测试平台功能,使用 Python 的全部功能在 32 位环 0 中,没有操作系统的方式.."
现在,BITS 是一个特定于英特尔硬件的 BIOS 测试平台,并不意味着运行基于 Python 的定制操作系统,但这并不意味着你不能尝试它......
我已经移植了 Python 解释器作为用户空间程序在我的操作系统中运行,它是我移植的第一个程序——也是迄今为止唯一的一个程序;从这个经验来看,我认为用 Python 编写很多操作系统功能肯定是可能的;当然,您甚至可以将 Python 嵌入内核中,而只需极少的功能支持。
但是,您需要为中断、低级内存管理等编写程序集和 C。就我而言,我针对Newlib C 库构建了一个经过特殊修改的 Python 2.5.2;在最小的情况下,您只需要为 Newlib 库提供堆内存管理,并且可以在其上运行 Python。
因此,Python 解释器不包含它自己的堆实现,并且它确实依赖于 C 库,因此您不能立即在裸机上运行它,但是按照惯例编写的更多操作系统内核也可以是用 Python 编写。
特殊情况当然是微内核,其中大部分功能都在用户空间中作为服务。这些可以更自然地用任何首选的编程语言实现,包括 Python。
我建议你找一本关于操作系统设计的好教科书,然后学习。我很确定你不会找到这样一本包含 Python 源代码的书。C 的可能性更大。(您可能会发现一本使用 Pascal 而不是 C 的旧教科书,但实际上并没有那么不同。)
一旦你对操作系统设计的研究足以真正能够编写操作系统,你就会知道足够多的知识,对哪些语言适合你有自己的看法。