2012-06-05 149 views
15

是否有可能使簡約使用Python的操作系統?
我真的不想進入像裝配這樣的低級代碼,所以我想用一個簡單的
像Perl或Python這樣的語言。但是如何?是否可以使用Python創建操作系統?

+0

你希望實現什麼? – NPE

+2

https:// launchpad。net/pycorn – pyfunc

+2

不是沒有組裝或C被使用_somewhere_ - 甚至pycorn也有用於引導代碼的程序集。中斷處理程序,同樣。 –

回答

24

不幸的是Python被歸類爲very high level programming language。例如,它不能用於直接訪問硬件並執行低級別的數據結構操作。它完全依賴於從中抽象硬件的東西,那就是內核。然而,在技術上可以創建一個以Python爲中心的操作系統,也就是說,在C和彙編中只有非常低級別的東西,並且大部分其餘的操作系統都是用Python編寫的。

This article更詳細地討論了什麼語言適合於編寫操作系統內核。

+4

好文章。最好的引用是:_除C以外的許多語言都需要大量的Assembly和C開發,以便提供適當的運行時環境來支持語言的抽象。 – C2H5OH

1

我建議你找一本關於操作系統設計的好教材,並研究一下。我很肯定你不會在Python源代碼中找到這樣一本書; C更可能。 (你可能會發現一個使用Pascal而不是C的較舊的教科書,但實際上並沒有那麼不同)。

一旦你研究了足夠的操作系統設計以便能夠編寫操作系統,那麼你就足夠了解你自己的意見什麼語言將是適合的。

3

我已經移植Python解釋器作爲用戶空間程序在我的操作系統中運行,這是我移植的第一個程序 - 迄今爲止唯一的一個程序;從這個經驗中,我會說它肯定有可能在Python中編寫大量的操作系統功能;您甚至可以將Python嵌入到內核中,而只需極少的功能支持。

然而你需要編寫彙編和C爲中斷,低級別的內存管理等等。就我而言,我構建了一個針對Newlib C庫的特別修改的Python 2.5.2;在最小的情況下,您只需要爲Newlib庫提供堆內存管理,並且可以讓Python在其上運行。因此,Python解釋器不包含自己的堆實現,它依賴於C庫,所以你不能在裸機上立即運行它,但是不能像傳統編寫的那樣在操作系統內核中運行更多的操作系統內核,也可以用Python編寫。

當然的特例是微內核,其中許多功能在用戶空間中作爲服務;這些可以更自然地用任何優選的編程語言實現,包括Python。

6

你當然可以在沒有操作系統的情況下運行Python,如The Intel BIOS Implementation Test Suite (BITS) Project所示。 scripting guide解釋如下:

「...包括Python API以訪問硬件平臺的各種低級功能,包括ACPI,CPU和芯片組寄存器,PCI和PCI Express。平臺功能,使用Python的全功率的32位環0,而不在路上的OS。「

現在,BITS是一個特定BIOS測試平臺,英特爾的硬件,而不是意味着運行自定義基於Python的操作系統,但這並不意味着你不能嘗試它...

相關問題