【精】与HDFS相关的Linux基础知识:内核是怎么保存文件描述符相关数据结构的?

编程知识 更新时间:2023-04-06 12:44:55

研究分布式文件存储系统,少不了与底层操作系统,文件系统,存储设备等打交道。了解这些基本原理对我们全方位理解分布式存储,问题定位,性能优化等有很大帮助。

大家都知道,在linux中,一切都是文件,对文件的操作都是通过打开此文件拿到文件描述符,然后通过文件描述符来操作的,今天来看下文件描述符在内核中是用什么样的数据结构保存的。

多个文件描述符可能指向同一个打开的文件,这些文件描述符可能是在同一个进程中,也可能是在不同的进程中。

为了弄懂文件描述符原理,我们需要知道内核中维护的三个数据结构:

  • 每个进程的 file descriptor table
  • 系统层面的 open file description table (注意第三个单词,不是descriptor)
  • 文件系统 i-node table

我们分别来介绍一下这个三个数据结构所保存的信息以及它们之间的关系。

首先第一个,对于每个进程来说,内核都维护了该进程的open file descriptors表,这个表里面的每条记录(entry)描述一个文件描述符的信息,包括:

  • 控制文件描述符相关操作的flag集合
  • 指向open file description 的引用

第二个,内核维护了一个系统层面的所有打开文件的描述表( open file descriptions)。上文提到的文件描述符里面的指向open file description的引用就是指向的这个表里的一个文件。此表里的一个 open file description保存了一个打开文件的所有信息。包括:

  • 当前打开文件的offset

更多推荐

【精】与HDFS相关的Linux基础知识:内核是怎么保存文件描述符相关数据结构的?

本文发布于:2023-04-06 12:44:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/90bc303f0f72f8867cda4a6e6de7efe0.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:是怎么   数据结构   内核   基础知识   保存文件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 49574文章数
  • 14阅读数
  • 0评论数