2.   一个磁盘可以划分为N多扇区,每个扇区有512字节 。扇区是磁盘上的基本存储单元,我们可以将每个扇区进行编号,这样磁盘就变为 一系列编了号的块的组合。
3.   磁盘块上存储文件时,按照一定的规律。

每个文件系统分为3部分:超级块,i-节点表,数据区 。
超级块 :存放文件系统本身的信息,比如记录了每个区域的大小,或未被使用的磁盘块的信息。(不同版本稍有差别)
i-节点表 :每个文件都有其属性,大小,最近修改时间等等,这些被存储在ino_t 的结构体中,所有的i-节点都有一样的大小,i-节点表就是这样一些节点的列表。
(表中的每个i-节点都通过位置来标志,例如标志为2的i-节点位于文件系统i-节点表中的第3个位置 )
数据块 :存放文件内容,因为块的大小一定,所以有时一个文件会分布在多个磁盘上。

4.   创建一个文件 的4个步骤:

存储属性:内核先找到一个空的i-节点,把文件的属性信息填入其中;
存储数据:从磁盘上找出空闲块,把文件数据复制进去;
记录分配情况:内核在i-节点的磁盘分布区记录了刚刚的磁盘编号
添加文件名到目录:将(i-节点号,文件名)添加到目录。

NIX文件系统包括引导块、超级块、i节点区、文件存储区、进程对换区等几部分。

引导块占用第0号物理块,不属于文件系统管辖,如果系统中有多个文件系统,只有根文件系统才有引导程序放在引导块中,其余文件系统都不使用引导块;
超级块占用第1号物理块,是文件系统的控制块,超级块包括:文件系统的大小、空闲块数目、空闲块索引表、空闲i节点数目、空闲i节点索引表、封锁标记等。超级块是系统为文件分配存储空间、回收存储空间的依据。
i节点区存放i节点,i节点是对文件进行控制和管理的一种数据结构。
文件存储区是存放文件内容的区域,文件存储区中各数据块的使用情况在超级块中由记录,系统利用超级块中的记录完成对数据块的分配和回收
unix文件系统中很重要的概念之一就是i节点,下面就开始说说这个重要概念。
每一个文件都有自己的i节点,每个i节点都有一个唯一的i节点号。
i节点结构如下(参考/usr/include/sys/ino.h):
struct dinode
{
ushort di_mode;  /*文件类型+用户权限*/
short di_nlink;  /*文件链接数*/
ushort di_uid;  /*属主用户id*/
ushort di_gid;  /*属主用户组id*/
off_t di_size;  /*文件大小*/
char di_addr[40]; /*文件数据区起点地址*/
time_t di_atime; /*最后访问时间*/
time_t di_mtime; /*最后修改时间*/
time_t di_ctime; /*创建时间*/
};
从上面这个结构可以看出以下一些信息:
1、i节点保存了文件的属性和类型、存放文件内容的物理块地址、最近一次的存取时间、最近一次的修改时间、创建此文件的时间。
2、i节点中没有记录文件名字,那文件名是怎么关联到i节点,这么设计又有什么好处呢?
呵呵,这里就关系到了 硬连接与符号连接的区别?
3、di_mode这个是怎么保存文件类型+用户权限的,这个如果引申下来也很值得一说。
一般我们用l列文件看到的是这样的结果:
drwxr-xr-x   7 root     sys          512 Dec 15  2002 var
-rw-r--r--   1 root     sys         4003 Jul  4 23:37

