嵌入式产品现已渗透到人们日子的方方面面,特别是在数字信息技术和网络技术高速开展的今日,手持信息产品正拓宽着一片越来越大的商场,PDA、手机、掌上电脑、信息家电等各式手持产品已具有了巨大的用户群。手持信息产品所运用的最要害的中心技术便是嵌入式操作系统。人们对嵌入式产品的需求也不再仅仅是功用单一的电子词典类产品,嵌入式操作系统逐步成为嵌入式产品的中心。而其间,Linux以其开源的内核和免费的应用程序、能够自由地移植和开发的优势,更投合嵌入式商场。嵌入式Linux的开发大致可分为三个层次:引导装载内核、结构文件系统和图形用户界面。作为操作系统重要组成部分的文件系统,决议了操作系统本身的信息和用户的数据在存储设备上的安排形式。对嵌入式文件系统的研讨、规划和开发也逐步成为嵌入式系 统研讨范畴的一个方向。
嵌入式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里。
插图1: 构建文件系统的树状结构
当在方针渠道完成了一个嵌入式Linux之后,为了很好地办理操作系统和用户的数据文件,引入了文件系统。物理文件系统是JFFS2 ,考虑到扩大物理文件系统的要求,保留了Linux的VFS层次。考虑到存储设备扩大的要求,在Linux内核中加入了对MTD设备的支撑。依据上面的叙说,可给出整个文件系统的系统结构图,见图2所示。