- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核--文件管理
LINUX文件管理 Linux支持的常见的文件系统类型 Linux自身提供的缺省文件系统:ext2fs(一般根文件系统/使用此文件系统);新增的自身提供的文件系统:ext3fs、ReiserFS、IBM JFS等 其它UNIX使用的文件系统:minix,ext,xiafs等 DOS/Windows使用的文件系统:FAT-12,FAT-16,FAT-32,VFAT,NTFS(只读) HPFS(OS/2使用、只读)、HFS(Macintosh使用、只读);AFFS(Amiga);System V,Coherent,Xenix;CD-ROM(ISO 9660) UMSDOS(UNIX-like FS on MS-DOS);NFS(网络文件系统);SMBFS(Windows共享文件系统)、NCPFS(Novell Netware共享文件系统) /proc(用于内核和进程信息) Linux 专用文件系统 Minix 是 Linux 的第一个文件系统,有局限,性能比较差。文件名不能长于 14 个字符,最大的文件大小是 64M 字节 在 1992 年 4 月引入第一个专为 Linux 设计的文件系统--扩展文件系统或 EXT ( Extend File System ) 1993 年,增加了扩展文件系统第二版,或 EXT2 虚拟文件系统VFS 虚拟文件系统 现在的系统大多都在系统内核和文件系统之间提供一个标准的接口,真实的文件系统通过一个接口层从操作系统和系统服务中分离出来,这样不同文件结构之间的数据可以十分方便地交换。 Linux也在系统内核和文件系统之间提供了一种叫做虚拟文件系统VFS(virtual file system)的标准接口。 VFS 允许 Linux 支持许多(通常是不同的)文件系统,每一个都向 VFS 表现一个通用的软件接口。 Linux 文件系统的所有细节都通过软件进行转换,所以所有的文件系统对于 Linux 核心的其余部分和系统中运行的程序显得一样。 虚拟文件系统转换 VFS和实际文件系统的关系 实际文件系统和VFS的转换 当每一个文件系统初始化的时候,自身向 VFS 登记。(在系统启动操作系统初始化自身时) 真实的文件系统自身建立在内核中或者是作为可加载的模块。文件系统模块在系统需要的时候加载。 当一个块设备文件系统安装的时候,(包括 root 文件系统), VFS 必须读取它的超级块。每一个文件系统类型的超级块的读取例程必须找出这个文件系统的拓扑结构,并把这些信息映射到一个 VFS 超级块的数据结构上。 VFS 保存系统中安装的文件系统的列表和它们的 VFS 超级块列表。 VFS 超级块 每一个安装的文件系统都用 VFS 超级块 参见 include/linux/fs.h VFS 超级块包含的信息 Device 这是包含文件系统的块设备的设备标识符。例如,/dev/hda1,设备标识符是 0x301 Inode pointers 其中的mounted inode指针指向该文件系统的第一个inode。Covered inode指针指向文件系统安装到的目录的 inode 。 Blocksize 文件系统块的字节大小。 Superblock operations 指向一组本文件系统超级块例程的指针。除了其他类型之外, VFS 使用这些例程读写 inode 和超级块 File System type 指向这个安装的文件系统的 file_system_type 数据结构的一个指针 File System Specific 指向这个文件系统需要的信息的一个指针 The VFS Inode 同 EXT2 文件系统,VFS 中每一个文件、目录等等都用一个且只用一个 VFS inode 代表。每一个 VFS inode 中的信息使用文件系统相关的例程从底层的文件系统中获取。 VFS inode 只在核心的内存中存在,只要对系统有用,就一直保存在 VFS inode cache 中。 参见 include/linux/fs.h The VFS Inode 包含的信息 device 存放这个文件的设备的设备标识符。 Inode nunber 这个 inode 的编号。 Mode 象 EXT2 一样,这个域描述这个 VFS inode 代表的东西和对它的访问权限。 Inode operations 指向一组例程地址的指针。例程和文件系统相关,执行对于此inode的操作 Count 系统组件当前使用这个 VFS inode 的数目。 Count 0 意味着这个 inode 是空闲,可以废弃或者重用。 Lock 这个域用于锁定这个 VFS inode 。例如当从文件系统读取它的时候。 Dirty 显示这个 VFS inode 是
文档评论(0)