码迷,mamicode.com
首页 > 其他好文 > 详细

文件系统(File System)

时间:2018-05-07 13:34:35      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:node   通过   try   cti   基本   使用   font   message   bit   

什么是文件系统,引用百科解释:

  操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。

文件系统是操作系统核心的组成部分,没有它我们无法完成对文件的增、删、改、查等基本操作

 

概念

  在了解文件系统之前我们需要了解一些基本概念

  • inode 索引节点 (index node)

  我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号,inode中保存着文件创建时间(ctime)、修改时间(mtime) 、文件大小、属主、归属的用户组、读写权限、数据所在block号等信息)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。

  • block data(数据块)

    数据块即真正存储用户数据的地方,每个数据块大小固定相等(1024或者4096)字节

  • dir_entry(目录结构 / 目录条目)  

    目录结构实质也是一个数据块,该数据块类似于一个表格,记录当前目录下对应的文件名,和文件名对应的inode

  • bitmap(块位图)

  在每个分区的数据的储存区是由一个又一个的数据块(data block)组成,在用户需要存储新的数据时需要遍历整个分区的数据块,这显然是非常耗时的,所以每个分区都存在一个快位图,每一个数据块在块位图中都存在一个标识符(1个bit),用于表示该块当前储存状态,在存入新数据时只需要遍历块位图就能快速找到空闲的数据块

  • inode_map(inode位图)

    inode在磁盘格式化完成后就已经完成分配,每个inode都有固定且唯一的ID,为了知道哪个inode是可用的,所以我们又需要inode_map来标识每个inode状态

 

那文件系统又是如何查找文件的呢?

例如想要找到 /log/var/log/message 文件,如下图

技术分享图片

找到根目录inode(自引用) -- 根目录数据块 -- var目录inode -- var目录数据块 -- log目录inode -- log目录数据块 -- message文件inode -- message文件

 

文件系统(File System)

标签:node   通过   try   cti   基本   使用   font   message   bit   

原文地址:https://www.cnblogs.com/xiaoliwang/p/9001753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!