非常详细!操作系统:【文件系统概述】

简介: 非常详细!操作系统:【文件系统概述】



1 文件系统概述

1.1 文件管理应该解决的问题

1.1.1 文件属性

1.1.2 文件数据的组织

1.1.3 文件之间的组织

1.1.4 向上提供的功能

1.1.5 总结

1.2 文件应该怎么存放在外存中

1.3 其他问题

1.4 总结

2 文件目录

2.1 总览

2.2 文件控制块

2.2.1 什么是目录文件

打开一层目录,都可以看到里面的文件内容,比如:

那么操作系统会为每一层文件都建立一个目录文件,如图

这张表记录了文件名(最重要)、文件存放的物理位置(最重要)、文件类型等等很多的信息。当我们打开一个文件时,实际上操作系统内部发生的事情为:

2.2.2 什么是文件控制块

目录文件中的一条记录就是一个文件控制块(FCB)。如图

2.2.3 文件目录快的作用

(1)存储基本信息

(2)实现映射

2.2.4 目录需要提供的功能

2.3 目录结构

2.3.1 单文件目录结构

主要存在于早期操作系统,整个系统中只有一个目录表,每个文件都占一个目录项。

2.3.2 两级目录结构

示意图如下所示:

允许不同用户的文件重名,但是用户不可以对自己的文件进行分类,不太方便。

2.3.3 多级目录结构(树形目录结构)

(1)示意图

是现在大多计算机普遍使用的目录结构

(2)绝对路径

(3)相对路径

总而言之,相对路径可以提升操作系统的效率

2.3.4 无环图目录结构

(1)树形结构的缺点

(2)示意图

简而言之,在无环图目录结构中,允许多个文件名指向同一个文件,这样就可以实现文件的共享。

(3)如何删除共享文件?

(4)注意

2.4 索引结点(FCB的改进)

2.4.1 概述

在之前介绍的目录文件中,每一个FCB都存储了文件的很多信息,但是实际上当操作系统在查找文件时,需要的唯一信息是文件名。此时就可以对目录文件进行瘦身。

2.4.2 索引结点示意图

索引结点指针指向索引结点,它存储了文件的除文件名以外的所有信息。

2.4.3 索引结点提升的效率

(1)使用FCB的访问磁盘次数

(2)使用索引结点的访问磁盘次数

2.5 总结

⚔3 文件的基本操作

3.1 总览

3.2 几种基本操作

3.2.1 创建文件

(1)创建文件会进行create系统调用,需要传入的几个主要参数为:

(2)操作系统在处理create系统调用时进行的工作

3.2.2 删除文件

(1)删除文件会进行delete系统调用,需要传入的几个主要参数为:

(2)操作系统在处理delete系统调用时的工作

3.2.3 打开文件

(1)打开文件会进行open系统调用,需要传入的几个主要参数为:

(2)操作系统在处理open系统调用时的工作

为什么要将目录项复制到”打开文件表“?这样做的话,用户在之后1再次操作文件就不要重新指定目录了,这样可以加快访问速度

(3)打开文件表

①用户的打开文件表

每个用户都有一个自己的打开文件表,其内容如图:

其中,读写指针记录用户目前对文件的读取位置。用户对文件的操作不可以超出打开文件表中的访问权限字段。

用户表中的系统表索引号与系统表中对应文件的索引号相同。

②系统的打开文件表

在操作系统内,有一张打开文件的总表,其基本结构如图

打开计数器的值表示这个文件此时被多少个进程打开了,设置这个表项的好处为:

3.2.4 关闭文件

选择关闭文件时操作系统做的事:

3.2.5 读文件

(1)读文件时进程需要做的事

①进行read系统调用

②指明打开哪个文件(打开文件表中的索引号)

③指明读入多少数据

④指明读入的数据要放在内存中的什么位置

(2)读文件时操作系统做的事

①从进程提供的读指针指向的外存中,将进程指定大小的数据读入进程指定的内存区域中。

3.2.6 写文件

与读文件的操作类似

(1)写文件时进程需要做的事

