是否有可能使簡約使用Python的操作系統?
我真的不想進入像裝配這樣的低級代碼,所以我想用一個簡單的
像Perl或Python這樣的語言。但是如何?是否可以使用Python創建操作系統?
回答
不幸的是Python被歸類爲very high level programming language。例如,它不能用於直接訪問硬件並執行低級別的數據結構操作。它完全依賴於從中抽象硬件的東西,那就是內核。然而,在技術上可以創建一個以Python爲中心的操作系統,也就是說,在C和彙編中只有非常低級別的東西,並且大部分其餘的操作系統都是用Python編寫的。
This article更詳細地討論了什麼語言適合於編寫操作系統內核。
好文章。最好的引用是:_除C以外的許多語言都需要大量的Assembly和C開發,以便提供適當的運行時環境來支持語言的抽象。 – C2H5OH
我建議你找一本關於操作系統設計的好教材,並研究一下。我很肯定你不會在Python源代碼中找到這樣一本書; C更可能。 (你可能會發現一個使用Pascal而不是C的較舊的教科書,但實際上並沒有那麼不同)。
一旦你研究了足夠的操作系統設計以便能夠編寫操作系統,那麼你就足夠了解你自己的意見什麼語言將是適合的。
我已經移植Python解釋器作爲用戶空間程序在我的操作系統中運行,這是我移植的第一個程序 - 迄今爲止唯一的一個程序;從這個經驗中,我會說它肯定有可能在Python中編寫大量的操作系統功能;您甚至可以將Python嵌入到內核中,而只需極少的功能支持。
然而你需要編寫彙編和C爲中斷,低級別的內存管理等等。就我而言,我構建了一個針對Newlib C庫的特別修改的Python 2.5.2;在最小的情況下,您只需要爲Newlib庫提供堆內存管理,並且可以讓Python在其上運行。因此,Python解釋器不包含自己的堆實現,它依賴於C庫,所以你不能在裸機上立即運行它,但是不能像傳統編寫的那樣在操作系統內核中運行更多的操作系統內核,也可以用Python編寫。
當然的特例是微內核,其中許多功能在用戶空間中作爲服務;這些可以更自然地用任何優選的編程語言實現,包括Python。
你當然可以在沒有操作系統的情況下運行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的操作系統,但這並不意味着你不能嘗試它...
- 1. 是否可以製作使用VB.NET的操作系統?
- 2. 是否可以使用Cosmos開發移動操作系統?
- 3. 是否有可能使用操作系統線程創建自己的線程?
- 4. 創建操作系統
- 5. libumem是否僅在Solaris操作系統或其他操作系統中可用?
- 6. 是否有可能使用java製作操作系統?
- 7. 是否可以使用NMAP來查找使用MAC地址的操作系統
- 8. 是否可以創建一個可以運行所有應用程序的操作系統?
- 9. 是否必須使用Windows 10操作系統創建通用應用程序?
- 10. 是否可以爲手機編寫操作系統?
- 11. 是否可以檢測Haxe中的當前操作系統?
- 12. 什麼Python方法可以在任何操作系統上創建文件?
- 13. 我可以使用c編程語言創建我自己的操作系統
- 14. 是否可以跨虛擬機,JDK和操作系統使用String.hashCode()?
- 15. 是否可以使用Java獲取遠程主機的操作系統類型?
- 16. 是否可以在64位操作系統中使用32位STS?
- 17. 是否可以使用Tokenizer來統計操作碼的數量?
- 18. 是否可以在.NET中創建郵件系統?
- 19. 是否可以操作使用jQuery
- 20. 爲手機創建linux操作系統
- 21. 操作系統 - 一般進程創建
- 22. 是否可以使用javascript在本地系統中創建並打開文件?
- 23. 網站是否依賴操作系統?
- 24. 是否有宏檢測操作系統...?
- 25. 檢查操作系統是否爲Solaris
- 26. Android是否有「主機」操作系統?
- 27. 確定操作系統是否爲Mac
- 28. 是否可以創建可在Chrome操作系統上運行的二進制擴展?
- 29. Python CPU和操作系統
- 30. Python操作系統命令
你希望實現什麼? – NPE
https:// launchpad。net/pycorn – pyfunc
不是沒有組裝或C被使用_somewhere_ - 甚至pycorn也有用於引導代碼的程序集。中斷處理程序,同樣。 –