Board logo

标题: busybox嵌入式Linux根文件系统 1 [打印本页]

作者: samwalton    时间: 2012-7-25 09:27     标题: busybox嵌入式Linux根文件系统 1

嵌入式Linux操作系统越中文件系统作为操作系统的重要组成部分,用于控制对数据文件及设备的存取,提供对文件和目录的分层组织形式,数据缓冲以及对文件存取权限的控制。根文件系统一直是Linux系统不可或缺的组件,在嵌入式Lin-ux中,内核在启动期间进行的最后操作之一就是安装根文件系统。Busybox是构建嵌入式Linux根文件系统的软件,用它制作根文件系统简单、方便,而且设置灵活。    1 根文件
    Linux要在一个分区上存放系统启动所必需的文件,如内核映像文件、内核启动后运行的第一个程序、给用户提供操作界面的Shell程序、应用程序所依赖的库等,这些必需、基本的文件合称为根文件系统,它们存放在一个分区中。根文件系统一般包括:1)基本的文件系统结构,包含一些必须的目录,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;2)基本程序运行所需的库函数,如:libc/uC-libc;3)基本的系统配置文件,如:rc,inittab等脚本文件;4)必要的设备支持文件,如:/dev/hd*,/dev/tty,/dev/fdO;5)基本的应用程序,如:sh,ls,cp,mv等。
    根文件系统的制作就是生成包含上述各种文件的文件系统的过程,可通过直接拷贝宿主机上交叉编译器处的文件来制作根文件系统,但是这种方法制作的根文件系统一般过于庞大。也可通过一些工具如busybox来制作根文件系统,用busybox制作的根文件系统可以做到短小精悍并且运行效率较高。
    2 busybox简介
    busybox常被很形象地称为嵌入式Linux系统中的“瑞士军刀”,因为它将许多常用的UNIX命令和工具结合到了一个单独的可执行程序中。虽然与相应的GNU工具比较,busybox所提供的功能和参数略少,但在比较小的系统或者嵌入式系统中已经足够。busybox在设计上充分考虑硬件资源受限的特殊工作环境,它采用一种很巧妙的方法减少自己的体积;所有命令都通过“插件”的方式集中到一个可执行文件中,在
    实际应用过程中通过不同的符号链接来确定到底要执行哪个操作。例如最终生成的可执行文件为busybox,当为它建立一个符号链接ls的时候,就可以通过执行这个新命令实现列目录的功能。采用单一执行文件的方式可以最大限度地共享程序代码,甚至连文件头、内存中的程序控制块等其他操作系统资源都可共享,这对于资源比较紧张的系统来说,最合适不过了。
    3 busybox的编译和安装
    3.1 开发环境
    基于S3C2440 arm920T的硬件平台,该系统的硬件平台上主要使用三星S3C2440,外围还包括64 M SDRAM和64 M NAND Flash,2 M NOR Flash,系统采用宿主机加目标板的模式,宿主机是PC机,其操作系统是RedHat linux,目标板是基于S3C2440微控制器的开发板,系统采用的内核是嵌入式Linux2.6.29,Boot loader是u-boot。
    3.2 配置busybox
    从网上下载busybox-1.13.0.tar后,使用tar xvzf busybox1.13.0.tar命令获得busybox-1.13.0目录,里面即是所有的源码。进入busybox-1.13.O目录后执行“make menuconfig”命令可进入配置界面。其配置界面如图1所示。

   

    在构造根文件系统时使用动态链接的busybox,构造根文件时需要在/lib目录下面放置glibc库文件。在busybox的配置过程中大多是选择或者去除各种命令,这里不详细叙述。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0