1、開始之前學會編程。集成語言是必須的。另一種補充的低級語言,如C語言也是強力推薦的。
2、選擇你想把你的操作系統搭載到什么媒體。可以是CD驅動、DVD驅動、閃盤驅動、硬盤驅動,或是另一臺電腦驅動。
3、決定你想讓你的操作系統干什么。是否整個操作系統都配有圖形用戶界面(GUI)或是更加動漫式的。開始之前你需要了解你做的是哪個方向。
4、選擇你的操作系統支持哪種處理器平臺。 AI-32 和x86_64 是最常用的個人電腦平臺,你最好選擇它們。
5、選擇是否由自己從頭做起,還是按照現有的核心自己往上建立。比如,Linux核心就是設計給那些想要在其之上建立他們自己的Linux版本的人的。
6、選擇是否要使用自己的引導裝載程序或做一個預創建的程序,比如統一引導裝載程序 (GRUB)。由于編寫你的引導裝載程序需要擴展對硬件和BIOS的知識,因此要把它推到實際的核心編程之后。
7、決定用哪種程序語言。盡管用如Pascal或BASIC語言也可以創建操作系統,但你最好還是用C語言或集成語言。集成語言絕對是必須的,操作系統至關重要的部分需要它。另一方面,C++語言也是關鍵的,但它需要完整的操作系統來運行。要用C或C++代碼編寫操作系統,當然,你需要使用一個編譯程序。因此,不論這些指南是軟件附帶的,還是可以從經銷商的網上下載,你都應該閱讀用戶指南/手冊/文檔,來選擇你的C/C++編譯程序。你也需要了解關于編譯程序的很多復雜問題,對于C++,你應該了解編譯程序的識別編碼模式和它的ABI。你需要懂多種可執行的格式(ELF、PE、COFF、純二進制等等,并且要懂得Windows專有的格式,PE (.exe)是受版權保護的。
8、選擇你的應用程序界面(API)。一個好的API選擇就是POSIX,因為它已經編譯好了。所有的Unix系統都部分支持POSIX,因此,把Unix程序植入你的操作系統并不重要。
9、決定你的設計。有單片核心和微核心可供選擇。單片核心可執行核心上的一切服務,而微核心是一個小的核心,其結合了用戶后臺進程,進程可以執行服務。通常而言,單片核心更快,但是微核心故障隔離和可靠性更好。
10、考慮用團隊發展和工作。這種方式可以花更少的時間解決更多的問題,而且可以更快造出更好的操作系統。br>
11、不要完全擦除你的硬盤。記住,擦除你的硬盤會永久清除你的所有數據!用GRUB或其他啟動管理器來用另一個操作系統做雙啟動系統,直到你自己的操作系統完全可以用了。
12、從小地方開始。在進行內存管理和多進程任務之前,從小地方開始,如現實文本和中斷。
13、保存最新工作源的備份。這樣可以預防你當前的操作系統版本或是你當前的工作出問題。如果你的電腦死機且無法啟動了,用副本進行工作是個好主意,這樣就可以排除故障了。
14、考慮用虛擬機測試你的新操作系統。不要每次做出修改后就重啟電腦,而是要把文件從你的電腦傳輸到虛擬機上,你可以用虛擬機應用來運行你的操作系統,同時當前的操作系統也是運行的。VM應用包括VMWare (它也有一個免費使用的服務器產品),另一個開源的選擇就是Bochs,微軟虛擬PC(不能與Linux兼容),還有xVM VirtualBox。
15、發布一個"候補版本",這樣可以讓用戶報告給你操作系統的潛在問題。
16、一個操作系統可以是用戶友好型的,因此增添一點用戶友好特點,把這些整合進你的設計。
所有的建構都完成后,選擇你是否需要發布代碼為開源代碼,還是保留專利。
不要為了學習編程而開始做一個操作系統。如果你還不了解C、C++、Pascal或某些其他適合的語言,包括指示器處理,低級字節處理,字節轉換,內聯集成語言等,那么你還沒有準備好建立操作系統。
使用網頁,比如OSDev 和OSDever可以幫助你建立自己的操作系統。請記住,OSDev.org社區更傾向于讓你使用他們的wiki,而不是加入其論壇。如果你決定加入論壇,這有一些預 備知識:你需要精通C或C++,還有x86集成語言。你也要了解一般的和復雜的程序概念,如Linked Lists、Queues等等。 OSDev社區按照其規則明確表示,此論壇不適合那些臨時程序員。如果你想構建一個操作系統,也并不是非得要求你是個編程大神。但你也需要閱讀你所選的處理器體系結構的處理器手冊。不論是x86(因特爾)、ARM、MIPS還是PPC等等。處理器體系手冊很容易用谷歌搜索引擎找到(“因特爾手冊”,“ARM手冊”等等)。不要加入OSDev.org論壇問一些很簡單的問題。通常的回答就是“去閱讀他媽的手冊”。你應該去閱讀維基百科,里面還有你想使用的多種工具手冊。
如果你想做得簡單,考慮下Linux 版本,比如Fedora Revisor、Custom Nimble X、Puppy Remaster、PCLinuxOS mklivecd或SUSE Studio 和SUSE KIWI。然而,你創建的操作系統屬于提供服務器的公司(盡管你有權力免費發布,并按照你想的在GPL下修改、運行系統)。
檢查潛在的問題和其他漏洞。這些都會影響你的操作系統設計。
建立一個新的分區用于編寫操作系統是個好選擇。
粗心大意地把操作系統寫入硬盤可能導致硬盤完全崩潰。小心。
不要期待一個合適的操作系統很容易建立。有很多相互依賴的復雜問題。比如說,要做一個操作系統,需要處理多種處理器,你的內存管理器必須要“鎖定”機器,防止多進程處理器從同樣資源同時進入。用于此的“鎖定”需要在進程表中出現,從而確保在任何一個時刻都只有一個進程進入關鍵資源,而其他進程則在等待。但是進程表取決于一個內存管理器。這就是死機的一種情況。沒有什么標準方法來解決這類問題;每一個操作系統程序都需要足夠的技術來解決它的問題。
如果你做了一些沒頭腦的事情,比如把隨機字節寫入了隨機I/O接口,你就會使得系統死機,而且可能(理論上)燒掉你的硬盤。
引導裝載程序: GRUB
虛擬機應用: Bochs、VM Ware、XM Virtual Box
處理器手冊: Intel manuals
操作系統建立網站: OSDev、OSDever
一個用來建構結構體系的CPU
對于虛擬機器的足夠的內存(RAM)
一個“主”操作系統(在匯編源代碼的最初階段,用來建構源代碼并打包程序,最終你自己的操作系統將成為主系統)
句法潤飾代碼編輯器(如果你沒有集成發展環境,就用它)
一個編譯程序
一個CD/DVD 驅動
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com