文件管理(汇总)¶
来源:
操作系统 / note/文件管理/文件管理(汇总).md
文件¶
文件类型¶
- 普通文件
- ASCII文件
- 二进制文件
- 目录
- UNIX的特殊文件
文件访问¶
- 顺序访问
- 随机访问
文件操作¶
- create
- open
- close
- write
- read
目录¶
一级目录系统¶
所有文件都在一个目录下

层次目录系统¶

硬盘介绍¶
硬盘是文件的储存介质
能够长期保存数据,具有非易失性
磁盘¶
存储容量大、数据传输率高(相对)、存储数据可长期保存
固态硬盘¶
Solid State Disk,SSD,基于闪存的存储技术
利用高电压擦去内容
❑ 没有磁盘、没有机械驱动器
❑ 优点
速度快(平均比磁盘快3-6倍),没有寻道时间和旋转时间
具有一定的抗冲击性
静音省电
体积小
有一定的寿命,存在写次数的极限
文件系统的实现¶
文件系统布局¶

文件系统存放在硬盘上
多数硬盘划分为一个或多个分区,每个分区中有一个独立的文件系统
磁盘的0号扇区(或块)称为主引导记录(Master Boot Record,MBR),用来引导计算机。在MBR的结尾是分区表。
文件系统中包含的项目¶
- 引导块
- 引导装载在该分区的操作系统
-
该分区没有操作系统也存在
-
超级块
• 包括文件系统的关键参数:魔数、块的数量、其他关键信息
- 空闲块的信息
- i节点
- 目录
- 文件
文件的实现¶
连续分配¶
把每个文件作为一连串连续数据块存储在磁盘上

优点:实现简单,读操作性能好
缺点:磁盘容易变得零碎(删除文件时会产生碎片)
链表分配¶
为每个文件构造磁盘块链表
优点:充分利用每个磁盘块(删除只需要修改指针,不会有碎片),顺序访问速度非常快
缺点:随机访问非常慢
采用内存中的表进行链表分配(FAT)¶

取出每个磁盘块的指针字,把它们放在内存的一个表中
使用此组织,整个区块可用于数据。此外,隨機訪問要容易得多。虽然仍然必须遵循链才能在文件中找到给定的偏移量,但链完全在内存中,因此无需进行任何磁盘引用即可遵循(访问内存速度要比访问磁盘速度快得多)
与之前的方法一样,目录条目只需要保留一个整数(起始块号),并且仍然能够找到所有块,无论文件有多大
缺点:必须把整个表都存放在内存中
这种方法的主要缺点是,整个表格必须一直处于内存中才能工作。该表具有1TB磁盘和1KB块大小,需要10亿个条目,10亿个磁盘块中每个条目一个条目。每个条目必须至少包含3个字节。对于查询速度,它们应该是4字节。因此,该表将一直占用3GB或2.4GB的主内存
FAT的管理方式不能较好地扩展并应用于大型磁盘中(因为磁盘越大,需要占用的内存越大),它是原始的MS-DOS文件系统,但仍然完全支持所有版本的Windows。
i节点¶
给每个文件赋予一个称为i节点的数据结构,包括文件属性和文件块的磁盘地址
只有打开的文件的i节点才在内存中
因此i节点占用的内存只和打开的文件数量有关,而与磁盘大小无关
(前面的FAT是任何时候都加载在内存中的,而这个i节点只有打开的时候才会加载) 如何解决节点空间不够的问题? 最后一个“磁盘地址” 指向一个包含额外磁盘块地址的块的地址 可以有两个或更多个包含磁盘地址的块
适用于NTFS、UNIX的文件系统
目录的实现¶
目录系统的主要功能是把文件名映射成定位文件数据所需的信息
文件属性可以放在目录里或者文件的i节点里
共享文件:链接¶
硬链接¶
直接共享inode:一个inode对应多个名字
Linux的命令:link 或 ln
特点:
• 文件有相同的 inode 及 data block;
• 不能交叉文件系统进行硬链接的创建;
• 不能对目录进行创建,只可对文件创建;
• 删除一个硬链接文件并不影响其他有相同 inode 号的文件。
软链接(符号链接)¶
文件数据块中存放的内容是另一文件的路径名的指向
Linux 命令:ln –s
Window下面又叫做快捷方式(略有区别)
特点:
• 软链接有自己的文件属性及权限等;
• 可对不存在的文件或目录创建软链接;
• 软链接可交叉文件系统;
• 软链接可对文件或目录创建;
• 创建软链接时,链接计数 i_nlink 不会增加;
• 删除软链接并不影响被指向的文件,但若被指向的原文件被删
除,则相关软连接被称为死链接(即 dangling link,若被指向路
径文件被重新创建,死链接可恢复为正常的软链接)。