构建linux文件系统,嵌入式Linux文件系统的构建

嵌入式产品已经渗透到人们生活的方方面面,特别是在数字信息技术和网络技术高速发展的今天,手持信息产品正拓展着一片越来越大的市场,PDA、手机、掌上电脑、信息家电等各式手持产品已拥有了庞大的用户群。手持信息产品所运用的最关键的核心技术就是嵌入式操作系统。人们对嵌入式产品的需求也不再仅仅是功能单一的电子词典类产品,嵌入式操作系统逐步成为嵌入式产品的核心。而其中,Linux以其开源的内核和免费的应用程序、能够自由地移植和开发的优势,更迎合嵌入式市场。嵌入式Linux的开发大致可分为三个层次:引导装载内核、构造文件系统和图形用户界面。作为操作系统重要组成部分的文件系统,决定了操作系统本身的信息和用户的数据在存储设备上的组织形式。对嵌入式文件系统的研究、设计和开发也逐渐成为嵌入式系 统研究领域的一个方向。本文引用地址:http://www.eepw.com.cn/article/201610/305864.htm

嵌入式Linux 文件系统

文件系统是指在一个物理设备上的任何文件组织和目录,它构成了Linux系统上所有数据的基础,Linux程序、库、系统文件和用户 文件都驻留其中,因此,它是系统中庞大复杂且又是最为基本和重要的资源。值得提出的是,Linux系统中的文件不仅包括普通的 文件和目录,每个和设备相关的实际实体也都被映射为一个文件,例如磁盘、打印机、终端等等。这样的设备文件又称为特殊文件 。所以,Linux下的文件是操作系统服务和设备的简单而又统一的接口,从某种意义上可以说,Linux里的一切事物都是文件。

在Linux中,文件系统的结构是基于树状的,根在顶部,各个目录和文件从树根向下分支。目录树的最顶端被称为根目录(/)。在后面介绍的所构造文件系统结构图(图1)即显示了树状的文件系统。Linux操作系统由一些目录和许多文件组成,例如,图中的/bi n目录包含二进制文件的可执行程序,/sbin目录用于存储管理系统的二进制文件,/etc目录包含绝大部分的Linux系统配置文件 ,/lib目录存储程序运行时使用的共享库,/dev目录包含称为设备文件的特殊文件,/proc目录实际上是一个虚拟文件系统,/tmp目录用于存储程序运行时生成的临时文件,/home目录是用户起始目录的基础目录,/var目录保存要随时改变大小的文件,/usr目录及其子目录对Linux系统的操作非常重要,它保存着系统上的一些最重要的程序以及包含你安装的大型软件包。

由于Linux是一个多任务、多用户的操作系统,因此它里面的文件还都被赋予了一定的权限,权限决定谁能读、写或执行一个文件,以及这个文件的类型和如何执行。例如下面的文件列表:

-rw-r-r-- 1 root root 1756 Sep 9 2005 inittab

其表示:这个名为inittab的文件是普通文件,所有者有读写的权限,所在组和其他人都只有读的权限,它的连接数为1,所有者及 文件所属的组都是root,文件中字节数为1756,文件创建日期是2005年9月9日。我们可以通过对文件属性的设置,来满足文件在不同用户组、不同用户操作下的不同状态。

由于嵌入式设备的一些特殊性,使得嵌入式文件系统除了满足一般文件系统的基本要求外,还有一些自身的特性:

文件系统面对的存储介质特殊;

文件系统有快速恢复的特殊要求;

物理文件系统的多样性和动态可装配性;

需要文件系统具有跨操作平台的安全性;

文件系统要能满足整个系统的实时性要求。

嵌入式文件系统有安全性和均衡负载这样的要求,而日志型文件系统可以很好地解决安全性的问题。经过几年来的发展。日志型的嵌入式文件系统已成为嵌入式文件系统的主流。1999年。Axis

Communications AB发布了JFFS(JournalingFlash File System)的 第一个版本。这是一个专门为嵌入式系统的Flash设备而设计的文件系统,同时它也是一个日志型的文件系统。JFFS2是JFFS的第二 个版本,于2001年发布,并得到了Red Hat的支持,成为Red Hat嵌入式操作系统eCos的文件系统。Flash存储容量的有限性决定了J FFS是一个小尺寸的文件系统。因而在文件系统的内部设计上采用了许多简化处理。同时,它们结合了Flash设备的读写特性和嵌入式文件系统的防断电特性,使得JFFS成为适合于嵌入式系统上针对Flash设备的文件系统的理想选择。

嵌入式Linux 文件系统的设计

● 实验主机和目标平台的连接

实验主机和目标平台的连接有两种方法。一种是以太网连接,这种连接方式可以进行内核文件、根文件系统映像文件的下载。另一 种是串口连接,这样的连接方式可以供调试之用。对于以太网连接,作者使用一根普通网线,将实验主机和目标平台都连接在Hub 上。这样做既简单,也不妨碍实验主机与外部网络的通讯。对于串口连接,用一根串口线连接目标平台的Ful Function UART(FFUA RT)串口和实验主机的串口。主要是在调试阶段使用这种连接方式,在目标平台的标准输入还未被驱动的情况下。用实验主机的标准输入控制目标平台,向目标平台发控制命令。

● 构建文件系统

首先建立一个文件系统的工作空间。创建目录/bome/work,我们所构造的文件系统就在work这个目录中。建立基本目录,如:bin,dev,etc,lib,mnt,proc,sbin,tmp,usr,vat,tools具体结构图见图1(图中所显示的文件都是目录文件)。其中,tools是便于开发而创建的目录。因为整个系统要求尽量小,所以应只包含一些必须的二进制程序。而开发过程中需要用到的命令就放在 tools中,将PATH 包含tools即可。/etc目录下只包含了一些启动过程的配置文件,/lib目录下的modules于目录包含了可动态加载到核心的各种模块。另外,目录var下还应创建两个子目录log和run,负责记录系统的日志和运行状态。整个文件系统中除了tmp 和var目录放在SDRAM内以外,其他所有目录都放在Flash中,因为trap和var中的内容需要经常写入,所以放在可读写的RAM里。1b406d86f5bfecf6af7a27d2f7096c01.png

插图1: 构建文件系统的树状结构

当在目标平台实现了一个嵌入式Linux之后,为了很好地管理操作系统和用户的数据文件,引入了文件系统。物理文件系统是JFFS2 ,考虑到扩充物理文件系统的要求,保留了Linux的VFS层次。考虑到存储设备扩充的要求,在Linux内核中加入了对MTD设备的支持。根据上面的叙述,可给出整个文件系统的体系结构图,见图2所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值