什麼是使用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. 用UEFI編寫操作系統
- 2. 爲arm架構編寫操作系統
- 3. 如何編寫操作系統
- 4. 編寫定製的Android操作系統
- 5. 關於編寫操作系統
- 6. 使用c#獲取操作系統#
- 7. 操作系統如何引入C語言來編寫內核
- 8. 確定從32位操作系統或64位操作系統C/C++應用
- 9. C#for 64bit操作系統?
- 10. 移動操作系統及其編寫的編程語言
- 11. uart與linux和用戶編寫的操作系統的問題
- 12. 用C++編寫插件系統
- 13. 從C調用操作系統設置#
- 14. 操作系統
- 15. C/C++聲音操作系統API
- 16. 用c編程取決於操作系統
- 17. 在64位操作系統上編寫程序時,程序是否會運行在32位操作系統上?
- 18. 是否可以爲手機編寫操作系統?
- 19. 在XC8中編寫調度程序/實時操作系統
- 20. 以解釋語言編寫操作系統
- 21. x86彙編直接寫入VGA簡單操作系統
- 22. 編寫一個基於unix的操作系統
- 23. 我可以在機器代碼中編寫操作系統嗎?
- 24. 在32位操作系統上是否使用Vista 64編寫代碼?
- 25. C++/clrIntelliSense:沒有操作符「+」匹配這些操作數。系統:雙^ +系統:雙^
- 26. 操作系統:編譯器混淆
- 27. 如何編程操作系統?
- 28. 8086無操作系統編程;分割
- 29. 操作系統的編譯時間
- 30. iPhone操作系統/ SDK編程信息
我認爲這實際上是一個很好的,建設性的問題。 – Renra 2014-05-13 15:48:37
也許它的性質很廣泛,但它肯定給我提供了很好的線索來探索 – Renra 2014-05-13 15:55:10
有沒有愚蠢的問題,只有愚蠢的人。 – SasQ 2015-01-29 17:31:30