2013-01-21 80 views
3

如何開始編寫在arm架構上運行的操作系統?如果可能的話,我想寫一個引導程序和我自己的內核。任何人都可以幫助我開始嗎?爲arm架構編寫操作系統

+4

如果您有與編程相關的具體和可回答的問題,您應該以* some *方式開始,然後在本網站上發帖。祝你的操作系統順利! – dasblinkenlight

+1

另請參閱[如何開始爲ARM處理器編寫我自己的移動操作系統?](http://stackoverflow.com/questions/9954184/how-can-i-get-started-on-writing-my-own -mobile-os-for-arm-processors) – Justin

回答

6

我會先熟悉一下已經存在的東西 - Linux是一個好的開始。查看rPi發行版中使用的引導程序 - 例如,在Debian Squeeze中使用的是uBootBareBox。另一種選擇是CFE - 它在BSD許可下,在調試/早期開發期間很好。

另一件事就是看看ucLinux和ucLibC系統,以及buildroot和OpenWRT--所有這些都是爲了將​​其擠壓到一個小型系統上而設計的。當然 - 構建你自己的內核 - 你會想要深入得多 - 花費時間理解MMU的,流程管理/多任務處理,中斷等等。編程微控制器的良好背景知識,彙編語言和CPU/SOC架構知識將是必不可少的。有了ARM系列,您將需要了解支持的各種指令集,以及哪些芯片具有MMU,FPU和類似功能。

祝你好運 - 這聽起來像一個有趣的項目。

+2

Grub可能是一個非常糟糕的地方,因爲它是一個x86引導加載程序,圍繞着大腦死亡,現在非常過時(但仍然使用)的PC體系結構預引導環境和BIOS。它的很大一部分與ARM SoC系統無關。 [uBoot](http://www.denx.de/wiki/U-Boot)和[Barebox](http://barebox.org)是ARM引導加載程序 - 後者更具可破解性。順便提一句,任何ARM設備上都沒有微碼。 – marko

+0

感謝Marco的糾正。我會將更正編輯爲答案 - 我知道Grub和Lilo,以及一些我不打算透露的內部引導程序。至少起點已經導致了一些討論。 –

+0

如果他們構建在x86平臺上,GRUB和Multiboot標準是最好的選擇,但對於ARM來說,uBoot和Barebox是很好的建議。 – Linuxios