文件系统的类型和结构

笔记

【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】总结与思考

原文地址:https://www.cnblogs.com/jack-hzm/p/10262270.html