《第四部分 Linux部分_5文件系统的构建.pdf》由会员分享,可在线阅读,更多相关《第四部分 Linux部分_5文件系统的构建.pdf(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、地址:中国地址:中国 深圳市福田区上梅林梅林路深圳市福田区上梅林梅林路1010号申汇基大厦号申汇基大厦5 5楼楼电话电话:07550755-8314277383142773-672 672 传真:传真:07550755-8314277183142771邮政编码:邮政编码:518049 518049 网址:网址:http/http/Linux部分部分_5.文件系统文件系统 的构建的构建第四部分第四部分目目录录4.5.1 Linux 文件系统概述4.5.2 Busybox的移植4.5.3 Linux根文件系统的构建系统的内部结构系统的内部结构KernelBootLoaderFSAPPHardWar
2、e4.54.5.1 .1 Linux Linux 文件系统概述文件系统概述定义一定义一:文件系统是包括在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统;如果您想进入一个文件系统,首先您要做的是挂载(mount)文件系统;为了挂载(mount)文件系统,您必须指定一个挂载点.Linux Linux 文件系统概念文件系统概念定义二定义二:A method of organising files on a disk,eg NTFS,FAT.linux- 文件系统是在一个磁盘(包括光盘、软盘、闪盘及其它存储设备)或分区组织文件的方法,如N
3、TFS或FAT.Linux Linux 文件系统概念文件系统概念4.54.5.1 .1 Linux Linux 文件系统概述文件系统概述定义三定义三:A data structure or a collection of files.In Unix,filesystem can refer to two very distinct things,the directory tree or the arrangement of files on disk partitions.文件系统是文件的数据结构或组织方法。在Unix中,文件系统涉及两个非常独特的事情,目录树或在磁盘或分区上文件的排列.Li
4、nux Linux 文件系统概念文件系统概念4.54.5.1 .1 Linux Linux 文件系统概述文件系统概述定义四定义四:the structure of files on a disk medium which is visible via the operating system,ie the structure of files which a Unix user can see using ls and other tools 文件系统是基于操作系统的,建立在磁盘媒质上的可见体系结构,例如这种结构对于一个Unix用户来说可以用ls 或其它工具可以看到.Linux Linux 文
5、件系统概念文件系统概念4.54.5.1 .1 Linux Linux 文件系统概述文件系统概述定义五定义五:A software mechanism that defines the way that files are named,stored,organized,and accessed on logical volumes of partitioned memory.文件系统是基于被划分的存储设备上的逻辑上单位上的一种定义文件的命名、存储、组织及取出的方法.Linux Linux 文件系统概念文件系统概念4.54.5.1 .1 Linux Linux 文件系统概述文件系统概述定义六定义六
6、:在计算机业,一个文件系统是有组织存储文件或数据的方法,目的是易于查询和存取。文件系统是基于一个存储设备,比如硬盘或光盘,并且包含文件物理位置的维护;也可以说文件系统也是虚拟数据或网络数据存储的方法,比如NFS.Linux Linux 文件系统概念文件系统概念4.54.5.1 .1 Linux Linux 文件系统概述文件系统概述Linux Linux 文件系统的种类与特点文件系统的种类与特点Linux 文件系统文件系统EXT 文件系统文件系统NFS 文件系统文件系统JFFS2 文件系统文件系统4.54.5.1 .1 Linux Linux 文件系统概述文件系统概述Linux Linux 文件
7、系统的种类与特点文件系统的种类与特点Ext2fs 的优点Ext2fs 支持达4 TB 的内存Ext2fs 文件名称最长可以到1012 个字符在创建文件系统时,管理员可以根据需要选择存储逻辑块的大小(通常大小可选择1024、2048 和4096 字节)Ext2fs 可以实现快速符号链接,这使文件系统的性能有所提高,特别在访问速度上4.54.5.1 .1 Linux Linux 文件系统概述文件系统概述Linux Linux 文件系统的种类与特点文件系统的种类与特点NFS 文件系统文件系统NFS 是一个RPC service,它是由SUN 公司开发,并于1984 年推出。NFS 文件系统能够使文件
8、实现共享,它的设计是为了在不同的系统之间使用,所以NFS 文件系统的通信协议设计与作业系统无关。当使用者想使用远端文件时只要用“mount”命令就可以把远端文件系统挂载在自己的文件系统上,使远端的文件在使用上和本地机器的文件没有区别。NFS的具体配置可参考实验一的网络文件系统nfs 的配置4.54.5.1 .1 Linux Linux 文件系统概述文件系统概述Linux Linux 文件系统的种类与特点文件系统的种类与特点JFFS2 文件系统支持数据压缩提供了“写平衡”支持支持多种节点类型提高了对闪存的利用率,降低了内存的消耗4.54.5.1 .1 Linux Linux 文件系统概述文件系统
9、概述目目录录4.5.1 Linux 文件系统概述4.5.2 Busybox的移植4.5.3 Linux根文件系统的构建4.5.2 4.5.2 BusyboxBusybox 的移植的移植Busybox 介绍介绍Busybox 是Debian GNU/Linux 著名的Bruce Perens 首先开发,主要使用在Debian 的安装程序中。后来又有许多Debian 开发者对Busybox 贡献力量。Busybox 编译成一个叫做busybox 独立执行程序,并且可以根据配置,执行ash shell 的功能,以及几十个小应用程序。这其中包括一个迷你的vi 编辑器,系统不可或缺的/sbin/init
10、 程序,以及其他诸如sed,ifconfig,halt,reboot,mkdir,mount,ln,ls,echo,cat 等等.busybox具有全部这些功能,大小也不过100K 左右。Busybox 的交叉编译与安装的交叉编译与安装从网上下载从网上下载BusyBox 软件包,这里下载的是软件包,这里下载的是busybox-1.00-pre05.tar.bz2。首先把它放在。首先把它放在/root/Xsbase270_Linux/Filesystem 目录下并进行目录下并进行解压缩。解压缩。rootlocalhost$cd/root/Xsbase270_Linux/Filesystemroo
11、tFilesystem$tar jxf busybox-1.00-pre05.tar.bz2rootFilesystemcd busybox-1.00-pre05rootFilesystemmake menuconfig4.5.2 4.5.2 BusyboxBusybox 的移植的移植Busybox 的交叉编译与安装的交叉编译与安装在在busybox 的顶层目录下的的顶层目录下的Makefile 中包含一些选项来控中包含一些选项来控制制BusyBox 的创建。其中大部分选项是在开发的创建。其中大部分选项是在开发busybox 时时为了调试而使用的。下图是为了调试而使用的。下图是BusyBox
12、的配置界面的配置界面.4.5.2 4.5.2 BusyboxBusybox 的移植的移植Busybox 的交叉编译与安装的交叉编译与安装在在Build Option 菜单下,可以选择静态库编译方式,设置如下:菜单下,可以选择静态库编译方式,设置如下:*Build BusyBox as a static binary(no shared libs)4.5.2 4.5.2 BusyboxBusybox 的移植的移植Busybox 的交叉编译与安装的交叉编译与安装busybox 默认的安装路径为_install,用户可以根据需要在Installation Options 配置中输入自定义路径。图x-
13、1 文件系统安装路径用户可以根据需要对文件系统的功能选项进行配置,这样可以减少文件系统的大小,以节省存储空间,图x-2 其中一配置选项界面。当用户对文件系统的配置选项配置完毕后,需要对配置选项进行保存操作,如图x-3 所示。4.5.2 4.5.2 BusyboxBusybox 的移植的移植Busybox 的交叉编译与安装的交叉编译与安装图图x x-1 14.5.2 4.5.2 BusyboxBusybox 的移植的移植Busybox 的交叉编译与安装的交叉编译与安装图图x x-2 24.5.2 4.5.2 BusyboxBusybox 的移植的移植Busybox 的交叉编译与安装的交叉编译与安
14、装图图x x-3 34.5.2 4.5.2 BusyboxBusybox 的移植的移植Busybox 的交叉编译与安装的交叉编译与安装配置完成后便可对配置完成后便可对BusyBox 进行编译进行编译rootFilesystem$make deprootFilesystem$make install编译和安装完后生成_install 目录。并且可以看到bin、sbin 和usr 三个目录,在这三个目录,可以看到一个busybox 应用程序和许多符号链接,并且还可以看出所有这些符号链接都指向busybox 应用程序4.5.2 4.5.2 BusyboxBusybox 的移植的移植init 进程与用
15、户程序的启动分析进程与用户程序的启动分析init是Linux系统操作中不可缺少的程序之一;所谓的init进程,它是一个由内核启动的用户级进程;内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1);内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败4.5.2 4.5.2 BusyboxBusybox 的移植的移植in
16、it 进程与用户程序的启动分析进程与用户程序的启动分析inittab配置文件配置文件runlevels actionprocessid4.5.2 4.5.2 BusyboxBusybox 的移植的移植init 进程与用户程序的启动分析进程与用户程序的启动分析-idId12个字符,配置行的惟一标识,在配置文个字符,配置行的惟一标识,在配置文件中不能重复件中不能重复4.5.2 4.5.2 BusyboxBusybox 的移植的移植init 进程与用户程序的启动分析进程与用户程序的启动分析-runlevelsinit执行的进程的运行级别执行的进程的运行级别 runlevels那么,到底什么是运行级呢
17、?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1到6,具有不同的功能。4.5.2 4.5.2 BusyboxBusybox 的移植的移植init 进程与用户程序的启动分析进程与用户程序的启动分析-runlevels不同的运行级定义如下:不同的运行级定义如下:#0-停机(千万不能把initdefault 设置为0)#1-单用户模式#2-多用户,没有 NFS#3-完全多用户模式(标准的运行级)#4-没有用到#5-X11(xwindow)#6-重新启动(千万不要把initdefault 设置为6)4.5.2 4.5.2 BusyboxBusybox 的移植的移植init 进程与用户
18、程序的启动分析进程与用户程序的启动分析-Init的行为的行为 action4.5.2 4.5.2 BusyboxBusybox 的移植的移植init 进程与用户程序的启动分析进程与用户程序的启动分析-Init的行为的行为 action4.5.2 4.5.2 BusyboxBusybox 的移植的移植init 进程与用户程序的启动分析进程与用户程序的启动分析-processprocess为init执行的进程,这些进程都保存在目录/etc/rc.d/rcX中,其中的X代表运行级别,rc程序接收X参数,然后运行/etc/rc.d/rc.X下面的程序。使用如下命令可以查看/etc/rc.d目录内容。#
19、ls-l/etc/rc.d/这些文件都是符号链接,以S打头的标识启动该程序,而以K打头的标识终止该程序,后面的数字标识执行顺序,越小越先执行,剩下的标识程序名。系统启动或者切换到该运行级别时会执行以S打头的程序,系统切换到该运行级别时会执行以K打头的程序。4.5.2 4.5.2 BusyboxBusybox 的移植的移植init 进程与用户程序的启动分析进程与用户程序的启动分析-process使用如下命令查看使用如下命令查看/etc/rc.d/rc5.d的内容的内容4.5.2 4.5.2 BusyboxBusybox 的移植的移植目目录录4.5.1 Linux 文件系统概述4.5.2 Busy
20、box的移植4.5.3 Linux根文件系统的构建4.5.3 4.5.3 LinuxLinux根文件系统的构建根文件系统的构建etc 目录的构建目录的构建在在rootfs下建立下建立etc 目录:目录:rootlocalhost rootfs#mkdir etc下面我们要在此etc 下分别建立rc,inittab,motd 三个文件,进入刚新建的etc,在其下用vi rc命令建立rc 文件:#!/bin/shmount-t proc proc/proccat/etc/motdetc 目录的构建目录的构建#/etc/inittab init(8)configuration for#BusyBox
21、#Copyright(C)1999-2003 by Erik Andersen#:sysinit:/etc/rc.d/rcS:askfirst:-/bin/sh:restart:/sbin/init:ctrlaltdel:/sbin/reboot:shutdown:/bin/umount-a-r:shutdown:/sbin/swapoff-a4.5.3 4.5.3 LinuxLinux根文件系统的构建根文件系统的构建etc 目录的构建目录的构建继续在继续在etc 下建立下建立motd 文件,其内容用户随意文件,其内容用户随意Welcome to=ARM-LINUX WORLD=Base on
22、:Xsbase270-EDRPartner:emdoor()4.5.3 4.5.3 LinuxLinux根文件系统的构建根文件系统的构建etc 目录的构建目录的构建在在etc 下建立下建立init.d 目录,而后在目录,而后在init.d 目录下建目录下建立立rc 文件的符号连接文件文件的符号连接文件rcSrootlocalhost etc$lsinittab motd rcrootlocalhost etc$mkdir init.drootlocalhost etc$cd init.drootlocalhost init.d$ln-s./rc rcS4.5.3 4.5.3 LinuxLinu
23、x根文件系统的构建根文件系统的构建dev dev 目录的构建目录的构建在在rootfs 下建立下建立dev 目录,创建设备文件目录,创建设备文件,如如系统控制台系统控制台console,MTD 块设备块设备mdblock3 等,等,可以使用可以使用mknod 命令来创建命令来创建#mknod console c 5 1#mknod mdblock3 b 31 3除了使用mknod 命令来手工创建设备文件外,还可以复制主机平台/dev 目录下4.5.3 4.5.3 LinuxLinux根文件系统的构建根文件系统的构建lib lib 目录的构建目录的构建在rootfs 下建立lib 目录,再把相关
24、的库文件拷贝到lib目录下.库文件可以按照6.3节自行编译出来,也可以到我们做好的文件系统源码包里拷贝过来.4.5.3 4.5.3 LinuxLinux根文件系统的构建根文件系统的构建jffs2 jffs2 文件系统的制作文件系统的制作将光盘的filesystem 下的mkfs.jffs2 拷贝到rootfs 下返回到rootfs 的根目录下,运行命令mkfs.jffs2.#./mkfs.jffs2-o rootfs270.img-e 0 x40000-r rootfs-p-l生成映像文件rootfs270.img,拷贝到/tftpboot 中烧写到flash 中,启动后运行结果4.5.3 4.5.3 LinuxLinux根文件系统的构建根文件系统的构建Thank you view reading谢谢观阅谢谢观阅