定制软盘上的 Linux 系统方案
嵌入式 是由一个几百 的 内核和一个根据需要制定的文件系统所构成
了由于 是开放源代码的操作系统,所以在嵌入式领域有着非常广阔的前景,并已
经广泛应用在许多手机、、 播放器等许多电子产品中。本文将 介绍一种两张软
盘上的 系统,它可以当作系统应急修复盘、路由器或防火墙等许多地方,通过对它
的研究,也可以加深对嵌入式系统的理解。
一.前言
嵌入式 是由一个几百 的 内核和一个根据需要制定的文件系统所构成
了由于 是开放源代码的操作系统,所以在嵌入式领域有着非常广阔的前景,并已
经广泛应用在许多手机、、 播放器等许多电子产品中。本文将 介绍一种两张软
盘上的 系统,它可以当作系统应急修复盘、路由器或防火墙等许多地方,通过对它
的研究,也可以加深对嵌入式系统的理解。
二.Linux 启动过程
所有的 机在加电之后, 会寻找到启动盘第一个扇区,并将其复制到 中
来执行它,对于两种不同的启动方式,这个扇区通常含有两种不同的代 码:引导程序比
如 或 等的代码,引导程序会帮助定位内核的位置。内核的代码,这通常是从软
盘启动时使用的引导的方式。对于前者,通常需 要内核支持 。如果是后者,使用的
就是 !"#!!$%。当内核被编译的时候,这段执行代码就
被链接到内核 &' 的最开始的地方。这样 很容易就能只要把内核复制到起始位置为第
一个扇区的软盘上就能得到可自启动的软盘。内核会初始化设备驱动和内部的数据结构,
之后它会到一个特定的位置 ――&$() 来获得根文件系统的位置。内核必须知
道去那里寻找这个根文件系统,否则它将停机。
在使用软盘启动的方式时,内核可以把一个压缩的文件系统释放到 中,称之为
&$(,这是一个内存区域,但内核会把它当作磁盘一样使用。
本文中介绍的例子使用 做为引导程序,并使用 来辅助 的启动。两
张软盘分别命名为 盘和 *$ 盘,在 盘中内容为 '、内核、
,*$ 盘中是压缩过的根文件系统。系统启动时 盘的 定位并执行
内核, 然后内核解开 ,并执行 文件,这个文件负责提示用户更换 *$ 盘
并将其中内容解压至内存中,然后执行刚刚解压的 继 续启动过程。
为了方便理解这个例子,先介绍目录结构如下:
! &!++,
├─!
│ ├─'!
│ ├─(!
│ │ ├─&'$!