文件系统
基本概念
基本结构
如上图所示, 一个磁盘可看成由多个分区组成,一个分区便包含一个文件系统。
每个文件系统由字举块,超级块和柱面组构成,其中柱面组得关键部分为 i节点和磁盘数据块之间得引用关系
i节点与数据块关联
内核中i节点是一个struct, 包含了文件有关得所有信息(链接数,文件访问权限位,文件类型,文件长度,指向文件数据块的指针以及相应得方法);
i节点的链接数等于该i节点所指向的目录项数,譬如上图中 中间i节点得连接数为2;当链接数为0时,才能删除文件。
文件
文件类型
- 普通文件:对Unix内核而言,不区分文本文件与二进制文件
- 目录文件:这种文件包含了其他文件的名字以及指向与这些文件有关的信息的指针
- 快特殊文件:块设备,每次访问以固定长度进行
- 字符特殊文件: 不带缓冲,每次访问的长度可变
- FIFO:命名管道,用于进程间通信,本质上是内存
- 套接字:用于进程间网络通信
- 符号链接:这种类型的文件指向另一个文件
文件属性
设置用户ID和设置组ID
与一进程相关联的ID大于等于6个,如下表
实际用户ID和实际组ID标识我们究竟是谁。
举个例子: 假设A登录某台机器 创建了文件A_apue.txt, 则这个文件的实际用户便为A,其实际用户ID便是映射到A
有效用户ID、有效用户组ID以及附属组ID决定了文件的访问权限
详细讲解可参考:https://blog.youkuaiyun.com/abcdef0966/article/details/5725121
保存的设置组ID和保存的设置ID在执行程序时包含了有效用户ID和有效用户组ID的副本
每个文件也拥有一个文件所有者ID和文件组所有者ID,用于决定该文件的访问权限
文件访问权限
所有文件均有访问权限