您的位置 首页 制造

根据嵌入式Cramfs 的根文件系统配置新方法

基于嵌入式Cramfs 的根文件系统配置新方法,摘 要:根文件系统是构建一个Linux 嵌入式系统的重要组成部分,目前嵌入式系统可以选 择的根文件系统有:Romfs、Cramfs、Ramfs、Jffs

摘 要:根文件体系是构建一个Linux 嵌入式体系的重要组成部分,现在嵌入式体系能够选 择的根文件体系有:Romfs、Cramfs、Ramfs、Jffs2、Ext2 等,而现在广泛运用的Cramfs文件体系是只读型文件体系,在实践运用中,运用程序往往需求对根文件体系进行读、写 操作的,因而,假如针对Cramfs 体系直接进行写操作就会形成体系过错。文中提出了装备 Cramfs 根文件体系的新办法,试验证明,该办法能够使Cramfs 满意运用程序的读、写要 求,并能够保障体系的正常安稳运转,一起也减小了根文件体系所占用的存储空间。

1 导言

跟着电子工业的不断发展,根据 ARM 技能的体系规划和开发渠道越来越多地在操控 类、消费类、通讯类等电子产品中广泛运用。从软件角度上看,构建根据ARM 技能的linux 体系要涉及到引导加载程序、Linux 内核、文件体系、用户运用程序几部分的规划。 文件体系是操作体系中用来办理用户文件的内核软件层。文件或许存在于磁盘、网络或 者是一些虚拟的文件。文件体系包含根文件体系和树立于内存设备之上文件体系。根文件系 统是linux 体系的中心部分,包含体系运用的软件和库,以及一切用来为用户供给支撑架构 和用户运用的运用软件,并作为存储数据读写成果的区域。因为嵌入式设备中Flash 资源很 严重,怎么有效地运用有限的存储空间是嵌入式开发者有必要考虑的,适宜的文件体系格局是 处理这一问题的关键所在。本文评论了只读型紧缩Cramfs 根文件体系的特色,并详细的说 明晰NAND FLASH 上树立一个可读可写型嵌嵌入式Linux 的Cramfs 根文件体系的新办法

2 Linux 根文件体系概述

2.1 Linux根文件体系

根文件体系不同于一般文件体系,它是在内核发动时挂载(mount)的第一个文件体系, 内核代码映像文件保存在根文件体系中,而体系引导发动程序会在根文件体系挂载之后把一 些根本的初始化脚本和服务程序等加载到内存中。

Linux 根文件体系是树型结构安排[1,3],它包含了内核和体系办理所需求的各种文档和程序等。一般来说,根目录“/”下顶层目录都有一些比较固定命名和用处,下面列出一

个Linux 根文件体系中的比较常见的目录结构。

/bin:寄存二进制可执行指令的目录。

/dev:寄存设备文件和目录。

/etc:寄存体系办理和装备文件和目录。

/home:用户主目录,比方用户user 的主目录便是/home/user,能够用~user 来表明。

/lib:寄存动态链接同享库的目录。

/sbin:寄存体系办理员运用的办理程序的目录。

/tmp:共用的暂时文件存储点。

/root:体系办理员的主目录。

/mnt:用以暂时挂载其他的文件体系。

/proc:虚拟文件体系,可直接拜访这个目录来获取体系信息。

/var:某些大文件溢出区。

/usr:寄存运用程序和文件。

关于嵌入式 Linux 体系的根文件体系来说,因为受体系资源的约束,一般没有上述 那么杂乱,仅保存一些常用的目录即可。如/bin、/dev、/etc、/lib、/proc、/var、/tmp、/usr、 /mnt 等[2]。 因为嵌入式体系的规划冗余度小、体系紧凑,一般存储容量有限,因而,有必要挑选 一个适宜的根文件体系以使体系运转最佳。现在,嵌入式Linux 根文件体系首要的根文件系 统类型有:Romfs, JFFS2, RAMDISK, YAFFS/YAFFS2, Cramfs, Squashfs 等[1]。本文首要对 Cramfs 根文件体系进行评论。

2.2 Cramfs根文件体系及其在实践运用中存在的问题

Cramfs 是Linux 的创始人 Linus Torvalds 参加开发的一种只读的紧缩文件体系,它根据 MTD(Memory Technology Device,存储技能设备)驱动程序。在cramfs 文件体系中,每一页 (4KB)被独自紧缩,能够随机页拜访,其紧缩比高达2:1,为嵌入式体系节约很多的Flash 存储 空间,使体系可经过更低容量的FLASH 存储相同的文件,然后下降体系本钱。

Cramfs 并不 需求一次性地将文件体系中的一切内容都解压到内存中,而只是在体系需求拜访某个方位的 数据时,当即计算出该数据在Cramfs 中的方位,将其实时地解紧缩到内存中,然后经过对 内存的拜访来获取文件体系中需求读取的数据。Cramfs 中的解紧缩以及解紧缩之后内存中 的数据寄存方位都是由Cramfs 文件体系自身进行保护的,用户并不需求了解详细完成进程, 因而这种办法增强了透明度,对开发人员来说,既便利又节约了存储空间。

因为 Cramfs 是只读型文件体系,而大多嵌入式运用程序需求在暂时目录/tmp 进行创立 暂时文件等写操作,如不对Cramfs 进行装备,则运用程序将不能正常运转,导致体系溃散。 现在,处理些问题的办法是复合文件体系法,即运用YAFFS/YAFFS2 等可写型文件体系与 Cramfs 复合而成的文件体系作为嵌入式体系的根文件体系,使Cramfs 根文件体系发动时挂 载YAFFS/YAFFS2 文件体系,一起将运用程序寄存在YAFFS/YAFFS2 文件体系中。这种方 法处理了运用程序对根文件体系的写操作问题,但因为在一般的根文件体系之外还增加了一 个额定的可写型文件体系,必然会增大整个根文件体系所占的存储空间,形成嵌入式体系存 储资源严重。本文在实践的基础上,经过对Linux Cramfs 根文件体系的研讨,发现了一种通 过修正根文件体系发动脚本和装备文件来完成根文件体系的可读、可写性的新办法,它不需 要新增额定的文件体系来支撑运用程序的读、写要求,而是使用根文件体系自身的特性来构 造一个部分可写的根文件体系。

3 嵌入式Linux 根文件体系的装备

3.1 Cramfs根文件体系装备文件的剖析

Cramfs 根文件体系中的装备文件寄存在/etc 目录下,有22 个文件及文件夹,可分为以 下几类:

引导和登录/刊出类,包含/etc/issue、/etc/issue.net、/etc/rc.d/rc、/etc/rc.d/rc.local、 /etc/rc.d/rc.sysinit、/etc/rc.d/rc/rcX.d 等文件,它们首要记载体系的发动信息及运转等级等。

文件体系类,包含/etc/mtab、/etc/fstab、/etc/mtools.conf 文件等,它们记载着体系文 件体系的装置、卸载信息,体系发动时能够被装置的文件体系以及在这些文件体系上所定 义的操作。

体系办理类,包含/etc/group、/etc/nologin、/etc/passwd、/etc/rpmrc、/etc/securetty、 /etc/usertty、/etc/shadow、/etc/shells、/etc/motd 等文件,它们记载着体系用户和用户组的登 录信息、加密后的用户帐号密码信息、用户组的权限信息等。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/zhizao/327107.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部