是否可以使用Python创建操作系统?

Nav*_*web 25 python operating-system

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

Dou*_*gvj 38

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

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

  • 好文章.它的最佳引用是:_在C以外的许多语言中,为了提供支持语言抽象的适当运行时环境,需要进行大量的汇编和C开发. (8认同)

gen*_*ens 12

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

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

现在,BITS是一个专门针对英特尔硬件的BIOS测试平台,并不打算运行基于Python的自定义操作系统,但这并不意味着你无法尝试...


Ant*_*ala 9

我已经将Python解释器移植到我的操作系统中作为用户空间程序运行,这是我移植的第一个程序 - 也是迄今为止唯一的程序.根据这一经验,我认为在Python中编写大量的操作系统功能肯定是可能的; 你甚至可以在内核中嵌入Python,只需要很少的功能支持.

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

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

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


ste*_*eha 7

我建议您找到一本有关操作系统设计的好教科书,并进行研究。我敢肯定,您不会找到包含Python源代码的书籍。C更有可能。(您可能会发现使用Pascal而不是C的旧版教科书,但实际上并没有什么不同。)

一旦您对操作系统的设计进行了足够的研究以实际能够编写一个操作系统,您将足够了解如何使用哪种语言。