【Linux取经路】文件系统——inode与软硬链接
文章目录
- 一、前言
- 二、认识硬件——磁盘
-
- 2.1 磁盘的存储构成
- 2.2 磁盘的逻辑抽象
- 三、操作系统对磁盘的使用
-
- 3.1 再来理解创建文件
- 3.2 再来理解删除文件
- 3.3 再来理解目录
- 四、硬链接
- 五、软链接
- 六、结语
一、前言
在之前的【Linux取经路】文件系统之被打开的文件——文件描述符的引入一文中讨论了被打开的文件,今天讨论的话题则是没有被打开的文件。文件等于文件内容加文件属性,没打开的文件一定是存储在磁盘上的,并且 Linux 是将文件的属性和内容分开存储。文件内容以数据块的形式进行存储,文件属性以 inode 的形式进行存储。
二、认识硬件——磁盘
我们这里说的磁盘指的是机械磁盘,并非我们现在我们笔记本上使用的 SSD。机械磁盘是计算机上唯一的一个机械设备,也是一个外设。
小Tips:磁头是一面一个,磁头与盘面不接触。磁头通过向盘面进行充放电来完成数据的写入。磁盘叫做永久性存储介质,内存叫做掉电易失性存储介质。
2.1 磁盘的存储构成
每一个盘面由多个磁道构成,一个磁道又有多个扇区构成。磁盘被访问的最基本单元是扇区,一般扇区的大小是 512 字节,有的是 4KB。要修改磁盘中 1 字节的数据,需要把该字节所在的扇区都加载到内存中。可以把磁盘看成是由无数个扇区构成的存储介质。要把数据存储到磁盘,第一个需要解决的问题就是如何定位一个扇区,首先需要定位盘面,也就是确定用哪个磁头,因为一个磁头对应一个盘面,接下来需要定位磁道,最后定位扇区。所有的磁头都是同步运动的,在某一时刻,从从上向下看去,以磁头所在点为半径的不同盘面上的磁道就会形成一个叫做柱面的结构。磁头运动主要是去定位磁道,盘面旋转主要是去定位扇区,磁头的定位是由硬件电路进行控制。由此可见,磁盘的读取效率取决于磁头、盘面的运动速度和运动次数,运动越少,效率越高;运动越多,效率越低。因此,在软件设计上要求设计者一定要有意识的将相关数据放在一起。
2.2 磁盘的逻辑抽象
最终一个磁盘可以看作是基于扇区的数组,每一个扇区都对应有一个下标来唯一标识。通过这个下标(LBA 逻辑扇区地址),再结合每一面磁道的个数和每一个磁道上扇区的个数就可以定位到该扇区在磁盘上的位置(CHS地址)。
小Tips:不仅 CPU 有寄存器,其它外设也有,磁盘中也有寄存器。比如:控制寄存器,用来存储 CPU 下发的读写指令;数据寄存器,存储要写入的磁盘的数据;地址寄存器,存储 CPU 传送来的 LBA 地址;状态寄存器ÿ
本文地址:https://www.vps345.com/10143.html