接上一章 手把手教你北邮操作系统小学期实验三——ARM/ucLinux-SkyEye的安装,配置与集成4
此实验是队友做的。
1. 实验目的:
- Shell 是一种 Linux 系统与用户的交互方式,是最基本也是最重要的一个应用程序。 很多嵌入式系统也离不开 Shell。Red Hat Linux 所用的 shell 是 BASH。BASH 功能强大, 但高达 500 多 K,如果把所需要的库以及应用程序包括起来大小会有 3M 到 4M,用在 嵌入式系统并不是很合适。
- 体积更小的 shell 主要有 BusyBox 和 ash,BusyBox 目前在嵌入式 Linux 中使用较 多。BusyBox 将大量的 UNIX 工具集成到一个可执行文件中,实现了 UNIX 环境下所 使用的文件操作、文本编辑、压缩数据等工具。目前 BusyBox 提供了 107 个命令的功 能。在 i386 体系结构下,可执行文件的大小只有几百 KB。
- 本实验要求学生针对 PC 机上的 Linux 系统发行版本,理解 Linux 根文件系统组织 结构,通过 Linux 系统内核/系统的配置,将应用程序 BusyBox 放入文件系统,利用 BusyBox 替换原有的 shell,掌握 Linux 系统 shell 小型化方法。
2. 实验原理:
分别下载bash源码和Busybox源码对比分析,对Busybox使用与配置内核的方式配置所需的功能。
3. 实验内容:
a) 理解 Linux 根文件系统组织结构,按照参考文献[1]“6.4.3 小型化 shell”的内容
b)用在新的 shell 下运行各类 shell 命令,验证替换过程的正确性
4. 实验步骤:
比较不同版本shell命令行数和代码量
查看当前linux上的shell类型和版本
由于linux中没有对应的bash源码,因此需要在gnu.org上下载对应版本。本次实验下载的版本为coreutils-5.0。
路径…/coreutils-5.0/src中共有94个.c文件,一共56438行代码。
本次使用的busybox版本为busybox-1.1.0,在其coreutils/路径下共70个.c源文件文件,一共12318行代码。
编译完成后ash和bash大小比较:
bash的命令主要在/bin和/sbin目录下:
/bin目录下
/sbin目录下
bash的命令十分繁多