OS-08 文件管理

一、文件系统的基本功能

文件系统是操作系统中管理持久化数据的子系统。它负责将用户的数据以一种有结构的方式组织在磁盘上,并提供高效、安全的访问接口。

文件系统的主要功能包括:

  1. 提供用户友好的文件操作接口(创建、打开、读写、关闭、删除)
  2. 管理文件的存储空间(分配和回收磁盘块)
  3. 实现文件的共享和保护(多用户环境下)
  4. 保证文件访问的效率和安全性

二、文件目录结构

文件目录是文件系统组织文件的形式。不同的目录结构各有优劣。

单级目录 根目录 a.txt b.doc photo.jpg a.txt × 重名冲突

二级目录
根目录
用户A
用户B
a.txt
b.doc
a.txt
✅ 不冲突

树形目录
/ (根)
home
etc
usr
user1
user2
docs
pics
a.txt
1.jpg

层次清晰,支持多级组织

单级目录:所有文件都在一个目录中。好比把所有文件都放在桌面上——在小规模时很简洁,但文件一多就混乱不堪。此外,不同用户的文件可能重名,造成冲突。

二级目录:为每个用户建立一个独立的子目录。这样不同用户的文件可以重名,查找效率也有所提升。但用户内部的文件组织仍然是扁平的。

树形目录:最常用的结构。用户可以在自己的目录下创建任意层级的子目录来组织文件。这是现代操作系统通用的方案,Linux和Windows都使用树形目录。树形目录的优势在于:层次清晰、支持按类别组织文件、查找效率高。

三、文件共享

硬链接:多个文件名指向同一个索引节点(inode)。在Linux中,硬链接通过ln命令创建。硬链接的特点是所有链接是"平等"的——删除其中一个,不影响其他,只有当文件的链接数降为0时,文件数据才被真正删除。

软链接(符号链接):链接文件本身是一个特殊文件,它存储的是目标文件的路径名。访问链接文件时,操作系统自动重定向到目标路径。软链接类似于Windows的快捷方式。它的特点是:可以跨文件系统,但目标文件被删除后链接失效。

四、文件保护

口令保护:用户在创建文件时设置口令,访问时需验证口令。缺点是口令容易被泄露。

加密保护:文件数据经过加密后存储,只有持有解密密钥的用户才能读取。即使数据被窃取,没有密钥也无法解密。

访问控制(ACL):为每个文件维护一个访问控制列表,记录每个用户或用户组对该文件的权限(读、写、执行)。这是最灵活的保护方式,也是Unix/Linux系统采用的方式。

在Linux中,每个文件有三组权限(所有者、同组用户、其他用户),每组权限由读(r)、写(w)、执行(x)三个二进制位组成。例如权限"rwxr-xr--"表示:所有者可读写执行,同组用户可读执行,其他用户只读。