文件系统的类型和结构
笔记 【1】Linux文件系统的类型 (1)在任何一个操作系统中,文件系统无疑是其最重要的组件,用于组织和管理计算机存储设备上的大量文件, 并提供用户交互接口。Linux同样具备完善的文件系统。用户既可以使用界面友好的Nautilus图形文件管理器, 也可以使用功能强大的shell文件系统管理工具。 (2)linux是一种兼容性很高的操作系统,支持的文件系统格式很多,大体可分以下几类: 1)磁盘文件系统:指本地主机中实际可以访问到的文件系统,包括硬盘、CD-ROM、DVD、USB存储器、磁盘阵列等。 常见文件系统格式有:autofs、coda、Ext(Extended File sytem,扩展文件系统)、Ext3、Ext4、VFAT、ISO9660(通常是CD-ROM)、 UFS(Unix File System,Unix文件系统)、FAT、FAT16、FAT32、NTFS等; 2)网络文件系统:是可以远程访问的文件系统,这种文件系统在服务器端仍是本地的磁盘文件系统,客户机通过网络远程访问数据。 常见文件系统格式有:NFS、Samba等; 3)专有/虚拟文件系统:不驻留在磁盘上的文件系统。常见格式有:TMPFS(临时文件系统)、PROCFS(Process File System,进程文件系统) 和LOOPBACKFS(Loopback File System,回送文件系统)。 (3) 目前Ext4是Linux系统广泛使用的一种文件格式。在Ext3基础上,对有效性保护、数据完整性、数据访问速度、向下兼容性等方面做了改进。 最大特点是日志文件系统:可将整个磁盘的写入动作完整地记录在磁盘的某个区域上,以便在必要时回溯追踪。 (4) SCSI与IDE设备命名 1)sata硬盘的设备名称是“/dev/sda” /dev/sda1 含义? /dev/sdb3 含义? 2)IDE硬盘的设备名称是“/dev/hda” /dev/hdc2 含义? 3)如果很在意系统的高性能和稳定性,应该使用SCSI硬盘 4)cat /proc/partitions (5) Linux分区的命名方式 1)字母和数字相结合 2)前两个字母表示设备类型 “hd”代表IDE硬盘 “sd”表示SCSI或SATA硬盘 3)第三个字母说明具体的设备 “/dev/hda”表示第一个IDE硬盘 “/dev/hdb”表示第二个IDE硬盘 (6) 交换分区 1)将内存中的内容写入硬盘或从硬盘中读出,称为内存交换(swapping) 2)交换分区最小必须等于计算机的内存 3)可以创建多于一个的交换分区 4)尽量把交换分区放在硬盘驱动器的起始位置 (7) 文件系统逻辑结构 1) 某所大学的学生可能在一两万人左右,通常将学生分配在以学院-系-班为单位的分层组织机构中。若需要查找一名学生时, 最笨的办法是依次问询大学中的每一个学生,直到找到为止。如果按照从学院、到系、再到班的层次查询下去,必然可以找到该学生,且查询效率高。 这种树形的分层结构就提供了一种自顶向下的查询方法。 2) 如果把学生看作文件,院-系-班的组织结构看作是Linux文件目录结构,那么就同样可以有效地管理数量庞大的文件。 3) 一直使用微软Windows操作系统的用户似乎已经习惯了将硬盘上的几个分区,并用A:、B:、C:、D:等符号标识。 存取文件时一定要清楚存放在哪个磁盘的哪个目录下。 4) Linux的文件组织模式犹如一颗倒置的树,这与Windows文件系统有很大差别。所有存储设备作为这颗树的一个子目录。 存取文件时只需确定目录就可以了,无需考虑物理存储位置。 【2】Linux文件系统的结构 (1) 分区与目录的关系: 在Windows下,目录结构属于分区;在Linux下,分区属于目录结构。 (2) 如何知道文件存储的具体硬件位置呢? 1) 在Linux中,将所有硬件都视为文件来处理,包括硬盘分区、CD-ROM、软驱以及其他USB移动设备等。 为了能够按照统一的方式和方法访问文件资源,Linux中提供了对每种硬件设备相应的设备文件。 一旦Linux系统可以访问到硬件,就将其上的文件系统挂载到目录树中的一个子目录中。 2) 例如,用户插入USB移动存储器,Ubuntu Linux自动识别后,将其挂载到“/media/disk”目录下。 而不象Windows系统将USB存储器作为新驱动器,表示为“F:”盘。 (3) Linux文件系统就是一个树形的分层组织结构。将根(/)作为整个文件系统的惟一起点,其他所有目录都从该点出发。 将Linux的全部文件按照一定的用途归类,合理地挂载到这颗“大树”的“树枝”或“树叶”上,如图所示。 而这些全不用考虑文件的实际存储位置,无论是存在硬盘上,还是在CD-ROM或USB存储器中,甚至是网络终端。 (4) 基本目录 1) 由于Linux是完全开源的软件,各Linux发行机构都可以按照自己的需求对文件系统进行裁剪,所以如此众多的Linux发行版本的目录结构也不尽相同。 为了规范文件目录命名和存放标准,颁发了文件层次结构标准(FHS,File Hierarchy Standard),2004年发行版本FHS 2.3。Ubuntu Linux系统同样也遵循这个标准。 2) 绝对路径和相对路径 a. 在认识到Linux文件系统是树形分层的组织结构,且只有一个根节点之后。在Linux文件系统中查找一个文件,只要确定文件名和路径,就可以惟一确定这个文件。 例如 “/usr/games/gnect” b. 绝对路径:指文件在文件系统中的准确位置。通常在本地主机上,以根目录为起点。例如“/usr/games/gnect”就是绝对路径。 c. 相对路径:指相对于用户当前位置的一个文件或目录的位置。例如,用户处在usr目录中时,只需要“games/gnect”就可确定这个文件。 (5) Linux文件系统与Windows文件系统比较 【3】总结与思考