严小日答自己问:linux文件系统的实现

磁盘的物理结构,如图所示,注意区分几个概念,值得注意的是扇区,簇

严小日答自己问:linux文件系统的实现_第1张图片
硬盘物理结构.jpg
扇区和簇的区别
    一个扇区大小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节点及文件名
    对于目录中文件名的处理方式
        因为文件名是不固定长度的,自然有两种处理方式
            一种是列表中为每个文件都保留了固定长度的空间
            另一种是文件名指向了一个专门的区域中,暂称为堆,但不是数据结构中的堆
            优缺点自然很明星,肯定是第二种优先,但一定要维护好这个堆区域

你可能感兴趣的:(严小日答自己问:linux文件系统的实现)