是否可以使用Python制作 minimalistic 操作系统?
我真的不想进入像汇编这样的低级代码,所以我想使用一个简单的
像Perl或Python这样的语言。但是如何?
答案 0 :(得分:32)
不幸的是,Python被归类为very high level programming language。例如,它不能用于直接访问硬件和执行低级数据结构操作。它完全依赖于从中抽象硬件的东西,那就是内核。但是,在技术上可以创建一个以Python为中心的操作系统,即:只有非常低级别的东西用C和汇编编写,并且大部分操作系统都是用Python编写的。
This article更详细地讨论了哪些语言适合编写操作系统内核。
答案 1 :(得分:10)
你可以在没有操作系统的情况下运行Python,如The Intel BIOS Implementation Test Suite (BITS) Project所示。 scripting guide解释说:
“...包括Python API,用于访问硬件平台的各种低级功能,包括ACPI,CPU和芯片组寄存器,PCI和PCI Express。您可以编写脚本来探索和测试平台功能,在32位环0中使用Python的全部功能,没有操作系统。“
现在,BITS是一个专门针对英特尔硬件的BIOS测试平台,并不打算运行基于Python的自定义操作系统,但这并不意味着你无法尝试...
答案 2 :(得分:8)
我已将Python解释器移植到我的操作系统中作为用户空间程序运行,它是我移植的第一个程序 - 也是迄今为止唯一的程序;从这次经历来看,我说它肯定可以在Python中编写大量的操作系统功能;你甚至可以在内核中嵌入Python,只需要很少的功能支持。
但是你需要为中断,低级内存管理等编写汇编和C语言。在我的例子中,我针对Newlib C库构建了一个经过特殊修改的Python 2.5.2;在最小的情况下,您只需要为Newlib库提供堆内存管理,并且可以在其上运行Python。
因此,Python解释器不包含自己的堆实现,并且它确实依赖于C库,因此您不能立即在裸机上运行它,但是通常编写的操作系统内核可能更多,也可以用Python编写。
当然,特殊情况是微内核,其中许多功能在用户空间中作为服务;这些可以更自然地用任何首选的编程语言实现,包括Python。
答案 3 :(得分:5)
我建议你找一本关于操作系统设计的好教材,并研究一下。我很确定你不会找到这样一本包含Python源代码的书; C更有可能。 (您可能会发现一个使用Pascal而不是C的旧教科书,但实际上并没有那么不同。)
一旦你学习了足够的操作系统设计以便能够编写操作系统,你就会对自己的语言有足够的了解。