- 1、本文档共87页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件系统 本章主要内容 目 录 1 文件系统结构 Linux透明的支持许多不同的文件系统,将各种安装的文件和文件系统以一个完整的虚拟文件系统的形式呈现给用户。 1 文件系统结构 将文件系统的操作和管理纳入统一的框架当中来,使得内核的文件系统接口,如同标准的的文件系统“总线”,让用户通过同一组系统调用来管理和操作不同类型文件系统上的文件。这个统一的、抽象的、虚拟的文件系统接口,被称为VFS(virtual组标准的文件操作接FileSystem Switch),主要包含一口。 表 2 romfs中的文件头结构 2.2 ramfs文件系统 ramdisk是使用RAM虚拟的磁盘(该驱动程序在/linux/drivers/block/rd.c),是一个作为盘分区使用的内存块,或者说将内存模拟为硬盘空间。 空间回收 MTD 是内存技术设备子系统,负责操作和管理FLASH和RAM物理器件,可以自动识别该器件,还支持将一块FLASH器件分为不同的分区管理,这样可以将Linux内核和根文件系统分别存在不同的分区,避免由于FLASH擦写和文件系统组织结构的相互影响。 MTD 向JFFS提供了字符型和块设备,对于需要无延时的写入使用字符设备,如Linux内核的升级。块设备为JFFS文件系统服务,在加载JFFS文件系统后,可以操作和管理文件。 EXT2文件系统是Linux中主流的文件系统 。在Linux中,普通文件和目录文件保存在称为块物理设备的磁盘或者磁带上。一套Linux系统支持若干物理盘,每个物理盘可定义一个或者多个文件系统。 3 文件系统目录结构 嵌入式Linux中,文件系统通常还是按照标准的目录结构来存放所有的文件的。在本节之中,选择了uClinux(Micetek)开发环境中的默认目录、文件层次来对嵌入式Linux中的目录与文件进行介绍。 3.1 romfs文件系统目录结构 表3 /etc目录下主要文件及用途 4 简单编程事例 例1.在uClinux中实现文件的打开和读写操作,同时对ROMFS和RAMDISK中的EXT2文件系统进行了操作,从而了解了ROMFS文件系统的特性,对在RAMDISK中保存数据有了一些认识。 下面对本例题涉及到的函数进行简要介绍: int creat(const char *pathname,mode_t mode); 以mode方式创建一个以pathname为文件名的文件,返回新的文件句柄fd,错误返回-1及错误代码errno。 章小结 本章主要介绍了Linux的文件系统结构,了解了Linux采用VFS,支持如romfs、ramfs、ex2、jffs2、ms-dos、nfs等各种文件系统; 给出了Linux源程序和开发板根文件系统romfs的目录结构和功能描述; 另外给出了在uClinux中文件的打开和读写操作示例。 练习题 1.简述Linux文件系统结构,并说明VFS的作用。 2.简述romfs和ramfs文件系统结构,并说明区别。 3.简述jffs和jffs2文件系统结构。 4.简述uClinux各个子目录的作用。 3.2 uClinux源程序结构 在MICETECK开发板的uClinux源程序目录为: uclinx-44b0ii,其目录结构描述如下: lib/uclibc lib是用户应用程序库目录,包括libc、libm等函数库。uclibc包括uc-libc、uc-libm等函数库。 usr 它包括用户模式下的应用软件,如:ftp,httpd,ifattach,init,mircrowindows,mount,tftp,tftpd,route等各种免费应用软件包。 config 针对不同厂商开发板的配置情况,裁减配置uClinux内核,形成的配置脚本文件。此目录提供一个交互的Linux配置程序。 vendors 此目录下包括各种开发平台的特殊结构信息和支持文件。如MICETEK平台的支持文件就在ventors/micetek/44b0目录下。 romfs 它是一种romfs文件系统,用于构造开发平台的root根文件系统,包括/bin、/etc、/dec、/home、/lib、/mnt、/proc、/usr、/var等字目录。 3.2 uClin
文档评论(0)