磁盘的物理结构,如图所示,注意区分几个概念,值得注意的是扇区,簇
扇区和簇的区别
一个扇区大小512B,但硬盘在进行文件操作时并非以扇区为单位,而是——簇,“簇”是系统进行分配的最小单位,一个簇可以包含多个扇区
MBR
什么是MBR
master boot record 主引导记录,位于磁盘的0号扇区
有什么作用
计算机开机时,BIOS读入并执行MBR,MBR第一件事就是确定活动分区,读入这个分区的地一个块,即引导块,引导块中的程序将加载计算机操作系统
文件存储
文件存储的关键问题
即记录哪个文件用了哪些磁盘块
文件存储的方法
连续分配
链表分配
内存中链表分配
i节点
具体见<操作系统原理>P156
这几个方法哪个最为常用,即优缺点
连续分配性能高,但磁盘浪费严重
链表分配磁盘利用率高,随机读取速度相当慢
内存中链表分配,费内存,需要把整个表都放进内存中
最常用的是i节点
i节点原理
每个文件都赋予了一个i节点数据结构,里面你列出了文件属性和文件的磁盘地址
那么与内存链表分配有那些优点
这样的话,只有打开的文件才在内存中,节省内存空间.
i节点还有个问题,每个节点只能呢个存储固定数量的磁盘地址,如何文件很大怎么办?
节点中最后一个磁盘地址不指向具体的磁盘地址,而是指向一个包含更多磁盘地址的磁盘块
拓展:
硬链接和软链接区别
硬链接的文件的i节点号码都一样,多个文件名指向了同一个i节点,所以删除一个另一个不受影响
软链接是一个快捷方式,实际上是一个文本文件,里面保存了到真正地址的位置信息
如何查看一个文件的inode值
ll -i
查单个用stat命令
ps:软一峰也有篇文章科普inode(http://www.ruanyifeng.com/blog/2011/12/inode.html),但是我任务软一峰没有从文件存储的角度来引出来inode,也没有将为什么出现了inode,有什么优点,算是这类科普文章的一个缺点,速记但也容易速忘
linux目录的实现
linux和dos的实现区别
dos直接把文件属性放进了目录项中
linux吧文件属性放进了i节点当中
即每个目录有对应的一个列表,列表当中哦给你存储了各个文件的i节点及文件名
对于目录中文件名的处理方式
因为文件名是不固定长度的,自然有两种处理方式
一种是列表中为每个文件都保留了固定长度的空间
另一种是文件名指向了一个专门的区域中,暂称为堆,但不是数据结构中的堆
优缺点自然很明星,肯定是第二种优先,但一定要维护好这个堆区域