unix文件中i节点相关推荐

  1. 【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )

    文章目录 一.创建 XmlParser 解析器 二.获取 Xml 文件中的节点 三.获取 Xml 文件中的节点属性 四.完整代码示例 一.创建 XmlParser 解析器 创建 XmlParser 解 ...

  2. 创建XML文件以及XML中的节点和更新Xml文件中的节点的值

    最近在项目中用到了XML文件,需要将一些配置信息保存到指定的XML文件中.因此就用到了对XML文件中节点的值的更新的功能. 首先我们来创建一个XML文件,并在文件中创建几个值,我们来看下Demo的代码 ...

  3. 从Config文件中读取节点的配置信息

    下面是web.config中与本内容有关的细节 <appSettings><add key="servername" value="www"/ ...

  4. UNIX文件的实现——索引节点

    POSIX没有强制磁盘上的文件采取任何特定的表示方法,但是传统的UNIX文件都是按照改进的树状结构来实现的.目录项中包含一个文件名 和一个定长结构的引用(索引节点).索引节点包含与文件长度.文件位置. ...

  5. linux文件i节点,深入理解linux中i节点(inode)

    对于Unix系列的操作系统,大多都有v节点.但是对于linux来说,只有通用的i节点,却没有v节点. 下面来探讨一下,linux下的i节点. linux中,文件查找不是通过文件名称来查找的.实际上是通 ...

  6. php linux脚本文件,Unix/Linux中如何直接执行PHP脚本文件?

    使用Linux系统的服务器都有搭建完整的PHP环境,因此有些用户会用PHP去写一些执行自动化任务的脚本,可是发现每次执行PHP脚本都需要使用php myscript.php的方式,感觉有点麻烦.其实我 ...

  7. chmod 是一条在Unix系统中用于控制用户对文件的权限的命令

    chmod 是一条在Unix系统中用于控制用户对文件的权限的命令(change mode单词前缀的组合)和函数.只有文件所有者和超级用户可以修改文件或目录的权限.可以使用绝对模式,符号模式指定文件的权 ...

  8. vscode中如何创新建php文件,php – 如何在Visual Studio Code,UNIX中的所有文件中创建所有行结尾(EOL)?...

    我使用Windows 10 home,我通常使用Visual Studio Code(VSCODE)来编辑Linux Bash脚本以及PHP和JavaScript. 我没有开发任何专门用于Window ...

  9. php 时间戳存储 原因,将php文件中的unix时间戳存储到mysql中(store unix timestamp from php file into mysql)...

    将php文件中的unix时间戳存储到mysql中(store unix timestamp from php file into mysql) 现在我有这个代码: $mysqldate = date( ...

  10. Linux如何查询目录默认权限,如何设置UNIX/Linux中新创建目录或文件的默认权限

    在unix或者linux中,创建一个新文件或者目录时,这个文件或者目录都具有一个默认的权限,比如目录755,文件644,这些默认权限是由umask(权限掩码)来控制的,一般umask默认值为022,其 ...

最新文章

  1. sqlite java excel,Android将Excel表数据导入SQLite数据库
  2. 1-6 数据查询(下)——复杂查询
  3. 乐鑫wifi模块二次开发_米家部分智能硬件拆解,ZigBee/WIFI模块分析及二次开发
  4. 奔小康赚大钱 hdu 2255( KM )
  5. 自己构建一个高效缓存服务!
  6. php通过实现excel导入,php实现excel导入数据
  7. cad考试题库绘图题答案_2019年低压电工作业操作证考试最新版题库及答案(一)...
  8. python学生管理系统(函数方法)_(python函数)学生管理系统
  9. linux文件偏移函数实验报告,Linux实验报告二.doc
  10. [数据仓库]基于大数据的数仓和传统数仓的区别
  11. 2017计算机办公自动化试题,2017办公自动化考试试题
  12. 职高计算机专业c语言_C语言程序设计(全国高职高专计算机系列精品教材)
  13. mysql基础面试题大全
  14. 老男孩python最新15期课程安排_老男孩Python完美实战课程 14期视频教程 28周Python视频教程 15-25周部分...
  15. 一文盘点目前免费的云服务器
  16. 单价数量和总价的公式_总价数量单价的数量关系式
  17. 十二栋发布新品牌BC12 能否成衍生品市场黑马?
  18. MachineLearning 4. 癌症诊断方法之 K-邻近算法(KNN)
  19. python爬虫:利用BeautifulSoup爬取链家深圳二手房首页的详细信息
  20. 行频、场频与分辨率、刷新率

热门文章

  1. android 图片合成pdf文件,怎样将图片转换成pdf文件时将它们合并成一个pdf文件?...
  2. Microsoft store 微软商店 下载错误 代码: 0x80240004
  3. Pr插件大全一键安装包视频剪辑必备工具预设
  4. matlab基础与应用教程 王月明,MATLAB基础与应用教程
  5. 目标检测经典算法集锦
  6. 制作一个PHP互动网页
  7. MFRC50001T
  8. AD检查步骤及其顺序
  9. halcon 深度学习标注_halcon深度学习: 分类
  10. TS封装格式介绍及解析