目录
文件,按照有没有被进程打开可以分为内存级文件和磁盘级文件。被某个进程打开的文件需要加载到内存,OS为了管理这些文件,会设立struct file结构体,还有进程PCB中的files指针指向结构体中的文件描述符表,存储进程打开的struct file的地址,这是之前所了解的内存级文件。
若一个文件没有被任何进程打开,则应该存储在磁盘中,我们接下来要了解的就是这部分磁盘级文件。
磁盘的结构

1. 内存:掉电易失存储介质 磁盘:永久性存储介质
2. 磁盘通过是否磁化来表示01,从而存储二进制数据,而磁化性是通过磁头改变的。向磁盘写入,本质就是改变盘面上的磁化性,即磁化或未磁化。
3. 如上图,磁盘存储数据的基本单位是扇区,一个扇区传统为512字节,即0.5KB。
4. CHS寻址:C表示磁道(柱面),H表示盘面,S表示扇区。也就是,通过盘片的旋转和磁头的左右摆动,确定哪一个磁道,哪一个盘面,哪一个扇区。即可找到磁盘中的任何一个扇区,即可通过磁头读写该扇区。这是磁盘物理上的的寻址方式。
磁盘的抽象(虚拟,逻辑)结构
操作系统为了更好地管理访问磁盘中的数据,将磁盘的这种物理上的圆形结构抽象为线性数组结构,数组的每个元素都是一个扇区,即sector disk[1024*1024*N],这样访问某一个扇区,只需要知道数组下标即可。这种称为LBA (Logical Block Addressing)逻辑块寻址模式。只需要将LBA转化为CHS,即可访问到磁盘的任何一个扇区。
分区
抽象为线性的数组结构之后,一个磁盘很大因此很难管理,所以操作系统将其进行分区操作。分为若干个区之后,对磁盘的管理->对一个小分区的管理。(每个分区的大小不一定相同)

对于每一个小分区,都有如上结构,一个Boot Block和若干个块组Block Group。
Boot Block称为启动块,存储了磁盘的分区信息和启动信息等...每个分区都存储一份是备份的作用
块组Block Group是磁盘分区后的基本单位。相当于对每个分区又进行了划分,下面主要了解块组的组成。
Block Group 块组:
前言:
1. 文件 = 内容 + 属性。Linux在磁盘上存储文件时,是将内容和属性分开存储。
2. inode是一个128字节的空间,保存的是对应文件的属性,属性中有一个inode编号字段。一般而言,一个文件,一个inode,一个inode编号。
3. 磁盘的存储基本单位是扇

本文介绍了Linux文件系统的结构,包括磁盘的物理和逻辑结构,分区,块组,以及文件名与inode编号的关系。重点讨论了软链接和硬链接的区别,强调了硬链接数与inode引用计数的关系。通过分析创建、删除和查看文件时操作系统的行为,揭示了文件系统管理的原理。
最低0.47元/天 解锁文章
1132

被折叠的 条评论
为什么被折叠?



