什麼是使用C++創建我自己的操作系統的方法。我已經創建了引導裝載程序(使用nasm,qemu),但是我不知道向該引導裝載程序添加內核。使用C++編寫操作系統
回答
這裏有一個ton of information,你最終會需要,可怕的OS編程常見問題解答。
你可以考慮看MINIX這是一個小型的操作系統爲x86系統。它最初是作爲一個教學項目而設計的,並且已經演變成旨在在現實世界中有用的東西。
你可以看看MINIX 3的源代碼。它是一個非常簡單的操作系統,其目的是瞭解操作系統如何工作。
你也可以學習關於操作系統的所有的Tanenbaum的書。他們都非常完整,我記得有一本書有附加minix的完整源代碼,並提出了評論
我不熟悉細節,但據我所知BeOS是用C++編寫的。資料來源應該是免費的,以及文件。
對於內核,你可以看看http://newos.org/(寫一個前Be員工*和*使用http://haiku-os.org/他們是克隆)。 – 2010-01-27 10:17:39
如果您有任何問題,請嘗試我們的http://forums.osdever.net – Brenden 2011-08-24 19:05:49
小心,C++是一個操作系統內核相當重量級的。
- 有像服務異常,你將不得不支持運行時庫。
- 直到你添加一個堆,它纔會感覺像C++。
- 內核對分配對象的位置非常敏感;通常在C++中使用的單堆模型並不適合。
- 將API耦合到數據結構是一個壞主意。 BeOS有這個問題。你需要隱藏用戶內部結構的大小,這意味着當API是成員函數時,跳過圈套(Pimpl,私有構造函數,虛函數)。
這聽起來像你已經比大多數人更進一步,所以不斷問問題,你可能會結束在一個很好的地方! :vD
可以在L4的頂部開發一個可用的操作系統,即使一個學期的單個學生連同其他課程(但所有驅動程序問題已經解決)都可以開發。如果發現這是一個偉大的冒險,並且L4微內核也是先進的。
- 1. 如何編寫操作系統
- 2. 編寫定製的Android操作系統
- 3. 操作系統如何引入C語言來編寫內核
- 4. 確定從32位操作系統或64位操作系統C/C++應用
- 5. C#for 64bit操作系統?
- 6. uart與linux和用戶編寫的操作系統的問題
- 7. 用C++編寫插件系統
- 8. 從C調用操作系統設置#
- 9. 操作系統
- 10. 是否可以爲手機編寫操作系統?
- 11. 在32位操作系統上是否使用Vista 64編寫代碼?
- 12. 如何編程操作系統?
- 13. iPhone操作系統/ SDK編程信息
- 14. 操作系統的編譯時間
- 15. FASM操作系統
- 16. Linux操作系統
- 17. 操作系統 - TLB
- 18. 是否可以在C中完全編寫一個操作系統?
- 19. 如何將文本添加到用匯編編寫的操作系統
- 20. 使用TDD/BDD開發操作系統
- 21. 不使用WMI獲取操作系統
- 22. AWS RDS使用的操作系統
- 23. 使用Qt時,我是否必須在特定的操作系統上編譯特定的操作系統?
- 24. C++檢測操作系統版本
- 25. C#操作系統安裝目錄
- 26. 電腦操作系統不能使用fs登錄系統API
- 27. Android操作系統更新系統
- 28. 預定義爲iPhone操作系統和Mac操作系統
- 29. jQuery - 檢測操作系統和操作系統版本
- 30. 開放源代碼雲操作系統/操作系統架構
我認爲這實際上是一個很好的,建設性的問題。 – Renra 2014-05-13 15:48:37
也許它的性質很廣泛,但它肯定給我提供了很好的線索來探索 – Renra 2014-05-13 15:55:10
有沒有愚蠢的問題,只有愚蠢的人。 – SasQ 2015-01-29 17:31:30