如何開發(fā)一個(gè)自己的移動(dòng)OS
一位獨(dú)立開發(fā)者Gusc準(zhǔn)備開發(fā)自己的系統(tǒng)了,但是今天他準(zhǔn)備分享一下具體怎樣開發(fā)的步驟。
對(duì)于初學(xué)者來說,就是讓你的代碼成功在CPU上運(yùn)行,且不需要任何底層操作系統(tǒng),但首先你得有個(gè)計(jì)劃:
一. 計(jì)劃
1. 瞄準(zhǔn)現(xiàn)代架構(gòu),Intel 64,比如Ivy Bridge, 酷睿3rd i5 CPU 集成Intel HD 4000 GPU 以及 B75 Express芯片組
2. 避免遺留數(shù)據(jù),盡快的刪除它們,甚至可以跳過保護(hù)模式而直接進(jìn)入長(zhǎng)模式
3. 盡快跳到C語(yǔ)言
4. 忘掉舊PCI、IDE、PS/2、串行/并行端口;也忘掉BIOS( Basic Input Output System)、UEFI,我自己準(zhǔn)備瞄準(zhǔn)PCIe, SATA, USB
5. 避免使用GRUB或任何其他multiboot引導(dǎo)裝載程序,一切以C代碼為唯一執(zhí)行代碼
二. 更詳盡的一些計(jì)劃
1. 使用C、C++和一些流行的腳本語(yǔ)言(Python 或 interpreted C):C作為內(nèi)核和核心路徑語(yǔ)言;C++ 作為GUI的語(yǔ)言;用戶空間使用腳本語(yǔ)言,沒有編譯,也能深度集成到操作系統(tǒng),可讓編寫應(yīng)用程序更加容易
2. 模式驅(qū)動(dòng)程序基于URI,例如:file://localhost/my documents/ or just /my documents/ in the file browser
3. 不用Unix目錄樹,這個(gè)不能告訴用戶什么東西,比如我第一次使用/ etc并不知道它是是存儲(chǔ)配置文件的意思,也分不清 /bin, /usr/bin以及 /usr/local/bin 的意思。而是簡(jiǎn)單的:
/applications –安裝用戶空間應(yīng)用程序
/configuration – 保存所有用戶空間配置文件
/documents – 保存用戶所有的文件
/system – 這是系統(tǒng)目錄 – 這個(gè)目錄除了驅(qū)動(dòng)和內(nèi)核不能被任何人訪問等等
4. 對(duì)于創(chuàng)建API我有自己的一些想法, 不用POSIX,它只是API上的一個(gè)抽象層
5. 從一開始使用GUI,命令BIOS顯示一個(gè)可愛的logo并試圖避免任何閃爍
三. 從我個(gè)人的研究我所發(fā)現(xiàn)的事情是
1. 啟動(dòng)順序:BIOS、Master Boot Record (MBR)、Bootloader、內(nèi)核
2. 在Windows上, 如何編寫自己的MBR并將它寫到磁盤上。我已經(jīng)用Visual C + +寫了小實(shí)用程序,允許直接從磁盤讀/寫
3. 如何用Visual Studio編寫功能
四. 有用的工具
1. Visual C++ 2010 Express Edition ——我自己用的XP,所以沒用VS2012 Express
2. Netwide Assembler
3. Bochs——x86模擬器, 所以你不需要寫入磁盤, 連接、啟動(dòng)、看到錯(cuò)誤, 關(guān)閉,重寫你的內(nèi)核, 寫入磁盤
4. Cygwin—Windows Unix 工具