嵌入式Linux C语言开发 教学课件 华清远见嵌入式学院 曾宏安 第5章 嵌入式Linux文件操作.ppt

嵌入式Linux C语言开发 教学课件 华清远见嵌入式学院 曾宏安 第5章 嵌入式Linux文件操作.ppt

ID:50319141

大小:792.50 KB

页数:89页

时间:2020-03-08

嵌入式Linux C语言开发 教学课件 华清远见嵌入式学院 曾宏安 第5章 嵌入式Linux文件操作.ppt_第1页
嵌入式Linux C语言开发 教学课件 华清远见嵌入式学院 曾宏安 第5章 嵌入式Linux文件操作.ppt_第2页
嵌入式Linux C语言开发 教学课件 华清远见嵌入式学院 曾宏安 第5章 嵌入式Linux文件操作.ppt_第3页
嵌入式Linux C语言开发 教学课件 华清远见嵌入式学院 曾宏安 第5章 嵌入式Linux文件操作.ppt_第4页
嵌入式Linux C语言开发 教学课件 华清远见嵌入式学院 曾宏安 第5章 嵌入式Linux文件操作.ppt_第5页
资源描述:

《嵌入式Linux C语言开发 教学课件 华清远见嵌入式学院 曾宏安 第5章 嵌入式Linux文件操作.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、嵌入式Linux文件操作课程目标Linux中的文件系统Linux中顺序文件操作的方法Linux中随机文件操作的方法Linux中文件共享、索引节点及文件层次结构的概念Linux中标准输入输出的操作Linux中非格式化输入输出的操作Linux下文件相关的不带缓存I/O函数的使用Linux下设备文件读写方法Linux中对串口的操作www.embedu.org本章内容5.1Linux文件系统概述5.2Linux下的I/O操作5.3Linux下对文件和目录的操作5.4嵌入式Linux串口应用开发本章小结www.embedu

2、.org5.1Linux文件系统概述5.1.1虚拟文件系统(VFS)5.1.2通用文件模型5.1.3Linux下的设备文件www.embedu.org5.1.1虚拟文件系统(VFS)Linux的文件系统由两层结构组成。第一层是虚拟文件系统(VFS),第二层是各种不同的具体的文件系统。VFS就是把各种具体的文件系统的公共部分抽取出来,形成一个抽象层,是系统内核的一部分。它位于用户程序和具体的文件系统之间,对用户程序提供了标准的文件系统调用接口。对具体的文件系统,它通过一系列对不同文件系统公用的函数指针来调用具体的文

3、件系统函数,完成实际的操作。任何使用文件系统的程序必须经过这层接口来使用它。通过这样的方式,VFS就对用户屏蔽了底层文件系统实现上的细节和差异。www.embedu.org5.1.1虚拟文件系统(VFS)VFS不仅可以对具体文件系统的数据结构进行抽象,以统一的方式进行管理,还可以接受用户层的系统调用,例如:write、open、stat、link等。此外,它还支持不同文件系统之间的相互访问,接受内核其他子系统的操作请求。vfs在Linux内核中的位置如图所示。www.embedu.org5.1.2通用文件模型VF

4、S的主要目的在于引入了一个通用的文件模型(commonfilemodel),这个模型的核心是4个对象类型,即超级块对象(superblockobject)索引节点对象(inodeobject)文件对象(fileobject)目录项对象(dentryobject)它们都是内核空间中的数据结构,是VFS的核心,不管各种文件系统的具体格式是什么样的,都要和VFS的通用文件模型相交互。www.embedu.org5.1.2通用文件模型www.embedu.org5.1.2通用文件模型1.超级块对象超级块对象是用来描述整个

5、文件系统的信息。VFS超级块是由各种具体的文件系统在安装时建立的,只存在于内存中。(1)超级块对象结构体超级对象块由super_block结构体表示,定义在文件中超级块对象通过alloc_super()函数创建并初始化。在文件系统安装时,内核会调用该函数以便从磁盘读取文件系统超级块,并且将其信息填充到内存的超级块对象中www.embedu.org超级块对象结构体structsuper_block{/*描述具体文件系统整体信息的域*/kde_ts_dev;/*包含该具体文件系统的块设备标识符

6、对于/dev/hda1,其设备标识符为0x301*/unsignedlongs_blocksize;/*该具体文件系统中的数据块大小*/unsignedchars_blocksize_bite;/*块大小的值占用的位数*/unsignedlonglongs_maxbytes;/*文件的最大长度*/unsignedlongs_flags;/*安装标志unsignedlonga_magic;/*魔数,具体文件系统的标识*//*用于管理超级块的域*/structlist_headlist;/*指向超级块连标的指针*/s

7、tructsemaphores_lock;/*锁标志位*/structrw_semaphores_umount;/*对超级块的读写是否同步*/structdentry*s_root;/*该具体文件系统的安装目录项*/unsignedchars_dirt;/*脏位,超级块是否被修改*/ints_count;/*使用计数*/atomic_ts_active;/*structlist_heads_dirty;/*已经修改的索引节点*/structlist_heads_locked_inodes;/*需要同步的索引节点的

8、集合*/structlist_heads_files;/*被分配的文件链表*//*和具体文件系统相关联的域*/structfile_system_type;/*指向文件系统file_system_type数据结构的指针*/structsuper_operation*s_op;/*超级块操作函数的集合*/u;/*联合域*/}www.embedu.org5.1.2通用文件模型

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。