一 . 文件系统的布局
1. 操作系统中对处理文件的部分叫文件系统
2. 文件系统放在磁盘上,多数磁盘划分为一个或多个分区,每个分区中有一个独立的文件系统。
3. 磁盘的0号扇区称为主引导记录(MBR),用来引导计算机。在MBR的结尾是分区表。该表给出了每个分区的起始地址和结束地址。表中一个分区被标记为活动分区。
4,. 在计算机被引导时,BIOS读入并执行MBR。MBR做的第一件事是确定活动分区,读入他的第一块,称为引导快,并执行之。引导快中的程序将装载改分区中操作系统。为了统一起见,每个分区都从一个启动块开始,即使他并不含有一个可启动的操作系统,不过,在将来这个分区或许会有一个操作系统。
5. 除了从引导块开始之外,磁盘分区的布局是随着文件系统的不同而变化的。文件系统经常包含如下一些项目:
(1)超级块:超级块包含文件系统的所有关键参数,在计算机关闭时,或者在该文件系统首次使用时,把超级块读入内存。超级块典型信息包含:确定文件系 统类型用的魔数,文件系统中数据块的数量以及其他重要的管理信息。
(2)文件系统中空闲块的信息,可以用位图或者指针列表的形式给出
(3)i节点,这是一个数据结构,每个文件一个,i节点说明了文件的方方面面。
(4)根目录:它存放着文件系统目录树的根部
(5)文件和目录:磁盘的其他部分存放着其他所有的目录和文件
二 . 文件的实现
1. 连续分配: 每个文件作为一连串连续的数据块存储在磁盘上
2. 链表分配:为每个文件构造磁盘块链表,每个块的第一字作为指向下一块的指针,块的其它部分存放数据,由于指针占去了一些字节,每个磁盘块存储的数据不再是2的整数幂。
4. i节点:每个文件赋予一个i节点,i节点的数据结构中列出了文件的属性和文件块的磁盘地址。i节点的一个问题,如果一个i节点只能存储数量的磁盘地址,那么一个文件所含有的磁盘块的数目超过了i节点所能容纳的数目怎么办?一个解决方案是最后一个磁盘地址不指向数据块,而是指向一个包含磁盘块地址的块的地址。
三 . 目录的实现
目录文件的结构非常简单,就是一系列目录项(dirent)的列表。在对文件进行操作前,操作系统利用用户给出的路径名找到相应目录项。目录项中提供了查找文件磁盘块所需要的信息。这些信息可能是
(1)整个文件的磁盘地址
(2)i节点号
(3) 第一块的编号
Unix/Linux系统中,目录(directory)也是一种文件。打开目录,实际上就是打开目录文件,
目录中的每个目录项由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。