嵌入式系统 实验报告
一. 选题
我们组的实验题目是:将配制过并且用 Open64 编译过的 linux 操作系统移植到 ebox 中。
这个实验是编译原理实验和嵌入式系统实验的结合。我们的小组成员有三位选了董渊老师的编
译原理专题训练。当时董渊老师对大实验给出了一个提议,用 open64 编译器编译 busybox,并
且和嵌入式系统实验相结合。我们组员感觉这将是一个很好的尝试。另外,在 ebox 平台上运行
linux,网上鲜有现成的案例。我们觉得,虽然 ebox 运行 Embedded WinCE 已经可以满足很多
商业上的需求,但是 linux 有它的许多特点是 WinCE 不具备的。显然最重要的就是它的开源特性,
使得功能的开发变得更加灵活,虽然可能没有 WinCE 容易上手,但是 linux 可以支持更多的 CPU
类型,应用的场合也较多。
新的创意往往可以激发我们的干劲。实验刚一开始,我们就为这个前所未有的挑战而激动万分,
跃跃欲试。我们也很想通过实验,使得我们在学习嵌入式系统新知识的同时,尝试运用编译知识和
巩固以前学过的操作系统知识,以达到使知识融会贯通、学以致用的目的。
在接下来的实验报告中,我们将主要体现嵌入式实验部分的工作。
二. 实验过程
嵌入式 linux 操作系统的三大要素是:bootloader, kernel image 和根文件系统。我们也就按
照这三点要素来总结我们的实验流程。
1. 初选 bootloader
在查阅了一些嵌入式 linux 的资料后,我们把 bootloader 的备选集定位在了 lilo、grub 和
syslinux 上面。根据我们的实验设计,我们希望首先尝试用 U 盘引导,之后再尝试把 U 盘的内容
写到 ebox 里面引导 linux。明确了需求,我们就对这些 bootloader 的功能和适用性进行了比较。
Lilo 是 Grub 的前身,grub 在很多功能上加强了 lilo,在实验设计做好之后,我们进一步询问
业内人士并且得到了一些建议:GRUB 不像 LILO 一样使用裸扇区,而是可以从 ext2 或 ext3 文件
系统中加载 Linux 内核。这也就是说,如果用 U 盘做引导,lilo 可能不能用,而 grub 是可以的。
syslinux 相对于 grub 是一个更轻量级的引导器,一般用于光盘和 U 盘。原本我们认为 syslinux
可能比 grub 更适合我们的实验,但是由于网上关于 grub 的参考更多一些,并且我们认为 grub 是
可以胜任预期的工作。于是我们没有实验 syslinux,用 grub 开始了我们的初期实验之旅。