UNIX内核的文件数据结构 -- v 节点与 i 节点
2014-06-15 15:59
155 查看
龙泉居士:http://hi.baidu.com/zeyu203/item/cc89cfc0f36bfecc994aa07c
内核使用三种数据结构表示打开的文件(如图),他们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响
每个进程在进程表中都有一个记录项,进程表项中包含有一张打开文件描述符表
1。文件描述符表
(1)记录了文件的文件描述符标志
(2)指向一个文件表项的指针
2。内核为所有打开的的文件都维持一张文件表
文件表项包含:
(1)文件状态标志(读、写、填写、同步和非阻塞等)
(2)当前文件偏移量
(3)指向v节点的指针
3。v节点表
v节点包含了文件类型和对此文件进行各种操作的函数的指针
对于大多数文件,v节点还包含了该文件的i节点,i节点包含了文件的所有者、文件长度、文件所在设备、指向文件实际数据块在磁盘上所在位置的指针等
(linux系统只使用i节点,而不使用v节点)
如下图所示,你就可以理解为什么只用数字0 1 2 3 。。。的文件描述符就可以找到具体的文件了
![](http://h.hiphotos.baidu.com/space/pic/item/b3fb43166d224f4aff151c8a09f790529922d19f.jpg)
![](http://e.hiphotos.baidu.com/space/pic/item/023b5bb5c9ea15ceca9c8990b6003af33a87b23d.jpg)
当多个进程同时打开一个文件时,每个进程有自己的文件表项,用以记录该进程对该文件的偏移量,及文件状态
但也可能会有多个文件描述附项指向同一个文件表项,如fork后,父子进程共享同一个文件表项
关于 i 节点和UNIX中关于文件系统结构的更多介绍, 可以参看:UNIX文件系统
内核使用三种数据结构表示打开的文件(如图),他们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响
每个进程在进程表中都有一个记录项,进程表项中包含有一张打开文件描述符表
1。文件描述符表
(1)记录了文件的文件描述符标志
(2)指向一个文件表项的指针
2。内核为所有打开的的文件都维持一张文件表
文件表项包含:
(1)文件状态标志(读、写、填写、同步和非阻塞等)
(2)当前文件偏移量
(3)指向v节点的指针
3。v节点表
v节点包含了文件类型和对此文件进行各种操作的函数的指针
对于大多数文件,v节点还包含了该文件的i节点,i节点包含了文件的所有者、文件长度、文件所在设备、指向文件实际数据块在磁盘上所在位置的指针等
(linux系统只使用i节点,而不使用v节点)
如下图所示,你就可以理解为什么只用数字0 1 2 3 。。。的文件描述符就可以找到具体的文件了
![](http://h.hiphotos.baidu.com/space/pic/item/b3fb43166d224f4aff151c8a09f790529922d19f.jpg)
![](http://e.hiphotos.baidu.com/space/pic/item/023b5bb5c9ea15ceca9c8990b6003af33a87b23d.jpg)
当多个进程同时打开一个文件时,每个进程有自己的文件表项,用以记录该进程对该文件的偏移量,及文件状态
但也可能会有多个文件描述附项指向同一个文件表项,如fork后,父子进程共享同一个文件表项
关于 i 节点和UNIX中关于文件系统结构的更多介绍, 可以参看:UNIX文件系统
相关文章推荐
- Unix 文件系统的一些基本理论(关于i-节点)
- 关于文件的几个内核数据结构
- 使用cat读取和echo写内核文件节点的一些问题
- 基于UNIX的操作系统内核——目标文件格式、调试文件格式、运行时环境、安全
- UNIX环境编程学习笔记(3)——文件I/O之内核 I/O 数据结构
- 第3章 文件I/O(3)_内核数据结构、原子操作
- UNIX内核(6):inode与文件、目录
- Linux/Unix文件系统索引节点浅析
- Linux-2.6 open()打开文件涉及的内核处理和数据结构分析
- linux内核驱动---创建设备节点文件
- Linux3.0.0内核中客体(如文件/目录)相关的DAC安全数据结构(传统9Bit模块、ACL模式)
- UNIX文件系统--i节点小知识
- 文件相关内核数据结构
- UNIX内核用于所有I/O的数据结构
- 四、文件IO——内核数据结构和原子操作
- Unix编程学习笔记---文件系统与 i节点
- UNIX的文件管理--i node(i节点)
- unix文件中i节点
- 面试珠玑 在unix文件系统中,inode节点包括哪些内容?
- Unix文件系统研究:1. i节点