本文是根据工作经历所写,主要目的是进行总结,所以写得很潦草,很多地方的术语也不是很严格,欢迎讨论tyq7821@sina.com.cn或qq:22796658 msn:tyq7821@hotmail.com
linux系统真是好,除了做服务器系统、桌面系统,还能做小型系统,嵌入式系统,我对嵌入式系统了解不多,就不多谈了,只谈一点做几M大小的小型系统。
大家谈的系统,有的指操作系统、有的还包括应用程序,我比较主张只指OS,一个OS,大家常见了分一体式的和微内核的,linux是一体式的。很多功能就在内核里面,比如文件系统、进程控制、设备驱动、进程间通信、通信协议。除了内核,还要一个磁盘文件系统.(继续写,打算每天都抽点时间来写),还要一个c库(标准的较大,用stript去处不需要的也有几M,所以可以用其它小的C库,只是这些库有一些功能不支持,但一般应用还是足够,常用的有uclibc),当然如果用静态编译的话,也可以不要库,但是对于以后扩展不利,除了这些以外,还需要一些常用工具,如基本的ls、fdisk这些,这些程序可以从大系统上拷贝过去(但要注意与C库版本一致),也可以用SIZE较小的BUSYBOX ,它的功能也有所减少,比如常用的ping就只有3个选项,如果需要功能全的ping,也可以单独的把它从大系统上拷过来,只要所用的库(用ldd查看,有时还需用strace来查看)系统上有且版本一致就可以。另外,驱动程序也必不可少。不过,大部分的驱动都可以直接编译进内核里。对某些特殊硬件,厂家可能提供源代码,注意这些源代码是与内核版本相关的,所以很有可能编译不过,需要更改。
现在让我谈谈制作步骤
1、准备一个大linux系统(桌面系统),(我的是redhat linux9.0)要把内核源代码安装进去。最好是自己做一个lfs,这样更好。
2、根据硬件编译内核
3、下载busybox源代码
4、插好目标机外存,我们用的是dom,则可以把它插在ide插槽上
5、新建好小型系统文件系统,也就是建立几个目录,拷贝/DEV目录中的文件
6、编译busybox进目标机外存(DOM)
7、拷贝C库、内核
8、拷贝启动程序,安装启动程序,我用的是GRUB,修改GRUB.CONF
系统制作完成,我们制作的系统共5m(没用UCLIBC,嫌麻烦,反正DOM64M)
注意常出错的地方有
1、c库版本不一致,启动后无法执行init
2、开发机与目标机硬件和grub配合的问题,现象是根本没法启动
文章来源于领测软件测试网 https://www.ltesting.net/