2010-6-嵌入式文件系统.ppt
《2010-6-嵌入式文件系统.ppt》由会员分享,可在线阅读,更多相关《2010-6-嵌入式文件系统.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1TM嵌入式系统嵌入式系统第第6章章嵌入式文件系统嵌入式文件系统2TM22课程大纲课程大纲文件系统基础知识文件系统基础知识嵌入式嵌入式LinuxLinux文件系统简介文件系统简介 LinuxLinux文件系统框架和特性文件系统框架和特性嵌入式文件系统相关实验嵌入式文件系统相关实验3TM3操作系统、内核、文件系统操作系统、内核、文件系统n操作系统?操作系统?n负责对计算机硬件直接控制及管理的系统软件n内核内核n操作系统的核心部分n文件系统文件系统n操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。n操作系统中与管理文件有关的软件和数据。n屏蔽底层硬件的处理细节,用户可
2、以按名字访问数据4TM4Linux 文件系统的特点文件系统的特点nLinux的文件系统的文件系统Vs.Windows的文件系统的文件系统nWindows文件系统n以驱动器的盘符为基础的n每一个目录是与相应的分区对应nLinux文件系统n一个文件树n它的所有文件和外部设备(如硬盘,光驱等)都是以文件的形式挂结在这个文件树上n总之,在总之,在Windows下,目录结构属于分区;下,目录结构属于分区;Linux下,分区下,分区属于目录结构属于目录结构5TM5Linux的目录结构的目录结构6TM6Linux文件系统中的挂载(文件系统中的挂载(mount)n实现硬件管理手段和软件目录管理手段的统一实现硬
3、件管理手段和软件目录管理手段的统一n每一个分区和某一个目录相对应n对目录的操作就是对这个分区的操作n把分区和目录对应的过程叫做挂载(把分区和目录对应的过程叫做挂载(mount)n这个挂载在文件树中的位置就是挂载点n这种对应关系可以由用户随时中断和改变7TM7mount 命令命令n功能:加载指定的文件系统功能:加载指定的文件系统n语法:语法:nmount-afFhnrvVw-L-o-t 设备名 加载点n例如:mount -t vfat/dev/hda1/mnt/c8TM8Linux文件的类型文件的类型nLinux对目录和设备都当作文件来进行处理对目录和设备都当作文件来进行处理n分类分类n普通文件
4、n目录文件n链接文件n设备文件 9TM91.普通文件普通文件n如同如同Windows中的文件中的文件n包括包括n文本文件nshell脚本n二进制的可执行程序n各种类型的数据10TM102.目录文件目录文件n目录也是文件目录也是文件n包含文件名和子目录名以及指向那些文件和子目录的指针nLinux通过上下链接目录文件系统来实现对整个通过上下链接目录文件系统来实现对整个文件系统的操作文件系统的操作n什么是根目录?11TM113.链接文件链接文件n又称软链接,符号链接又称软链接,符号链接n类似于类似于Windows中的中的“快捷方式快捷方式”n功能功能n实现对不同的目录、文件系统甚至是不同机器上的文件
5、直接访问,并且不需要重新分配磁盘空间n命令格式:命令格式:nln-ssource_pathtarget_pathn例如:ln-shttpd.confhttpd2.conf12TM124.设备文件设备文件nLinux把设备都当作文件来进行操作把设备都当作文件来进行操作n与设备相关的文件一般都在与设备相关的文件一般都在/dev目录下目录下n块设备文件n字符设备文件n块设备块设备n数据的读写是以块(如由柱面和扇区编址的块)为单位的设备,最简单的如硬盘(/dev/hda1)等n字符设备字符设备n指串行端口等接口设备13TM13Linux中常见的文件系统中常见的文件系统EXT2nExt2是是GNU/Li
6、nux系统中标准的文件系统系统中标准的文件系统n特点特点n单一文件大小及文件系统本身的容量上限与文件系统本身的簇大小有关n一般常见的X86系统中,簇最大为4KB,则单一文件大小上限为2048GB,而文件系统的容量上限为16384GB14TM14Linux 常见的文件系统常见的文件系统-EXT3nExt3是是Ext2的下一代的下一代n在保有目前Ext2的格式之下再加上日志功能n日志文件系统(日志文件系统(JournalFileSystem)n整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回溯追踪15TM15Linux 常见的文件系统常见的文件系统-swapn交换空间交换空间nLi
7、nux使用整个分区来作为交换空间nWindows使用交换文件n自定义大小自定义大小n一般这个SWAP格式的交换分区的容量大小是主内存的2倍16TM1616课程大纲课程大纲文件系统基础知识文件系统基础知识嵌入式嵌入式LinuxLinux文件系统简介文件系统简介 LinuxLinux文件系统框架和特性文件系统框架和特性嵌入式文件系统相关实验嵌入式文件系统相关实验17TM17嵌入式文件系统嵌入式文件系统Vs.桌面文件系统桌面文件系统n专有性专有性Vs.通用性通用性n嵌入式系统针对特殊目的而定制n嵌入式文件系统要为嵌入式系统的设计目的服务嵌入式文件系统要为嵌入式系统的设计目的服务n不同用途的嵌入式操作
8、系统下的文件系统不同不同用途的嵌入式操作系统下的文件系统不同18TM18嵌入式文件系统的设计目标嵌入式文件系统的设计目标19TM19嵌入式操作系统嵌入式操作系统嵌入式文件系统嵌入式文件系统nQNX实时操作系统实时操作系统nPOSIX,SMB,FAT,CD-ROM.nVxWorksnFFS,FAT,RTllFS,RAWFS,TAPEFSn嵌入式嵌入式LinuxnJFFS2,YAFFS,CRAMFS,ROMFS,RAMFS20TM20桌面文件系统不适合嵌入式系统(桌面文件系统不适合嵌入式系统(Ext2fs)n为像为像IDE设备那样的块设备设计的设备那样的块设备设计的n不太适合扇区大小因设备不同而不
9、同的闪存设备n没有提供对基于扇区的擦除没有提供对基于扇区的擦除/写操作的良好管理写操作的良好管理n闪存具有有限的擦除寿命n在出现电源故障时,在出现电源故障时,Ext2fs不是防崩溃的不是防崩溃的n不支持损耗平衡不支持损耗平衡nFlash中所有被擦写的单元保持相同的擦写次数中所有被擦写的单元保持相同的擦写次数,因此缩短了扇区/闪存的寿命n在设计块驱动程序方面较为困难在设计块驱动程序方面较为困难21TM21存储设备存储设备嵌入式嵌入式Linux文件系统文件系统n选择嵌入式文件系统的关键点选择嵌入式文件系统的关键点n不同的文件系统类型有不同的特点n根据存储设备的硬件特性、系统需求等有不同的应用场合n
10、嵌入式设备很少使用大容量的IDE硬盘,往往采用RAM、ROM、FLASH存储器等作为存储设备。n设计合适的文件系统设计合适的文件系统22TM22FlashMemory(闪存)(闪存)nNANDn串行;顺序读取;适合大容量;通常需MTDn存储单元被分为页,由页组成块n读写以块和页为单位n不足:随机存取速度较慢,无法按字节写随机存取速度较慢,无法按字节写n适合于大容量的多媒体应用中。适合于大容量的多媒体应用中。nNORn并行;随机读取;n不足:写入和擦除速度较低n适合数据或程序存储;XIPXSbase开发平台上所使用的闪存:开发平台上所使用的闪存:IntelStrataFlashMemory28F
11、128J3A,NOR23TM23嵌入式存储设备嵌入式存储设备嵌入式嵌入式Linux文件系统文件系统?nNANDFlashYAFFSnNORFlashJFFS2nRAMRAMFSnNetworkNFS24TM24 JFFS/JFFS2n2000年年nAxis公司发布了日志式Flash文件系统jffsn在Flash的存储空间中,数据和辅助信息都依次存放n2001年初年初nRed Hat公司在此基础上推出了jffs2文件系统n针对嵌入式系统中的针对嵌入式系统中的Flash存储器进行设计存储器进行设计25TM25JFFS缺陷缺陷n关于空间回收,关于空间回收,jffs并没有进行太多优化并没有进行太多优化
12、n不支持对数据进行压缩之后进行存储不支持对数据进行压缩之后进行存储n不支持硬链接,每一个存储块中都保存了对应的文不支持硬链接,每一个存储块中都保存了对应的文件名件名26TM26JFFS2:改进:改进njffs2的节点头部中增加了一些新的信息的节点头部中增加了一些新的信息n包括CRC校验码和节点类型等n改进改进jffs空间回收方式的缺陷空间回收方式的缺陷njffs2不再像不再像jffs中只有一种节点中只有一种节点;有有3种节点类型种节点类型n分别用于表示擦除块的标记,普通文件,目录n可以很快取得的数据并不保存在内存之中可以很快取得的数据并不保存在内存之中n增加了对数据的压缩增加了对数据的压缩n开
13、始支持硬链接开始支持硬链接27TM27YAFFS/YAFFS2nJFFS/JFFS2应用于应用于NANDFlash存在问题存在问题n通过jffs_node维护Flash中的日志节点n每个节点需要占用48个字节的内存空间nJFFS/JFFS2在挂载时需要扫描整个Flash的内容n找出所有的日志节点,建立文件结构28TM28 YAFFSnYet Another Flash File Systemn专门针对NAND Flash特点编写的日志文件系统n克服克服JFFS/JFFS2的缺点的缺点n很小的内存空间占用n很短的挂载时间n跨平台的文件系统29TM29YAFFS2nYAFFAS存在的问题存在的问题
14、n不支持数据压缩n仅对512字节页(后简称小页)大小的NANDFlashn很多大容量的NANDFlash(128MB以上),使用大小为2KB的页(后简称为大页)nYAFFS2n实现对大页Flash的支持n在内存空间占用,垃圾回收速度,读写速度等方面均有大幅度提升30TM30 Cramfsn最初是最初是Linus Torvalds 编写的一个文件系统编写的一个文件系统n具有简单、压缩和只读等特点n用于保存只读的根文件系统内容n特点特点n将文件数据以压缩形式存储,在需要运行的时候进行解压缩n不能直接在Flash上运行n可以节约很多Flash存储空间,但是文件系统运行需要将大量的数据拷贝进RAM中,
15、造成一定的浪费31TM31创建创建CRAMFS根文件系统映像根文件系统映像n工具工具nmkcramfs 和cramfsckn使用如下命令来制作一个使用如下命令来制作一个CRAMFS映像映像n$ROOTFS为目标根文件系统所在目录n$mkcramfs$ROOTFS/cramfs.img32TM3232课程大纲课程大纲文件系统基础知识文件系统基础知识嵌入式嵌入式LinuxLinux文件系统简介文件系统简介 LinuxLinux文件系统框架和特性文件系统框架和特性嵌入式文件系统相关实验嵌入式文件系统相关实验33TM33Linux文件系统与存储设备文件系统与存储设备n现代操作系统都提供多种访问存储设备
16、的方法现代操作系统都提供多种访问存储设备的方法nLinux文件系统有两条独立控制设备驱动的途径文件系统有两条独立控制设备驱动的途径n通过设备驱动的接口n直接读写磁盘,但是给操作系统带来麻烦,降低稳定性n特殊环境下使用,例如数据库管理系统n按“块”访问n通过文件管理器接口n提高系统稳定性n按文件结构来读写34TM34Linux文件系统框架文件系统框架35TM35Linux文件系统特点文件系统特点n在在UNIX操作系统中,文件按照树的形式来组织操作系统中,文件按照树的形式来组织n一个文件系统只有一个根目录一个文件系统只有一个根目录n根目录根目录n挂载(mount)nUnix文件系统通过文件管理器的
17、操作以及对文件、文件系统通过文件管理器的操作以及对文件、目录的定位来控制存储设备目录的定位来控制存储设备nLinux文件管理器文件管理器nVFS36TM3637TM37 VFSnLinux内核借鉴了很多内核借鉴了很多“面向对象面向对象”的思想的思想n虽然Linux内核是用C语言来写n面向对象中的概念面向对象中的概念nVFS层 对应“抽象基类”n具体文件系统对应这个抽象基类的“派生类”n对文件的操作实现了一个类似于“纯虚函数”的接口n如open,write,read等38TM3838课程大纲课程大纲文件系统基础知识文件系统基础知识嵌入式嵌入式LinuxLinux文件系统简介文件系统简介 Linu
18、xLinux文件系统框架和特性文件系统框架和特性嵌入式文件系统相关实验嵌入式文件系统相关实验39TM39文件系统实验文件系统实验n一一 建立建立JFFS2根文件系统根文件系统n二二 基于基于BusyBox构建根文件系统构建根文件系统n三三 建立建立ramfs文件系统文件系统n四四NFS文件系统实验文件系统实验n五五samba介绍与应用介绍与应用40TM40JFFS2在在Linux中的两种使用方式中的两种使用方式n根文件系统n普通文件系统n在系统启动后被挂载41TM41建立建立JFFS2根根文件系统文件系统n内核配置内核配置n映像生成映像生成42TM42建立建立JFFS2文件系统文件系统-内核配
19、置内核配置nGeneralSetup项项n“root=1f03rwconsole=ttyS0,115200init=/linuxrc”nMTD驱动驱动n在menuconfig中调用flashmemory设备驱动n选择选择CFIFlashdevicemappedontheXSBASE255PXA255board43TM4344TM44JFFS2文件系统文件系统支持项支持项n还需要在还需要在FileSystem选项中选择选项中选择n*JournallingFlashFileSystemv2(JFFS2)support45TM45JFFS2映像生成映像生成nmkfs.jffs2工具创建成imagen
20、mkfs.jffs2用法n-e选项确定闪存的擦除扇区大小(通常是64K)n-p选项用来在映像的剩余空间用零填充n-o选项用于输出文件,这里是rootfs.imgn利用bootloader将生成的rootfs.img下载后写入flashn再次重起开发板,内核就能加载JFFS2作为根文件系统./mkfs.jffs2orootfs.imge0 x40000rroot_XSBASEp-l46TM46二:基于二:基于BusyBox构建根文件系统构建根文件系统nBusyboxn配置配置Busyboxn利用利用BusyBox制作制作JFFS2的根文件系统的根文件系统47TM47Busyboxn工具集工具集n
21、vi编辑器,系统不可或缺的/sbin/init程序n其他诸如sed,ifconfig,halt,reboot,mkdir,mount,ln,ls,echo,cat.等等n大小也不过100K左右n用户可以根据自己的需要进行定制nBusyBox支持多种体系结构支持多种体系结构n可以静态或动态链接glic或者uclibc库,以满足不同的需要48TM48配置和编译过程配置和编译过程n#cd/home/Liod270/FileSystemn#tarzxvfbusybox-1.00-pre05.tar.gzn#cdbusybox-1.00-pre05n#makemenuconfig49TM4950TM50
22、n在在BuildOption菜单中菜单中n选择静态库编译方式n*BuildBusyBoxasastaticbinary(nosharedlibs)n选择交叉编译器arm-linux-gccn*DoyouwanttobuildBusyBoxwithaCrossCompiler?(/opt/xscalev1/bin/arm-linux-)51TM51n在在InstallationOptions中默认中默认_install是编译后的是编译后的文件系统路径文件系统路径n其他诸多选项的主要目的是使得用户仅仅选择部分其他诸多选项的主要目的是使得用户仅仅选择部分工具工具n保存选项设置保存选项设置52TM52
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2010 嵌入式 文件系统
限制150内