哈工大-操作系统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=根目录

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

相关推荐
呉師傅4 分钟前
国产化操作系统---银河麒麟安装步骤(简单介绍)
运维·网络·windows·单片机·电脑
Code Warrior32 分钟前
【Linux】应用层协议HTTP
linux·网络·网络协议·http
Hello,C++!1 小时前
linux下libcurl的https简单例子
linux·数据库·https
踏雪Vernon1 小时前
[OpenHarmony6.0][Docker][环境]OHOS6 编译环境构建指南
运维·docker·容器
阿里云大数据AI技术1 小时前
云栖实录 | 洋钱罐基于 EMR Serverless 产品构建全球一体化数字金融平台
大数据·运维
saber_andlibert1 小时前
【Linux】Shell脚本
运维·chrome·vscode·编辑器·vim·shell
qq_401700411 小时前
Linux 磁盘挂载管理
linux·运维·服务器
AIwenIPgeolocation2 小时前
IP定位精度疑问:有些IP为什么难以达到街道级准确度?
服务器·网络·tcp/ip
liu****2 小时前
20.传输层协议TCP
服务器·网络·数据结构·c++·网络协议·tcp/ip·udp
百***25612 小时前
Nginx作用以及应用场景
运维·nginx