開心生活站

位置:首頁 > IT科技 > 

如何建立一個電腦操作系統

IT科技5.75K

1、開始之前學會編程。2、選擇你想把你的操作系統搭載到什麼媒體。3、決定你想讓你的操作系統幹什麼。4、選擇你的操作系統支持哪種處理器平臺。5、選擇是否由自己從頭做起,還是按照現有的核心自己往上建立。6、選擇是否要使用自己的引導裝載程序或做一個預創建的程序,比如統一引導裝載程序 (GRUB)。7、決定用哪種程序語言。8、選擇你的應用程序界面(API)。9、決定你的設計。10、考慮用團隊發展和工作。11、不要完全擦除你的硬盤。12、從小地方開始。13、保存最新工作源的備份。14、考慮用虛擬機測試你的新操作系統。15、發佈一個"候補版本",這樣可以讓用戶報告給你操作系統的潛在問題。16、一個操作系統可以是用戶友好型的,因此增添一點用戶友好特點,把這些整合進你的設計。

操作系統就是讓人與電腦硬件進行互動。操作系統是由成百上千條代碼構成的,通常由C、C++和集成程序語言編寫而成。

如何建立一個電腦操作系統

1、開始之前學會編程。集成語言是必須的。另一種補充的低級語言,如C語言也是強力推薦的。

如何建立一個電腦操作系統 第2張

2、選擇你想把你的操作系統搭載到什麼媒體。可以是CD驅動、DVD驅動、閃盤驅動、硬盤驅動,或是另一臺電腦驅動。

如何建立一個電腦操作系統 第3張

3、決定你想讓你的操作系統幹什麼。是否整個操作系統都配有圖形用戶界面(GUI)或是更加動漫式的。開始之前你需要了解你做的是哪個方向。

如何建立一個電腦操作系統 第4張

4、選擇你的操作系統支持哪種處理器平臺。 AI-32 和x86_64 是最常用的個人電腦平臺,你最好選擇它們。

如何建立一個電腦操作系統 第5張

5、選擇是否由自己從頭做起,還是按照現有的核心自己往上建立。比如,Linux核心就是設計給那些想要在其之上建立他們自己的Linux版本的人的。

如何建立一個電腦操作系統 第6張

6、選擇是否要使用自己的引導裝載程序或做一個預創建的程序,比如統一引導裝載程序 (GRUB)。由於編寫你的引導裝載程序需要擴展對硬件和BIOS的知識,因此要把它推到實際的核心編程之後。

如何建立一個電腦操作系統 第7張

7、決定用哪種程序語言。儘管用如Pascal或BASIC語言也可以創建操作系統,但你最好還是用C語言或集成語言。集成語言絕對是必須的,操作系統至關重要的部分需要它。另一方面,C++語言也是關鍵的,但它需要完整的操作系統來運行。要用C或C++代碼編寫操作系統,當然,你需要使用一個編譯程序。因此,不論這些指南是軟件附帶的,還是可以從經銷商的網上下載,你都應該閱讀用戶指南/手冊/文檔,來選擇你的C/C++編譯程序。你也需要了解關於編譯程序的很多複雜問題,對於C++,你應該瞭解編譯程序的識別編碼模式和它的ABI。你需要懂多種可執行的格式(ELF、PE、COFF、純二進制等等,並且要懂得Windows專有的格式,PE (.exe)是受版權保護的。

如何建立一個電腦操作系統 第8張

8、選擇你的應用程序界面(API)。一個好的API選擇就是POSIX,因爲它已經編譯好了。所有的Unix系統都部分支持POSIX,因此,把Unix程序植入你的操作系統並不重要。

如何建立一個電腦操作系統 第9張

9、決定你的設計。有單片核心和微核心可供選擇。單片核心可執行核心上的一切服務,而微核心是一個小的核心,其結合了用戶後臺進程,進程可以執行服務。通常而言,單片核心更快,但是微核心故障隔離和可靠性更好。

如何建立一個電腦操作系統 第10張

10、考慮用團隊發展和工作。這種方式可以花更少的時間解決更多的問題,而且可以更快造出更好的操作系統。br>

如何建立一個電腦操作系統 第11張

11、不要完全擦除你的硬盤。記住,擦除你的硬盤會永久清除你的所有數據!用GRUB或其他啓動管理器來用另一個操作系統做雙啓動系統,直到你自己的操作系統完全可以用了。

如何建立一個電腦操作系統 第12張

12、從小地方開始。在進行內存管理和多進程任務之前,從小地方開始,如現實文本和中斷。

如何建立一個電腦操作系統 第13張

13、保存最新工作源的備份。這樣可以預防你當前的操作系統版本或是你當前的工作出問題。如果你的電腦死機且無法啓動了,用副本進行工作是個好主意,這樣就可以排除故障了。

如何建立一個電腦操作系統 第14張

14、考慮用虛擬機測試你的新操作系統。不要每次做出修改後就重啓電腦,而是要把文件從你的電腦傳輸到虛擬機上,你可以用虛擬機應用來運行你的操作系統,同時當前的操作系統也是運行的。VM應用包括VMWare (它也有一個免費使用的服務器產品),另一個開源的選擇就是Bochs,微軟虛擬PC(不能與Linux兼容),還有xVM VirtualBox。

如何建立一個電腦操作系統 第15張

15、發佈一個"候補版本",這樣可以讓用戶報告給你操作系統的潛在問題。

如何建立一個電腦操作系統 第16張

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接口,你就會使得系統死機,而且可能(理論上)燒掉你的硬盤。

額外的資源

手冊: Linux From Scratch

引導裝載程序: GRUB

虛擬機應用: Bochs、VM Ware、XM Virtual Box

處理器手冊: Intel manuals

操作系統建立網站: OSDev、OSDever

你需要準備

一臺電腦

一個用來建構結構體系的CPU

對於虛擬機器的足夠的內存(RAM)

一個“主”操作系統(在彙編源代碼的最初階段,用來建構源代碼並打包程序,最終你自己的操作系統將成爲主系統)

句法潤飾代碼編輯器(如果你沒有集成發展環境,就用它)

一個編譯程序

一個CD/DVD 驅動