①调用操作系统提供的write系统调用

②指明写回哪个文件(打开文件表中的索引号)

③指明写回多少数据

④写回外存的数据在内存中的位置指针

(2)写文件时操作系统做的事情

①从用户指针的内存区域中,将指定大小的数据写回到指定的外存区域内

3.3 总结

4 文件共享

4.1 总览

4.2 基于索引结点的共享方式(硬链接)

4.2.1 什么是索引结点

是文件的一种物理结构,文件的具体信息(物理地址、文件权限等等)放在索引结点中,而文件表中只存放文件名与指向索引结点的指针。这样可以加快检索文件的速度

4.2.2 解释

(1)示意图

(2)在不同用户的目录中的索引结点指针指向同一个索引结点,这样就是先了文件共享。

(3)此外,索引结点中还必须增加一个额外变量count:

4.3 基于符号链的共享方式(软链接)

4.3.1 解释

与硬链接中直接使用指针指向文件不同,软链接是新建一个文件,此文件中存放共享文件的路径(称为link文件)

4.3.2 示意图

4.3.3 注意

当共享文件被删除时,该link文件实际上也随机失效(联想Windows下的快快捷方式)

4.4 总结

5 文件保护

5.1 总览

5.2 口令保护

5.2.1 解释

5.2.2 优缺点

5.3 加密保护

5.3.1 解释

5.3.2 例子

5.3.3 优缺点

用户只需要记住自己的密码就可以了

5.4 访问控制

5.4.1 解释

当某个用户对文件执行操作时,操作系统会首先查看访问控制列表,确认用户有该操作的权限。

5.4.2 例子

(1)常用的文件操作

(2)访问控制列表

5.4.3 精简的访问列表

(1)为什么要有精简的访问列表?

当系统内用户很多时,访问控制列表可能会很长,会造成比较大的开

(2)解释

而系统会管理分组的信息,例如哪些用户属于哪些分组

(3)例子

5.5 总结

🕮6 总结

操作系统,如默默守护的守夜者,无声地管理硬件与软件的交流,为计算机创造和谐秩序。

它是无形的引导者,让复杂的任务变得井然有序,为用户提供无忧体验。

操作系统的巧妙设计,让计算机变得更加智能高效,让人与科技之间的交流更加顺畅。

在每一次启动中,它如信任的伙伴,带领我们进入数字世界的奇妙旅程。

渴望挑战操作系统的学习路径和掌握进阶技术?不妨点击下方链接,一同探讨更多操作系统的奇迹吧。我们推出了引领趋势的💻OS专栏:《OS从基础到进阶》 ,旨在深度探索OS的实际应用和创新。🌐🔍

相关实践学习
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
2月前
|
Unix C语言
操作系统基础:IO管理概述【上】
操作系统基础:IO管理概述【上】
操作系统基础:IO管理概述【上】
|
2月前
|
Web App开发 移动开发 Linux
DP读书:《openEuler操作系统》(七)FSCK与VFS虚拟文件系统
DP读书:《openEuler操作系统》(七)FSCK与VFS虚拟文件系统
67 0
|
3月前
|
数据采集 存储 Ubuntu
Linux操作系统概述
【1月更文挑战第1天】Linux操作系统概述。
36 1
|
2月前
|
存储 调度
操作系统基础:内存管理概述【下】
操作系统基础:内存管理概述【下】
|
2月前
|
算法
操作系统基础:内存管理概述【上】
操作系统基础:内存管理概述【上】
|
2月前
|
存储 索引
操作系统基础:文件系统基础【上】
操作系统基础:文件系统基础【上】
|
1月前
|
算法 Shell Linux
操作系统概述
操作系统概述
17 0
|
2月前
|
数据安全/隐私保护 索引 Windows
操作系统基础:文件系统基础【下】
操作系统基础:文件系统基础【下】
|
2月前
|
C语言
操作系统 | proc文件系统
操作系统 | proc文件系统
18 0
|
1月前
|
程序员 Linux 调度
《操作系统》——计算机系统概述
《操作系统》——计算机系统概述