- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux File System 文件系统 VFS VFS的作用 基于VFS的文件访问 VFS重要数据结构 文件系统的注册与安装 ext2、ext3文件系统 文件操作 proc文件系统 CRAMFS文件系统 UNIX文件系统文件类型 Directory -- catalogue of file name Normal file -- format of data source file text file Symbolic link -- a pointer to another file Special file -- use for device controller in kernel Named pipe -- communication channel which can be used by serveral processes(may be irrelevant) in order to exchange data 硬链接(Hard Link) 符号链接(Symbolic link) 基于VFS的文件访问 VFS的目录项(dentry) VFS的目录项(dentry) 打开文件表 VFS重要数据结构 文件系统类型 文件系统注册与注销 文件系统类型的注册和注销函数 int register_filesystem(struct file_system_type * fs) int unregister_filesystem(struct file_system_type * fs) 文件系统的安装(mount) 文件系统的安装(mount) 已安装文件系统的描述 已安装文件系统的描述 路径查找 系统调用open、mkdir、rename、stat等要查找路径 open_namei() path_init() path_walk() link_path_walk(); 返回时,struct nameidata中的dentry和mnt标识找到的文件或目录 struct nameidata { /*include/linux/fs.h*/ struct dentry *dentry; /*找到的dentry指针*/ struct vfsmount *mnt; /*找到的文件所在文件系统*/ struct qstr last; unsigned int flags; int last_type;}; ext2文件系统 支持UNIX所有标准的文件系统特征,包括正文、目录、设备文件和连接文件等,这使得它很容易被UNIX程序员接受。事实上,ext2的绝大多数的数据结构和系统调用与经典的UNIX一致 能够管理海量存储介质。支持多达4TB的数据,即一个分区的容量最大可达4TB 支持长文件名,最多可达255个字符,并且可扩展到1012个字符 允许通过文件属性改变内核的行为;目录下的文件继承目录的属性 支持文件系统数据“即时同步”特性,即内存中的数据一旦改变,立即更新硬盘上的数据使之一致 实现了“快速连接”(fast symbolic links)的方式,使得连接文件只需要存放inode的空间 允许用户定制文件系统的数据单元(block)的大小,可以是 1024、2048 或 4096 个字节,使之适应不同环境的要求 使用专用文件记录文件系统的状态和错误信息,供下一次系统启动时决定是否需要检查文件系统 ext2体系结构 内存中的ext2 inode ext2_inode_info (在include/linux/ext2_fs_i.h) struct ext2_inode_info { __u32 i_data[15]; __u32 i_flags; __u32 i_faddr; __u8 i_frag_no; __u8 i_frag_size; __u16 i_osync; __u32 i_file_acl; __u32 i_dir_acl; __u32 i_dtime; __u32 i_block_group; __u32 i_next_alloc_block; __u32 i_next_alloc_goal; __u32 i_prealloc_block; __u32 i_prealloc_count; __u32 i_dir_start_lookup; int i_new_inode:1; /* Is a freshly allocated inode */ }; 外存中的ext2 inode struct ext2_inode(在i
您可能关注的文档
最近下载
- 华为EMC设计指南.pdf VIP
- 《导光管采光技术》课件.pptx VIP
- DB15_T 2383-2021 草原生态修复监测评价指标分类.docx VIP
- (2025秋新版)人教版二年级数学上册《 分类与整理第4课时 练一练》PPT.pptx VIP
- 消防工程维保、检测、消防安全评估公司公示内容-工作流程.docx VIP
- 2025至2030船用推进发动机行业发展研究与产业战略规划分析评估报告.docx VIP
- 《七律二首 送瘟神》教案- 2023-2024学年高教版(2023)中职语文职业模块.docx VIP
- 福建普通高中新课程思想政治学科教学指导意见.DOC
- 感染病病原体耐药机制.pptx VIP
- 【历年真题】2019年10月02134信息系统设计与分析自考试卷(四川含答案).docx VIP
文档评论(0)