2013-01-21 82 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