欢迎光临
我们一直在努力

计算机操作系统29,30

第二十九课:文件系统基础


一、为什么需要文件系统?

先思考一个问题:

计算机里的数据:

最终:

存在哪里?

答案:

磁盘(Disk)


例如:

你保存:

照片.jpg

实际上:

硬盘:

只认识:

010101010101

它不知道:

什么叫:

“照片”。


所以需要:

一个管理者。

负责:

– 给数据命名
– 组织数据
– 查找数据
– 保存数据
– 删除数据

这个管理者:

就是:

文件系统(File System)


二、什么是文件?

教材定义:

文件是具有符号名的、在逻辑上具有完整意义的一组相关信息的集合。

简单理解:

文件:

就是:

操作系统给数据集合:

起的名字。


例如:

硬盘:

实际:

可能:

存:

101010101

110010101

001010101

操作系统:

组织:

成为:

photo.jpg

music.mp3

game.exe


三、文件包含什么?

一个文件:

不仅仅:

包含:

数据。

还包含:

很多属性。


例如:

一个文件:

test.txt

系统还需要知道:

文件名:
test.txt

大小:
10KB

创建时间:
2026-01-01

权限:
可读可写

位置:
磁盘哪里

这些信息:

叫:

文件控制块 FCB(File Control Block)


四、文件控制块 FCB(★★★★★)

FCB:

是操作系统管理文件的重要数据结构。

可以理解为:

文件的身份证。


人的身份证:

包含:

姓名

年龄

身份证号

文件身份证:

包含:

文件名

文件大小

权限

存储位置


FCB通常包括:

1. 文件基本信息

例如:

文件名。


2. 文件存取权限

例如:

Linux:

rwx

表示:

read

write

execute


3. 文件物理位置

最重要。

告诉系统:

数据:

在磁盘哪里。


4. 文件状态

例如:

是否打开。


五、文件系统层次结构

操作系统:

不会:

直接:

操作磁盘。

中间:

有很多层。

大概:

如下:

用户程序

文件系统接口

目录管理

文件组织

磁盘管理

硬件磁盘


用户:

只需要:

打开文件。

下面:

全部:

由系统完成。


六、文件的基本操作

用户:

对文件:

有哪些操作?


1. 创建文件

create。

例如:

新建:

test.txt。


2. 删除文件

delete。

释放:

空间。


3. 打开文件

open。


4. 关闭文件

close。


5. 读文件

read。


6. 写文件

write。


这些:

是操作系统:

提供的:

系统调用。


七、文件的逻辑结构

文件:

从用户角度:

怎么看?

叫:

逻辑结构。

主要:

两种。


第一种:无结构文件

也叫:

流式文件。

特点:

没有明显结构。

就是:

一串字符。

例如:

hello world
abcdef
123456


常见:

文本文件。


第二种:有结构文件

也叫:

记录式文件。

文件:

由:

记录组成。


例如:

学生信息:

学号 姓名 成绩

001 张三 90

002 李四 85

每一行:

就是:

一个记录。


八、文件物理结构

重点来了。

逻辑:

是:

用户看到的。

物理:

是:

磁盘怎么存。


主要:

三种。


1. 连续分配

思想:

文件占用连续磁盘块。

例如:

文件:

占:

磁盘:

10~15块。

10 11 12 13 14 15


优点:

速度快。

为什么?

因为:

连续。

读取:

顺序。


缺点:

产生:

外部碎片。

类似:

连续内存分配。


2. 链接分配

思想:

文件块可以分散,但是用指针连接。

例如:

块5

块20

块8

块30


优点:

没有外部碎片。


缺点:

随机访问慢。

为什么?

因为:

找第100块:

必须:

从头找。


3. 索引分配(★★★★★)

思想:

建立:

一个索引块。

记录:

所有数据块地址。

例如:

索引:

文件A

索引块

5

20

8

30


优点:

支持随机访问。


缺点:

需要额外索引空间。


九、三种分配方式比较

方式特点优点缺点
连续分配 连续存储 速度快 外部碎片
链接分配 指针连接 无外部碎片 随机访问慢
索引分配 索引表 随机访问快 需要索引块

口诀:

连续快,链接稳,索引灵活。


十、目录是什么?

文件很多。

怎么办?

不能:

全部堆一起。

所以:

需要:

目录。


目录:

本质:

也是:

一种特殊文件。

它保存:

文件信息。


例如:

Windows:

C盘

├── 用户

│ └── 图片

│ └── photo.jpg

└── 软件

这个:

就是:

目录结构。


十一、目录管理

常见:

目录结构:


1. 单级目录

所有文件:

放一起。

例如:

文件1

文件2

文件3


问题:

文件多:

容易冲突。


2. 两级目录

每个用户:

一个目录。

例如:

用户A

├ 文件1

用户B

├ 文件2


3. 树形目录(★★★★★)

现代系统:

采用。

例如:

Windows:

C:

├ Program Files

├ Users

└ Windows

Linux:

/

├ bin

├ home

├ etc


十二、本课重点总结

今天必须掌握:


文件

一组具有逻辑意义的数据集合。


FCB

文件控制块,是文件的身份证。


文件逻辑结构

两种:

  • 无结构文件
  • 有结构文件

文件物理分配

三种:

连续

快,但碎片。

链接

灵活,但随机访问慢。

索引

支持随机访问。


目录

组织文件。

现代系统:

树形目录。


第三十课:文件目录与文件共享


一、为什么需要目录?

假设:

你的硬盘:

有:

100万个文件

