Linux文件包含以下种类: 1.普通文件 2.目录 3.符号链接 4.块设备文件 5.字符设备文件 6.无名管道和有名管道 7.套接字 前三种类型是所有Linux文件系统中都有的类型,这些类型的实现在第八章详细描述。设备文件和IO文件与集成在内核中的设备驱动相关联;比如,当程序访问一个设备文件时,它直接通过该文件相关的IO驱动来操作。管道和套接字是用于进程间通信的特殊文件。Linux中明确区分文件内容和文件信息。除了驱动文件和文件系统中特殊的文件之外,每个文件由字节序列组成。这些文件不包含任何控制信息,比如文件长度和文件尾定界符。文件系统处理文件所需的所有信息都包含在一个被称作Inode的数据结构中。每个文件都有自己的inode,文件系统用inode唯一标识该文件。虽然Linux系统和其他系统的文件系统及处理内核函数方面存在很大差异,它们都必须至少提供以下POSX标准中的属性:
- 文件类型
- 与文件相关的硬链接数量
- 文件的字节长度
- 设备ID(例如,包含该文件的设备标识符)
- 文件系统中标识该文件的Inode的数量
- 文件所有者的UID
- 该文件所属的用户组
- 具体标识文件Inode状态的修改时间、上次访问时间和最近修改时间的时间戳
- 访问权限和文件模式(以后再聊)
|