哈工大-操作系统L31

目录与文件系统

一.文件系统

将整个磁盘按照一定的方式存放一定的信息最后形成这样一个文件系统,磁盘是一堆盘块,这一堆盘块要存放各种信息,这些信息经过操作系统读取维护之后形成这个样子的文件系统.

用户给出使用接口的方式操作系统负责拿到这个方式,根据磁盘块上维护的这些抽象关系(映射),来把用户抽象的使用落实为盘块的读写

可以在不同的操作系统上使用

二.目录树

目录树由多个文件组织结构

用户从上层发下来的是路径名

将所有文件的FCB存放到目录下,找到目录之后挨个匹配,这种方法太慢了,通过匹配目录名字符串来找到,根据这个字符串找到这个字符串所对应的FCB

因为不知道文件的位置需要将所有的序队读到内存中跟字符串匹配,读进来只需要匹配字符串,FCB是没有用的,因为只匹配一个目录,把那个一个取出来就可以了,现在为了这样做把所有的序对都读进来了,FCB比较大

要存放字符串,不要存放FCB,FCB太大了,还要在匹配成功之后找到对应的FCB,根据编号(指针)找到磁盘上的FCB

根据根目录的FCB存放的i_zone(索引项)找到数据块,数据块就根目录存放的内容,目录项和编号,

根据编号和FCB数组就可以算出到各个目录或文件的位置

根目录是0,放在固定的位置,第一个位置,磁盘格式化的时候记录第一个位置,这个位置的位置在一个固定的位置,读整个磁盘,只要读磁盘就可以找到跟目录,根目录放在inode数组中的第一项(i节点),不可以在第一块上,前面还需要存放一些信息,磁盘的大小,存放的文件数目

inode位图,管理inode(文件),建一个文件对应inode位置成1删除一个文件置成0

盘块位图,管理盘块大小,要读要写要分配要释放

超级块,超级块是位置固定的,向后读得到inode位图和盘块位图的位置,在加上超级块,解析之后就可以找到根目录,就可以得到根目录,比如超级块是4,inode位图是x,盘块位图是y,4+x+y=根目录

还可以这两个位图读写文件修改文件删除文件新建文件

相关推荐
数字补给站8 小时前
Windows 10 + Hyper-V + Terraform + cloud-init:批量产出 3 台 Ubuntu 的实践笔记
运维·ai编程
分支预测失败9 小时前
RISC-V 核间中断 IPI 实战:从 MSIP 寄存器到 IMSIC 消息投递
linux·后端
这个DBA有点耶9 小时前
同样48核配置TPS差1倍?高性价比数据库一体机的“软硬协同”才是分水岭
服务器·数据库·架构
GeW10 小时前
RHCE考试避坑指南"90%考生容易忽略的细节
linux
键盘会跳舞11 小时前
【C++多线程】死锁诊断工具实战:从 Windows 到 Linux 的全链路排查
linux·c++·windows·死锁
拂拉氏12 小时前
【知识讲解】 Linux环境变量的认识与使用
linux·环境变量
zhangrelay12 小时前
答疑-是否软件源问题都必须更换为国内呢-
linux·笔记·学习·ubuntu·ros2
zhangrelay12 小时前
《ROS 机器人程序设计》课程教学大纲-2026- kinetic-lyrical
linux·笔记·学习·ubuntu·机器人
KFCgrandpahhh12 小时前
rk3576点灯
linux·驱动开发
拂拉氏12 小时前
【知识讲解】 Linux进程认识及深度理解
linux·进程