目录
- 1.磁盘的物理结构
- 2.磁盘的物理存储结构
- 3.文件系统
- 4.硬链接
- 4.1
- 4.2
- 5.软链接
- 6.三种时间
1.磁盘的物理结构
- 盘片:一片两面,有一摞盘片。
- 磁头:一面一个磁头,一个磁头负责一面的读取(磁头是一起动的)。
- 马达:控制盘片的旋转和磁头的往复运动
2.磁盘的物理存储结构
- 扇区:磁盘中存储的基本单元,512字节 or 4KB字节。一般的磁盘,所有扇区都是512字节。
- 磁道:相同半径上的所有所有扇区构成一个磁道。
- CHS定位法:(1)利用磁头确定在哪个面(2)定位磁道(3)根据扇区编号在磁道上定位扇区
- 注意:每个扇区的大小是相等的(最新的可能不相等),每个磁道扇区数目相同。
但是CHS是硬件上定位地址的方法,软件需要使用其它定位方式,并和硬件做好解耦工作。
3.文件系统
-
盘片是一个圆形,怎样将物理结构和数据结构结合起来呢?
我们可以把盘片想象成磁带一样的结构,这样就能把他想象成线型结构。 -
一个盘由很多块结构组成,为了方便管理,将块又划分成若干区结构(相当于Windows分盘),再将区分成组
-
Linux ext2文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被划分为一个个的block。一个block的大小是由格式化的时候确定的,并且不可以更改。例如mke2fs的-b选项可以设定block大小为1024、2048或4096字节。而上图中启动块(Boot Block)的大小是确定的。
- Block Group:ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相
同的结构组成。政府管理各区的例子- 超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,
未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的
时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个
文件系统结构就被破坏了- GDT,Group Descriptor Table:块组描述符,描述块组属性信息,有兴趣的同学可以在了解一下
- 块位图(Block Bitmap):Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没
有被占用- inode位图(inode Bitmap):每个bit表示一个inode是否空闲可用。
- i节点表:存放文件属性 如 文件大小,所有者,最近修改时间等
- 数据区:存放文件内容
创建新文件需要以下四个操作:
- 存储属性
内核先找到一个空闲的i节点(这里是263466)。内核把文件信息记录到其中。- 存储数据
该文件需要存储在三个磁盘块,内核找到了三个空闲块:300,500,800。将内核缓冲区的第一块数据
复制到300,下一块复制到500,以此类推。- 记录分配情况
文件内容按顺序300,500,800存放。内核在inode上的磁盘分布区记录了上述块列表。- 添加文件名到目录
新的文件名abc。linux如何在当前的目录中记录这个文件?内核将入口(263466,abc)添加到目录文
件。文件名和inode之间的对应关系将文件名和文件的内容及属性连接起来。
4.硬链接
4.1
硬链接形成的文件和源文件的inode数字相同,因此可以看成是原文件的别名。
硬链接只是建立了新文件名和
有两个硬链接链接数就是3,删掉一个就变成二。硬链接数本质是引用计数。
我们在删除文件时干了两件事情:1.在目录中将对应的记录删除,2.将硬连接数-1,如果为0,则将对应
的磁盘释放。
4.2
当我们了解了硬链接,我们就可以解释之前学过的点和点点了
其实一个点就是当前目录的硬链接,目录也是文件,因此一个点的硬链接数为2
两个点事是上级目录的硬链接,上级目录只包含一个目录,因此就是自己的一个点加包含目录的两个点还有自己的目录名。
不允许用户给目录建立硬链接,防止产生环路路径。
5.软链接
软链接形成的文件和源文件的inode数字不同,因此是一个独立的文件,新文件中保存的是原文件的路径。
软链接有什么用呢?
——可以当做快捷方式
可以看到我们想要在test2中使用test3中的文件mytest,这时候只需要建立软链接就可以了。
同样是可以直接运行的。
6.三种时间
change——属性修改时间
modify——内容修改时间
改内容属性也会变化,modify和change可能一起改
access——查看的时间(不一定每次查看时间都更新,因为频率高)