第15 章 文件系统的实现

15.1 文件系统设计思想

文件系统设计需要考虑的问题:
  • 文件系统是如何分布的
  • 文件是怎么实现的
  • 文件夹是怎么实现的
  • 共享文件是怎么实现的
  • 磁盘空间是符合管理的
我没买一个磁盘(比较常见自己的笔记本里面的磁盘),买来第一件事情就是对磁盘进行分区和格式化;那磁盘为什么要进行分区呢?
  • 易用性:磁盘分区后更方便使用;因为不同的分区可以安装不同的操作系统
  • 安全性:如果一个分区被病毒污染,可以把这个分区给隔离,叨叨保护作用
  • 可靠性:一个分区故障不影响另外一个分区的正常使用
  • 解决内存寻址有限而不能充分使用磁盘的问题:
如果内存字的长度是16位,那操作系统能表示的磁盘地址数是2的16此方 = 65536个磁盘地址,假定一个磁盘数据块是512B,那OS 能够访问的最大磁盘空间是 65536 * 512B = 32MB,可以增加磁盘数据块的大小,但不能从根本上解决这个问题;但如把磁盘分成N个分区,那就可以访问  32M * N 的磁盘空间,可以通过多个分区来解决这个问题

15.2 文件系统的布局

  • 磁盘是 很多个扇面组成的,编程从0开始;第0个扇面在整个文件系统中占据重要的意义。第0个扇面存放的是主引导记录(Master Boot Record--->MBR),这个MBR里面是启动计算机的程序;如果第0个扇面损坏则这个磁盘也不能使用,只能送回硬件厂商那里对磁盘扇面重新编号(给扇面0分配好的区域,让操作系统先启动)
  • MBR 后面是磁盘分区表,表里面维护的信息是磁盘所有的分区和分区的开始地址和终结地址;其中第一个分区我们成为主分区,主分区里面存放的操作系统的镜像   
  • 计算机启动时:处于主板的ROM 里面的BIOS 程序首先运行,BIOS 在进行一些基本的系统配置后对磁盘的扇面0进行读操作,将MBR 程序加载到内存中并执行;MBR 接下来找到系统的主分区,并将主分区里面的Boot Recored 加载并运行。Boot Record 里面有一个小程序,该程序 会负责找到操作系统的镜像,并加载到内存,重启启动操作系统。
  • 文件系统的布局: 

15. 3 文件系统的实现

文件的实现,归根结底就是能够把文件的内容存放在合适的地方,并能够在需要时很容易地独处这些数据。因为文件的实现要解决下面的几个问题:
  • 给文件分配磁盘空间
  • 记住这些磁盘空间的位置
  • 将文件的内容存放在这些空间
数据存放在磁盘上的存放方式,就像程序在内存中存放的方式一样:
  • 连续空间存放方式
  • 非连续空间存放方式
  • 非连续空间又可以分为: 链表方式和索引方式
下面是文件的实现的过程和原理,工大家参考:


15.4  目录的实现:地址独立的实现

  • 文件夹的任务是提供文件名到文件地址的映射,不同的文件组织形式,文件的地址也不一样;我们就用非对称多级索引组织方式来理解:
  • 文件夹记录了下面所有文件对应顶级索引的地址,通过这个顶级索引的地址就可以查询到这这个文件数据在磁盘上所有数据的地址;就可以进行数据的读写操作
  • 文件共享:统一文件可以通过不同的路径(文件夹)来找到其在磁盘的地址,这样就成为文件的共享;多个程序可以根据不同的文件夹来获取地址并进行读写操作,这就是文件共享
  • 文件共享的实现方式就是:软连接和硬链接

15.6 文件系统的挂载和卸载

  • 挂载:就是将一个文件系统(对应一个磁盘)并入另外一个文件系统;就是就是在大文件系统中的inode 机制中加上现在的文件系统,让OS 能在大文件系统中查询到小文件系统的数据即可
  • 卸载:就是把一个文件系统从另外一个文件系统中卸载,让原来在打文件系统中可以使用的磁盘卸载后就不能合理利用了(分配磁盘空间、查询数据),这个文件系统从打文件系统的inode 索引数据中删除了

15.7 闲置空间管理

磁盘闲置空间的管理跟内存闲置空间的管理类似,这里就不再赘述了

15.8 查看linux 系统的inode 数量详情

  • inode 上限个数、已使用个数、未使用个数、已使用占的比例
  • linux 系统 一个inode 缓冲块的大小(单位是字节)





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值