chap 3 Linux 文件系统编程.ppt
《chap 3 Linux 文件系统编程.ppt》由会员分享,可在线阅读,更多相关《chap 3 Linux 文件系统编程.ppt(122页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3章章文件系统编程文件系统编程戴瑾戴瑾戴瑾戴瑾南大金陵学院信息科学与工程系南大金陵学院信息科学与工程系南大金陵学院信息科学与工程系南大金陵学院信息科学与工程系2主要内容主要内容v文件系统概述文件系统概述文件系统概述文件系统概述v系统调用与库函数系统调用与库函数系统调用与库函数系统调用与库函数v基本基本基本基本I/OI/O系统调用系统调用系统调用系统调用v文件属性及目录相关系统调用文件属性及目录相关系统调用文件属性及目录相关系统调用文件属性及目录相关系统调用v标准标准标准标准I/OI/O库库库库v高级高级高级高级I/OI/O库库库库v文件系统概述文件系统概述文件系统概述文件系统概述3文件基本
2、概念文件基本概念v文件文件文件文件可被读写的对象可被读写的对象可被读写的对象可被读写的对象具备一定权属性,包括访问权限、类型具备一定权属性,包括访问权限、类型具备一定权属性,包括访问权限、类型具备一定权属性,包括访问权限、类型等等等等v文件系统文件系统文件系统文件系统文件及其属性的集合,提供了命名及管理机制文件及其属性的集合,提供了命名及管理机制文件及其属性的集合,提供了命名及管理机制文件及其属性的集合,提供了命名及管理机制v文件结构文件结构文件结构文件结构字节字节字节字节流,流,流,流,没有特定内部结构没有特定内部结构没有特定内部结构没有特定内部结构文文件件系系统统概概述述文件类型文件类型v
3、普通文件普通文件普通文件普通文件v目录目录目录目录v设备文件设备文件设备文件设备文件v字符文件字符文件字符文件字符文件/块文件块文件块文件块文件vFIFOFIFO文件(如管道文件)文件(如管道文件)文件(如管道文件)文件(如管道文件)vSocketSocket文件文件文件文件v符号链接符号链接符号链接符号链接4文文件件系系统统概概述述5硬连接硬连接v不同的文件名对应同一个不同的文件名对应同一个不同的文件名对应同一个不同的文件名对应同一个inodeinodev不能跨越文件系统不能跨越文件系统不能跨越文件系统不能跨越文件系统v相应相应相应相应系统调用系统调用系统调用系统调用linklink()()
4、rootlocalhost link#ls-ltotal 1-rw-r-r-1 root root 667 Oct 15 13:39 arootlocalhost link#ln a brootlocalhost link#ls-ltotal 2-rw-r-r-2 root root 667 Oct 15 13:39 a-rw-r-r-2 root root 667 Oct 15 13:39 brootlocalhost link#rm arm:remove a?yrootlocalhost link#ls-ltotal 1-rw-r-r-1 root root 667 Oct 15 13:3
5、9 binode/root/linkab文文件件系系统统概概述述6符号链接符号链接v存储被链接文件的存储被链接文件的存储被链接文件的存储被链接文件的文件名文件名文件名文件名(而不是而不是而不是而不是inodeinode)实现链接实现链接实现链接实现链接v可跨越文件系统可跨越文件系统可跨越文件系统可跨越文件系统v相应相应相应相应系统调用系统调用系统调用系统调用symlinksymlink()()rootlocalhost symlink#ls-ltotal 1-rw-r-r-1 root root 667 Oct 15 13:39 arootlocalhost symlink#ln-s a br
6、ootlocalhost symlink#ls-ltotal 1-rw-r-r-1 root root 667 Oct 15 13:39 alrwxrwxrwx 1 root root 1 Oct 15 14:20 b-arootlocalhost yy#rm arm:remove a?yrootlocalhost symlink#ls-ltotal 0lrwxrwxrwx 1 root root 1 Oct 15 14:20 b-arootlocalhost symlink#cat bcat:b:No such file or directoryinode/root/linkab文文件件系系
7、统统概概述述7文件系统类型文件系统类型vvWindowsWindows文件系统文件系统文件系统文件系统FAT16FAT16,FAT32FAT32,NTFSNTFSvv传统传统传统传统UNIXUNIX:UFS(UnixFileSystem)UFS(UnixFileSystem)vvBSDBSD文件系统:文件系统:文件系统:文件系统:FFS(FastFileSystem)FFS(FastFileSystem)vvProcProc文件系统:只存在于内存中文件系统:只存在于内存中文件系统:只存在于内存中文件系统:只存在于内存中vvLinuxLinux文件系统文件系统文件系统文件系统ext2ext2(在
8、(在(在(在Linux2.0.xLinux2.0.x中首次使用)中首次使用)中首次使用)中首次使用)reiserfsreiserfs(在(在(在(在Linux2.2.xLinux2.2.x中首次使用)中首次使用)中首次使用)中首次使用)ext3ext3(在(在(在(在Linux2.4.xLinux2.4.x中首次使用)中首次使用)中首次使用)中首次使用)xfsxfs(源于(源于(源于(源于SGISGI)JfsJfs(源于(源于(源于(源于IBMIBM)vv嵌入式小型文件系统嵌入式小型文件系统嵌入式小型文件系统嵌入式小型文件系统CRAMFSCRAMFSJFFS2JFFS2文文件件系系统统概概述述
9、8Linux的文件系统的文件系统v虚拟文件系统(虚拟文件系统(虚拟文件系统(虚拟文件系统(VFSVFS)设备驱动设备驱动进程控制进程控制子系统子系统系统调用接口系统调用接口用户程序用户程序进程间通信进程间通信调度器调度器内存管理内存管理硬件硬件文文件件系系统统概概述述9虚拟文件系统模型虚拟文件系统模型v虚拟虚拟虚拟虚拟化化化化只只只只存在于内存中存在于内存中存在于内存中存在于内存中v组成组成组成组成超级块超级块超级块超级块存储已安装文件系统的信息存储已安装文件系统的信息存储已安装文件系统的信息存储已安装文件系统的信息通常对应磁盘文件系统的通常对应磁盘文件系统的通常对应磁盘文件系统的通常对应磁盘
10、文件系统的文件系统控制文件系统控制文件系统控制文件系统控制块块块块文件对象文件对象文件对象文件对象inodeinode对象对象对象对象存储单个文件的信息存储单个文件的信息存储单个文件的信息存储单个文件的信息通常对应磁盘文件系统的通常对应磁盘文件系统的通常对应磁盘文件系统的通常对应磁盘文件系统的文件控制文件控制文件控制文件控制块块块块dentrydentry对象对象对象对象描述文件名及相关联的描述文件名及相关联的描述文件名及相关联的描述文件名及相关联的inodeinode信息信息信息信息文文件件系系统统概概述述10虚拟文件的目录项虚拟文件的目录项vdentrydentry定义位置:定义位置:定义
11、位置:定义位置:include/include/linux/dcache.hlinux/dcache.h描述目录与文件的关系树描述目录与文件的关系树描述目录与文件的关系树描述目录与文件的关系树v目录高速缓存(目录高速缓存(目录高速缓存(目录高速缓存(directorycachedirectorycache)保存每一个曾被读取的目录保存每一个曾被读取的目录保存每一个曾被读取的目录保存每一个曾被读取的目录/文件的文件的文件的文件的dentrydentry项项项项加快文件查找效率加快文件查找效率加快文件查找效率加快文件查找效率文文件件系系统统概概述述11虚拟文件系统各对象之间关系虚拟文件系统各对象之
12、间关系vinodeinode对象与文件:对象与文件:对象与文件:对象与文件:一对一一对一一对一一对一vdentrydentry对象与对象与对象与对象与inodeinode对象:对象:对象:对象:多对一多对一多对一多对一(硬连接)(硬连接)(硬连接)(硬连接)v文件对象与文件对象与文件对象与文件对象与dentrydentry对象:对象:对象:对象:多对一多对一多对一多对一文文件件系系统统概概述述12EXT2文件系统文件系统v第一个磁盘块用于引导,其余部分第一个磁盘块用于引导,其余部分第一个磁盘块用于引导,其余部分第一个磁盘块用于引导,其余部分被被被被分成若干分成若干分成若干分成若干组组组组各组大
13、小相同且顺序存放各组大小相同且顺序存放各组大小相同且顺序存放各组大小相同且顺序存放可可可可通过组序号确定组在磁盘上的位置通过组序号确定组在磁盘上的位置通过组序号确定组在磁盘上的位置通过组序号确定组在磁盘上的位置组的构成组的构成组的构成组的构成文件系统超级块文件系统超级块文件系统超级块文件系统超级块 所有组描述符所有组描述符所有组描述符所有组描述符 数据块位图数据块位图数据块位图数据块位图 inodeinode位图位图位图位图inodeinode表表表表 数据数据数据数据块块块块文文件件系系统统概概述述13EXT2文件系统体系结构文件系统体系结构v每组都有一份每组都有一份每组都有一份每组都有一份
14、超级块超级块超级块超级块和和和和所有组描述信息所有组描述信息所有组描述信息所有组描述信息的拷贝的拷贝的拷贝的拷贝正常情况下内核只使用第正常情况下内核只使用第正常情况下内核只使用第正常情况下内核只使用第0 0组的信息组的信息组的信息组的信息当组当组当组当组0 0的拷贝遭到损坏时便可根据其它组的拷贝恢复的拷贝遭到损坏时便可根据其它组的拷贝恢复的拷贝遭到损坏时便可根据其它组的拷贝恢复的拷贝遭到损坏时便可根据其它组的拷贝恢复v数据块位图数据块位图数据块位图数据块位图大小为一个大小为一个大小为一个大小为一个块块块块每每每每一位顺序对应组中的一个一位顺序对应组中的一个一位顺序对应组中的一个一位顺序对应组中
15、的一个块块块块0 0表示可用表示可用表示可用表示可用1 1表示已用表示已用表示已用表示已用vinodeinode表表表表存放文件及目录的存放文件及目录的存放文件及目录的存放文件及目录的inodeinode数据数据数据数据vinodeinode位图位图位图位图表示对应的表示对应的表示对应的表示对应的inodeinode表空间是否已被占用表空间是否已被占用表空间是否已被占用表空间是否已被占用文文件件系系统统概概述述14EXT2索引节点索引节点v支持多达支持多达支持多达支持多达4TB4TB的的的的数据数据数据数据即即即即一个分区的容量最大可达一个分区的容量最大可达一个分区的容量最大可达一个分区的容量
16、最大可达4TB4TB文文件件系系统统概概述述15文件定位示例文件定位示例文文件件系系统统概概述述16EXT3文件文件v日志文件系统(日志文件系统(日志文件系统(日志文件系统(journalingfilesystem)journalingfilesystem)v利用数据库的日志技术(利用数据库的日志技术(利用数据库的日志技术(利用数据库的日志技术(log,checkpointlog,checkpoint)v3 3种日志方式种日志方式种日志方式种日志方式journal,ordered,journal,ordered,writebackwritebackv日志记录在日志记录在日志记录在日志记录在/.
17、journal/.journal中(隐藏文件)中(隐藏文件)中(隐藏文件)中(隐藏文件)vKjournaldKjournald5s5s文文件件系系统统概概述述17proc文件系统文件系统v虚拟文件系统,虚拟文件系统,虚拟文件系统,虚拟文件系统,只存在于内存只存在于内存只存在于内存只存在于内存中中中中可查询、设置系统的运行情况及各种系统参数可查询、设置系统的运行情况及各种系统参数可查询、设置系统的运行情况及各种系统参数可查询、设置系统的运行情况及各种系统参数系统中的很多应用都依赖于系统中的很多应用都依赖于系统中的很多应用都依赖于系统中的很多应用都依赖于procproc文件系统文件系统文件系统文件
18、系统如如如如命令命令命令命令lsmodlsmod等同于等同于等同于等同于 cat/proc/modulescat/proc/modules文件大小文件大小文件大小文件大小为为为为0 0很多文件名反映了内核的相应参数很多文件名反映了内核的相应参数很多文件名反映了内核的相应参数很多文件名反映了内核的相应参数可通过该文件名修改参数可通过该文件名修改参数可通过该文件名修改参数可通过该文件名修改参数值值值值如如#echo 2048 /proc/sys/#echo 2048 /proc/sys/shmmnishmmni,修改共享内存段的限制,修改共享内存段的限制/proc/proc下的下的下的下的“数字目
19、录数字目录数字目录数字目录”指代相应指代相应指代相应指代相应pidpid的的的的进程进程进程进程如如如如目录目录目录目录“1”1”下的内容就是下的内容就是下的内容就是下的内容就是1 1号进程的各种信息号进程的各种信息号进程的各种信息号进程的各种信息文文件件系系统统概概述述18proc文件系统结构文件系统结构文文件件系系统统概概述述19proc文件系统结构文件系统结构进程进程文文件件系系统统概概述述20主要内容主要内容v文件系统概述文件系统概述文件系统概述文件系统概述v系统调用与库函数系统调用与库函数系统调用与库函数系统调用与库函数v基本基本基本基本I/OI/O系统调用系统调用系统调用系统调用v
20、文件属性及目录相关系统调用文件属性及目录相关系统调用文件属性及目录相关系统调用文件属性及目录相关系统调用v标准标准标准标准I/OI/O库库库库v高级高级高级高级I/OI/O库库库库21系统调用与库函数的基本概念系统调用与库函数的基本概念v均均均均以以以以C C函数形式出现函数形式出现函数形式出现函数形式出现系统调用系统调用系统调用系统调用LinuxLinux内核的对外接口内核的对外接口内核的对外接口内核的对外接口用户程序用户程序用户程序用户程序与与与与内核之间的唯一接口内核之间的唯一接口内核之间的唯一接口内核之间的唯一接口提供最小接口提供最小接口提供最小接口提供最小接口程序员手册第二节程序员手
21、册第二节程序员手册第二节程序员手册第二节库函数库函数库函数库函数依赖于系统调用依赖于系统调用依赖于系统调用依赖于系统调用提供较复杂功能提供较复杂功能提供较复杂功能提供较复杂功能例:标准例:标准I/OI/O库库程序员手册第三程序员手册第三程序员手册第三程序员手册第三节节节节系系统统调调用用与与库库函函数数22系统调用与库函数的结构视图系统调用与库函数的结构视图系系统统调调用用与与库库函函数数23无无缓存缓存I/O与有缓存与有缓存I/Ov无缓无缓无缓无缓存存存存I/OI/O读读读读/写写写写-设备设备设备设备文件描述符文件描述符文件描述符文件描述符ANSICANSIC不支持不支持不支持不支持、PO
22、SIXPOSIX支持支持支持支持设备文件访问时使用设备文件访问时使用设备文件访问时使用设备文件访问时使用v有缓存有缓存有缓存有缓存I/OI/O标准标准标准标准 I/OI/O库提供库提供库提供库提供处理很多细节处理很多细节处理很多细节处理很多细节缓存分配缓存分配缓存分配缓存分配以以以以优化长度执行优化长度执行优化长度执行优化长度执行I/OI/O流流流流-FILE-FILE指针指针指针指针普通文件普通文件普通文件普通文件系系统统调调用用与与库库函函数数24主要内容主要内容v文件系统概述文件系统概述文件系统概述文件系统概述v系统调用与库函数系统调用与库函数系统调用与库函数系统调用与库函数v基本基本基
23、本基本I/OI/O系统调用系统调用系统调用系统调用v文件属性及目录相关系统调用文件属性及目录相关系统调用文件属性及目录相关系统调用文件属性及目录相关系统调用v标准标准标准标准I/OI/O库库库库v高级高级高级高级I/OI/O库库库库25基本基本I/O系统调用系统调用v文件描述符文件描述符文件描述符文件描述符v基本基本基本基本I/OI/Oopenopen()()/creatcreat(),close(),read(),write(),(),close(),read(),write(),lseeklseek()()dup()/dup2()dup()/dup2()fcntlfcntl()()i io
24、ctloctl()()基基本本I/O系系统统调调用用26文件描述符文件描述符v非负整数非负整数非负整数非负整数v定义形式定义形式定义形式定义形式intint fdfd;v标准文件描述符定义(标准文件描述符定义(标准文件描述符定义(标准文件描述符定义()STDIN_FILENO(0)STDIN_FILENO(0)STDOUT_FILENO(1)STDOUT_FILENO(1)STDERR_FILENO(2)STDERR_FILENO(2)v文件操作的一般过程文件操作的一般过程文件操作的一般过程文件操作的一般过程打开打开打开打开-读读读读/写写写写-定位定位定位定位-关闭关闭关闭关闭基基本本I/O
25、系系统统调调用用27文件操作示例文件操作示例1/*arudimentaryexampleprogram*/#includemain()intfd,nread;charbuf1024;/*openfile“data”forreading*/fd=open(“data”,O_RDONLY);/*readinthedata*/nread=read(fd,buf,1024);/*closethefile*/close(fd);基基本本I/O系系统统调调用用28文件操作示例文件操作示例2基基本本I/O系系统统调调用用29文件操作相关数据类型文件操作相关数据类型基基本本I/O系系统统调调用用30出错处理出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- chap Linux 文件系统编程 文件系统 编程
限制150内