为arm架构编写操作系统

4

我该如何开始编写基于ARM架构运行的操作系统?如果可能,我想编写一个引导程序和自己的内核。有人可以帮助我入门吗?


5
你应该以某种方式开始,然后如果你有关于编程的具体、可回答的问题,请在这个网站上发布。祝你的操作系统好运! - Sergey Kalinichenko
1个回答

7
我建议您先了解已有的内容,Linux是一个不错的开始。看一下rPi发行版中使用的引导加载程序——例如Debian Squeeze中使用的uBootBareBox。另一个选择是CFE,它在调试/早期开发期间很好用且具有BSD许可证。
另一个要考虑的是ucLinux和ucLibC系统,以及buildroot和OpenWRT,这些都是为了将其压缩到小型系统中而设计的。
当然,如果要构建自己的内核,您需要更深入地了解MMU、进程管理/多任务、中断等方面。熟练掌握微控制器编程、汇编语言和CPU/SOC架构的知识至关重要。对于ARM系列,您需要了解支持的各种指令集,以及哪些芯片具有类似MMU、FPU等功能。
祝您好运,这听起来是一个有趣的项目。

2
Grub 可能不是一个好的起点,因为它是围绕着脑残且现在非常过时(但仍在使用)的 PC 架构预启动环境和 BIOS 构建的 x86 引导程序。它的很大一部分与 ARM SoC 系统无关。uBootBarebox 是 ARM 引导程序,后者更易于黑客攻击。顺便说一下,任何 ARM 设备上都没有微码。 - marko
感谢您的纠正,Marco。我会将更正内容编辑到答案中 - 我知道Grub和Lilo,还有一些我不打算透露的内部引导程序。至少这个起点已经引发了一些讨论。 - Danny Staple
如果他们正在构建x86平台,那么GRUB和Multiboot标准是最佳选择,但对于ARM平台,uBoot和Barebox是不错的建议。 - Linuxios

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接