目录区是磁盘中的一个非常重要的区域,磁盘文件中每个文件的名字和其他一些重要信息都存储在该区域,根据目录就能够很方便、高效地查找文件。存放目录也需要占用空间,磁盘上每个文件对应的目录项(directory entry)大小均为32字节,由于目录区大小为2048字节,所以这个磁盘上最多可以存放64(2048/32)个文件。
为了能够根据目录找到相应的文件,每一个32字节的目录项包含以下信息。
在目录项中,第一个字节用来设置文件的共享属性,只有文件系统被两个或更多人同时共享时才设置此字节为1。在CP/M中,这个字节跟第13、14字节一样,通常设置为0。
CP/M中每个文件的文件名由两部分构成,第一部分称为文件名(filename),文件名最多由8个字符构成,目录项的第1\~8字节用来存储文件名。第二部分称为文件类型(file type),最多由3个字符表示,这些字符存储在目录项的第9\~11字节中。我们会经常遇到一些常见的标准文件类型,例如:TXT表示文本文件(此文件只包含ASCII码);COM(command的简写)表示这个文件中存放的是8080机器码指令,或者说是一段程序。当命名一个文件时,通过一个点来隔开这两部分,如下所示:
MYLETTER.TXT
CALC.COM
人们习惯形象地称这种文件命名方式为8.3,就是说在点号隔开的前半部分最多有8个字母,后半部分最多有3个字母。
接下来介绍一下如何利用目录项查找文件。目录项中的第16\~31字节是磁盘存储表,它能够标明文件所存放的分配块。假设磁盘存储表的前4项分别为14h、15h、07h、23h,其余项全为0,这表明文件占用了4个分配块的空间,大小为4KB,而实际上文件可能并没有用完4KB空间,因为最后一个分配块往往只有部分扇区被使用。目录项的第15字节表明最后一个分配块到底用到了多少个128字节的扇区。
编码隐匿在计算机软硬件背后的语言
354