当然,在UNIX系统的某处一定会有一个表,告诉文件系统如何将物理结构转换为逻辑结构.这就涉及到i节点了.i节点是一个64字节长的表,含有有关一个文件的信息,其中有文件大小,文件所有者,文件存取许可方式,以及文件为普通文件,目录文件还是特别文件等.在i节点中最重要的一项是磁盘地址表.该表中有13个块号.前10个块号是文件前10块的存放地址.这10个块号能给出一个至多10块长的文件的逻辑结构,文件将以块号在磁盘地址表中出现的顺序依次取相应的块.
当文件长于10块时又怎样呢?磁盘地址表中的第十一项给出一个块号,这个块号指出的块中含有256个块号,至此,这种方法满足了至多长于266块的文件(272,384字节).如果文件大于266块,磁盘地址表的第十二项给出一个块号,这个块号指出的块中含有256个块号,这256个块号的每一个块号又指出一块,块中含256个块号,这些块号才用于取文件的内容.磁盘地址中和第十三项索引寻址方式与第十二项类似,只是多一级间接索引.
这样,在UNIX系统中,文件的最大长度是16,842,762块,即17,246,988,288字节,有幸是是UNIX系统对文件的最大长度(一般为1到2M字节)加了更实际的限制,使用户不会无意中建立一个用完整个磁盘窨所有块的文件.
文件系统将文件名转换为i节点的方法实际上相当简单.一个目录实际上是一个含有目录表的文件:对于目录中的每个文件,在目录表中有一个入口项,入口项中含有文件名和与文件相应的i节点号.当用户敲入cat xxx时,文件系统就在当前目录表中查找名为xxx的入口项,得到与文件xxx相应的i节点号,然
后开始取含有文件xxx的内容的块.
(2)设备文件