如果:

所有文件:

直接放在一起:

a.txt

b.jpg

game.exe

music.mp3

会发生什么?

问题:

– 文件名字容易重复
– 查找困难
– 管理混乱

所以:

操作系统:

引入:

目录(Directory)


二、目录是什么?

很多人以为:

目录就是:

文件夹。

这个理解:

没错。

但是从操作系统角度:

更准确:

目录是一种特殊的文件,它保存文件的相关信息。


也就是说:

目录里面:

保存的不是照片、视频。

而是:


例如:

目录:

我的文件夹

里面:

可能保存:

文件名位置
a.txt 磁盘100块
b.jpg 磁盘200块

所以:

目录实际上:

像一本:

文件索引表。


三、文件查找过程(★★★★★)

用户:

打开:

C:\\test\\a.txt

操作系统:

怎么找到?


一步一步:

第一步:

找到根目录。

例如:

Windows:

C:

Linux:

/


第二步:

查找:

test目录。

目录中:

寻找:

test


第三步:

进入test。

继续查找:

a.txt


第四步:

读取FCB。

得到:

文件物理位置。


过程:

可以表示:

路径

目录

FCB

磁盘位置

读取文件


四、目录结构

操作系统:

经历了:

几个发展阶段。


1. 单级目录

所有文件:

放一个目录。

例如:

/

├ a.txt

├ b.txt

├ c.txt


优点:

简单。


缺点:

文件名冲突。

例如:

两个用户:

都想创建:

test.txt

怎么办?


2. 两级目录

为每个用户:

建立目录。

例如:

系统

├ 用户A

│ └ test.txt

└ 用户B

└ test.txt


解决:

不同用户:

文件名冲突。


3. 树形目录(★★★★★)

现代操作系统:

采用。


例如:

Linux:

/

├── home

│ ├── user1

│ │ └── a.txt

├── etc

└── bin


Windows:

类似:

C:

├── Windows

├── Program Files

└── Users


优点:

  • 层次清晰
  • 查找方便
  • 支持大量文件

五、路径是什么?

路径:

就是:

文件在目录树中的位置。


分两种:


① 绝对路径

从根目录开始。

例如:

Linux:

/home/user/a.txt

Windows:

C:\\Users\\a.txt


② 相对路径

从当前目录开始。

例如:

当前:

/home/user

访问:

a.txt


六、文件共享

问题:

来了。

如果:

两个用户:

都需要:

同一个文件。

怎么办?


例如:

公司:

多个员工:

需要:

访问:

同一个报告。


方法:

不能:

复制多份。

因为:

浪费空间。

所以:

需要:

文件共享。


七、文件共享方式

主要:

两种。


方法一:硬链接(Hard Link)

思想:

多个目录项指向同一个文件。


例如:

文件:

A.txt

目录:

记录:

A.txt

文件FCB

现在:

创建:

B.txt。


结果:

A.txt

文件数据

B.txt


两个名字:

指向:

同一个文件。


特点:

删除:

A.txt。

B.txt:

仍然存在。

为什么?

因为:

文件本身:

没有删除。

只是:

删除一个名字。


八、硬链接的核心:引用计数

系统:

会记录:

有多少个目录项:

指向文件。

例如:

开始:

引用数=1

创建:

B.txt:

变成:

引用数=2

删除:

A.txt:

变成:

引用数=1

只有:

引用数=0。

文件数据:

才真正删除。


九、方法二:软链接(Symbolic Link)

也叫:

符号链接。

类似:

Windows:

快捷方式。


例如:

桌面:

有:

游戏快捷方式

但是:

游戏:

真正位置:

D:\\Game\\xxx.exe


快捷方式:

只是:

保存:

目标路径。


结构:

快捷方式

目标文件


特点:

如果:

目标文件删除。

软链接:

失效。


十、硬链接 vs 软链接(★★★★★)

硬链接软链接
本质 同一个文件多个名字 一个路径指向另一个文件
是否复制数据
目标删除 仍可访问 失效
是否跨文件系统 通常不能 可以
类似 别名 快捷方式

口诀:

硬链接是同一个人多个名字,软链接是地址条。


十一、inode(Linux重点)

现在:

进入Linux文件系统。

Linux:

有一个非常重要概念:

inode


Windows:

喜欢:

用FCB理解。

Linux:

用:

inode。


inode:

是什么?

简单理解:

文件的身份证。


inode保存:

例如:

文件大小

权限

时间

数据块位置

引用数量


注意:

inode:

不保存:

文件名。


为什么?

因为:

文件名:

属于:

目录。


结构:

目录

文件名

inode

数据块


十二、Linux为什么删除文件快?

因为:

删除文件:

实际上:

删除:

目录中的名字。

然后:

inode引用数减1。


不是:

马上:

擦除:

整个数据。


所以:

Linux删除大文件:

为什么:

很快?

因为:

不用马上清空几十GB数据。


十三、本课重点总结(★★★★★)

必须掌握:


目录

保存文件信息的特殊文件。


文件查找

流程:

路径

目录

FCB/inode

数据块


目录结构

现代:

树形目录。


硬链接

多个名字:

指向:

同一个文件。


软链接

类似:

快捷方式。

保存:

目标路径。


inode

Linux文件核心结构:

保存:

文件属性和位置。

不保存:

文件名。


十四、口诀

目录:

目录存名字,inode存信息。

链接:

硬链接同文件,软链接像快捷。

赞(0)
未经允许不得转载:171主机测评 » 计算机操作系统29,30
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址