linux下根文件系统的制作.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:50 大小:1.5MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

linux下根文件系统的制作.ppt

linux下根文件系统的制作.ppt

预览

免费试读已结束,剩余 40 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

linux实践考察——linux下根文件系统的制作一、课题名称:linux下根文件系统的制作三、根文件系统1.根文件系统的结构下表是一个根文件系统中所需的主要目录。制作根文件系统的基本方法就是创建各个目录以及目录中的文件。创建目录是非常简单的,既可以通过命令mkdir来创建,也可以在图形界面直接创建。但命令方式比图形方式的效率要高。step1创建目录。step2创建必要的设备文件。step3安装所需的共享库。step4安装init文件、Shell和各种基本命令(可由busybox提供)。step5创建和编辑配置文件。2.1创建目录这里创建了一个rootfs目录。当根文件系统制作完成后,可以将这个目录作为nfs服务的共享目录,这样目标机就能够通过网络挂载这个目录。接着根据FHS标准依次创建各个子目录,如下所示:这些目录多数需要手动创建,其中有一些目录可在安装busybox时自动创建。一般来说,根文件系统内的主要目录和文件都会以root身份创建,因为将来挂载到目标机之后,文件的所有者和权限都保持不变,而这些文件在目录机上都是系统文件,应该是root所有的。2.2创建根文件系统中的设备文件、命令文件上述命令的意思是指,将Linux系统中bin目录中的ls和date命令文件复制到rootfs/bin目录下。(2)dev。dev目录下存放的是各种设备文件。1)控制台设备。控制台终端用于显示各种信息,显示器是一种最常见的控制台终端。在linux系统中,控制台的设备文件是console。控制台在其他设备驱动初始化前就可以使用,因此常用来显示内核的启动信息。2)虚拟控制终端。为了满足多用户多任务的需要,可以通过虚拟控制终端来使用控制台终端。例如tty1、tty2、tty3文件等。3)串口终端。串口终端是使用串行端口连接的终端设备。在Linux系统中常用的串口终端设备文件有ttyS0、ttyS1等。在Linux2.6内核中ttyS0文件称为ttySAC0。串口终端可以被指定为控制台终端来使用。例如在内核启动参数中可以设置console=ttySAC0,也就是把串口终端设备ttySAC0作为控制台设备使用。这里-a参数用来保留文件的所有属性,否则cp命令将试图从设备文件中读取内容并写入新文件。在嵌入式系统中,出于某种需要可能不希望动态创建设备文件,这时,所需的设备文件就要用mknod命令预先在根文件系统内创建,或者将创建设备文件的命令写入系统的初始化脚本中。有关mknod命令的介绍:参数(3)lib。lib目录下存放的是函数库文件。在嵌入式linux系统中可以根据实际的需要选择各种库文件。对于使用动态编译方式编译的C应用程序来说,以下两个库文件是必须的。一般来说,一个共享库会对应着一个包含真正内容的文件,同时有若干个符号链接指向它,这样做是为了便于管理。在复制共享库的时候尽量保持这一模式,将应用程序所需的符号链接与包含真正内容的共享库文件一起复制过去。除以上基本库之外,还有以下一些其他的常用共享库:如果要使用域名解析相关的函数,则需要以下共享库:如果要运行C++源码编译得到的应用程序,则还需要以下共享库:(4)etc。etc目录下存放的是Linux系统的配置文件,etc目录中的配置文件主要任务是负责文件系统的初始化工作。2)下面是一个初始化脚本的例子。保存,退出注意此文件为脚本文件,供shell执行,需用chmod开放它的执行权限。2.3使用busybox2.BusyBox工作原理下面通过一个实例来看看BusyBox合并程序文件的基本方法。例如:test.c其中main函数的参数argc用于接收从控制台传递过来的参数个数,参数argv数组用于接收从控制台传递过来的具体参数。可以看到,通过main函数的argc和argv参数可以接收从控制台传递过来的命令信息。根据这个原理,BusyBox把bin目录下常用命令程序的代码集成到一个busybox文件中。使得busybox文件中不会重复相同功能的代码。然后BusyBox为busybox文件创建了多个链接文件,每个链接文件表示一个命令程序(链接文件的名称就是各个命令程序的名称)。BusyBox通过链接文件把具体命令传递给busybox,由busybox完成各个命令的运行任务。如下图所示:此外,BusyBox还直接提供了etc目录下的主要配置文件,大大减轻了制作根文件系统的工作3.编译和安装BusyBox可以看到,配置界面中把配置选项分成了BusyBoxSettings和Applets两大部分。Buildsharedlibbusybox。该选项用于选择是否编译BusyBox动态库。BuildwithLargeFileSupport(foraccessingfiles>2GB)。该选项用于选择BusyBox