【IT168 技术】随着Linux的普及与Vista的失力越来越多的人开始接触和使用linux, 我下面给读者介绍一下关于他的特点。Linux使用的文件存储系统是EXT3FS,也叫EXT3,其结构和存储数据的方式和我们熟悉的Windows下的FAT、FAT32、NTFS文件系统有不少的差异。
我们将GRUB安装在MBR(主引导记录)或引导区的第一个扇区,其中“第一个扇区”在这里被称为该分区的超级块,超级块记录了文件系统版本的标识符,数据块大小,第一个索引节点编号,以及尚未使用的数据块和索引节点等信息。由于存储数据的单位是以块来划分,所以在LINUX系统里面,用来存储数据的外围设备都称为“块”设备,无论软盘、硬盘、光盘都称为块设备,你可以将上图看成一个分区,便于理解其涵义,整个分区内包含许多数据块,就是一个块组。超级块之后就是组描述符,其中记载了这个块组的信息,包括数据块,索引节点和块组之间的对应关系。
索引节点的数量
每一个存在EXT3FS上的文件,目录和外围设备代号都会占用索引节点,而且仅会占用一个,索引节点的数量多少,会因磁盘格式化时的设置不同而有所不同,其所对应的数据块大小,可以是1024、2-48或4096字节,默认值为4096字节。 想知道系统中有多少索引节点,可以执行df –i命令查看: 将索引节点总数乘以每个索引节点所对应的数据块大小,就是该块组的容量
例如:491520X4/1024=1920MB
491520是块组的索引节点总数,每个索引节点对应的数据块大小为4KB,换算成MB,得出1920MB容量。
提示:
对硬盘而言,一个块组就等于是一个分区,每个使用EXT3FS的块组,其索引节点总数是该块组的容量除以数据块的大小。
例如,一个2097152MB(2GB)的硬盘分区,架设数据块的大小为4KB,则该分区的索引节点数量为:2097152/4=524288。
虽然数据块的大小决定了索引节点数量的多少,但两者并非等比例的关系,例如/proc目录,其中的文件其实都不存在,他们没有消耗数据块,但是确占用了索引节点,因而可被视为一种特殊文件,另外,倘若有一个长度为50KB的文件存储在一个数据块大小为4KB的分区内,它会占用13个数据块,却只用掉了一个索引节点。
假设某分区磁盘空间被1000个大文件塞满,全部的数据块都已经耗尽,虽然这些文件只占用1000个索引节点,即便还有可用的索引节点,也无法存储新的文件,反过来,若先把索引节点用完,就算还有许多数据块仍未使用,也会因索引节点耗尽而无法再去存放新的文件。
索引节点的内容
索引节点里面记录了一些信息,包括文件的权限、用户标识符、用户组标识符与文件的大小等……
◆文件模式: 索引节点会描述其所对应的数据类型,这些数据可以是一个文件、目录、符号链接及外围设备的分区编号等等,此外还有关于权限设置的信息,这在多任务、多用户的操作系统中是极其重要的一环。
◆拥有者信息: 文件或目录文件拥有者的UID与GID,这些信息和权限设置息息相关;
◆文件大小: 单位为字节;
◆时间戳记: 索引节点对应的数据最初的建立时间与最后的修改时间;
◆数据块地址: 索引节点所对应的数据若为实体文件而非虚拟文件(如/proc目录中的文件),要存放该文件必会占用数据块,每个数据块都有其存在的地址,好让系统或程序得以顺利的找到文件并使用它,一个索引节点能够指向12个数据块,如果12个数据块仍放不下这个文件,它就会启用间接指向(Indirect),通过另一个数据块指向更多的数据块,以便容纳大型文件。
层次化的文件系统
层次化文件系统通常采用类似金字塔的形状,这种结构类似的示例,如某个家族的谱系,一对夫妇只有一个儿子,儿子可能又有几个儿子,其中的每个儿子可能具有更多的儿子,该层次化的结构,称为一个家族树。
何谓目录?
在Linux/UNIX系统中,目录是盛放文件的容器,目录的概念等同于Windows系统中的“文件夹”。在目录内可以存放文件或子目录,同样的,在文件夹内也可以存放文件或子文件夹。在同一个目录内不可以有相同名字的文件或目录,就像我们的电话号码不能相同一样。
文件命名规则
在DOS和Windows中,文件名的后缀就可以表示该文件的类型。但在Linux中,只要是可执行的文件并具有可执行属性它就能够执行,不管文件后缀是什么,但对一些资料文件一般也遵循一些文件名后缀规则。例如:
系统文件: *.conf,*.rpm, .*等,程序与脚本:*.c,*.pl,*.php 等,格式文件:*.wav,*.jpg,*.htm 等,存档与压缩文件:*.tar,*.gz等
在Linux系统中可以使用长文件或目录名,可以给目录和文件取任何名字,但必须遵循下列规则:
1、除了 / 之外,所有的字符都合法。
2、有些字符最好不用,如空格符、制表符、退格符和字符 @ # $ & ( ) - 等。
3、避免使用加减号或 . 作为普通文件名的第一个字符。
4、大小写敏感。
Linux文件存储系统的核心目录结构(Filesystem Hierarchy Standard Group,FHS)
何谓FHS?
因为Linux是开源代码的系统,全球400余家Linux系统厂商在发布各自的Linux版本时都会有基于自身的考量。因此,每个厂商推出的Linux系统的目录以及文件的数量方面会有一定的差别。为了解决因此而造成用户在使用上的麻烦,FHS组织定义了一份FHS的公开标准,让所有Linux厂商参考。