在这里所讲的disk是指硬盘,有关于floopy disk则不讨论。我们知道一颗硬盘最多可以有8个partition,其中4个是primary partition,另4个则是extended partition。所谓partition就是在逻辑上将disk做切割。所以,我们可以把一颗硬盘想象成是由最多8个partition所组成的。除了partition之外,disk的第一个扇区我们称为MBR。如图3所示
http://linuxfab.cx/Columns/17/Image4.gif?http://www.xvna.com
在Linux里,档案放的位置是以一个partition为单位的,也就是说一个档案系统是放在partition里,而不能跨partition的。接下来让我们来看看档案系统在partition里的layout是怎么样的,如图4所示。
基本上,第一个block是boot block。用来开机用的。Super block则记录了档案系统重要的资料,接下来的东西就是记录着inode和资料的区块。
在VFS里,每一个档案系统是由其super block来表示的。之所以这样,是因为super block里存放了这个档案系统重要信息。从一个档案系统的super block就可以存取这个档案系统中的任何档案。因此,在Linux里,档案系统的管理以super block为单位,从super block可以取得这个档案系统里任何一个档案的inode,从档案的inode则可以对这个档案做读写的动作,进而完成对Linux底下档案的控制。因此,Kernel分别定义了一个super_block和inode的结构来描述档案系统的super block和及inode。底下我们就分别来介绍super block和inode的结构。
Super block结构
super_block结构定义在里,整个结构可分为基本资料,一组用来使用super block结构的函式,一组跟quota管理有关的函式,管理super block所属档案系统inode的信息,一些字段用来做super block的synchronization,以及各个档案系统本身所特有的资料。