|
|

楼主 |
发表于 2006-9-25 22:09:15
|
显示全部楼层
initrd 中的 linux 系统研究
想要做一个像 minimax 一样完全在 initrd 中的 linux 系统,我们要解决以下问题:
1. initrd 启动后不 chroot,只要改写 initrd 里的 linuxrc (或其他启动文件)就行了
2. 尽量缩小,minimax 采用了如下方案:
a. 用 uclibc
b. 使用 busybox 代替各种实用工具,minimax 中 busybox 代替了从 ls , gzip ,bzip2, ping ,ip 到 mount , ps , httpd , 甚至 rpm 和 dpkg 。
但为了 shell 功能的完整,还是用了 bash ,但就是功能如此强大的 busybox 还是比 bash 小
c. 灵活使用 static link 和 shared link ,基本原则就是如果只有一个软件用了某库,则 static link ,较多软件使用同一库时,才 shared link 。
3. 就像 LiveCD ,这个系统用于救援,驱动必须完备,硬件识别功能也要很好。
a. minimax 用的 Arch Linux 的配置文件 /etc
b. kernel 配置必须有很完全的驱动,编译的 ko 在 initrd 里
c. 从 LiveCD 处找到的硬件自动配置工具,比如 hwdetect ,但因无 X ,配置会更简单一些。
所以 ,从 LFS 做一个这样的系统应该不是什么难事,LFS 的配置文件也可以用。
minimax 提供了 sdk ,包含脚本和几乎所有源码, 但即使没有这个 sdk ,LFSer 也能做出一个 initrd 中的 linux 。 |
|