这两天看了一本fedora 6的实践教程,下面是有关linux文件体系常识的学习笔记:
1、linux文件体系分配战略:
块分配( block allocation ) 和 扩展分配 ( extent allocation )
块分配:磁盘上的文件块根据需求分配给文件,避免了存储空间的糟蹋。但当文件扩大时,会形成文件中文件块的不接连,然后导致过多的磁盘寻道时刻。
每一次文件扩展时,块分配算法就需求写入文件块的结构信息,也便是 meta-dada 。meta-data总是与文件一同写入存储设备,改动文件的操作要比及一切meta-data的操作都完成后才干进行,
因而,meta-data的操作会显着下降整个文件体系的功用。
扩展分配: 文件创立时,一次性分配一连串接连的块,当文件扩展时,也一次分配许多块。meta-data在文件创立时写入,当文件巨细没有超越一切已分配文件块巨细时,就不必写入meta-data,直到需求再分配文件块的时分。
扩展分配选用成组分配块的方法,减少了SCSI设备写数据的时刻,在读取次序文件时具有杰出的功用,但随机读取文件时,就和块分配相似了。
文件块的组或块簇 ( block cluster) 的巨细是在编译时确认的。簇的巨细对文件体系的功用有很大的影响。
注: meta-data 元信息:和文件有关的信息,比方权限、一切者以及创立、拜访或更改时刻等。
2、文件的记载方法
linux文家体系运用索引节点(inode)来记载文件信息。索引节点是一种数据结构,它包括了一个文件的长度、创立及修正时刻、权限、所属联系、磁盘中的方位等信息。
一个文件体系维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的仅有的元素对应。每个索引节点在数组中的索引号,称为索引节点号。
linux文件体系将文件索引节点号和文件名一起保存在目录中,所以,目录仅仅将文件的称号和它的索引节点号结合在一同的一张表,目录中每一对文件称号和索引节点号称为一个衔接。
关于一个文件来说,有一个索引节点号与之对应;而关于一个索引节点号,却能够对应多个文件名。
衔接分为软衔接和硬衔接,其间软衔接又名符号衔接。
硬衔接: 原文件名和衔接文件名都指向相同的物理地址。目录不能有硬衔接;硬衔接不能跨文件体系(不能跨过不同的分区),文件在磁盘中只要一个复制。
因为删去文件要在同一个索引节点归于仅有的衔接时才干成功,因而硬衔接能够避免不必要的误删去。
软衔接: 用 ln -s 指令树立文件的符号衔接。符号衔接是linux特别文件的一种,作为一个文件,它的数据是它所衔接的文件的路径名。没有避免误删去的功用。
3、文件体系类型:
ext2 : 前期linux中常用的文件体系
ext3 : ext2的升级版,带日志功用
RAMFS : 内存文件体系,速度很快
NFS : 网络文件体系,由SUN创造,首要用于长途文件同享
MS-DOS : MS-DOS文件体系
VFAT : Windows 95/98 操作体系选用的文件体系
FAT : Windows XP 操作体系选用的文件体系
NTFS : Windows NT/XP 操作体系选用的文件体系
HPFS : OS/2 操作体系选用的文件体系
PROC : 虚拟的进程文件体系
ISO9660 : 大部分光盘所选用的文件体系
ufsSun : OS 所选用的文件体系
NCPFS : Novell 服务器所选用的文件体系
SMBFS : Samba 的同享文件体系
XFS : 由SGI开发的先进的日志文件体系,支撑超大容量文件
JFS :IBM的AIX运用的日志文件体系
ReiserFS : 根据平衡树结构的文件体系
udf: 可擦写的数据光盘文件体系
4、虚拟文件体系VFS
linux支撑的一切文件体系称为逻辑文件体系,而linux在传统的逻辑文件体系的基础上增加料一个蓄念文件体系( Vitual File System ,VFS) 的接口层。
虚拟文件体系(VFS) 坐落文件体系的最上层,办理各种逻辑文件体系,并能够屏蔽各种逻辑文件体系之间的差异,供给一致文件和设备的拜访接口。
5、文件的逻辑结构
文件的逻辑结构可分为两大类: 字节省式的无结构文件 和 记载式的有结构文件。
由字节省(字节序列)组成的文件是一种无结构文件或流式文件 ,不考虑文件内部的逻辑结构,仅仅简略地看作是一系列字节的序列,便于在文件的恣意方位增加内容。
由记载组成的文件称为记载式文件 ,记载是这种文件类型的基本信息单位,记载式文件通用于信息办理。
6、文件类型
一般文件 : 通常是流式文件
目录文件 : 用于表明和办理体系中的悉数文件
衔接文件 : 用于不同目录下文件的同享
设备文件 : 包括块设备文件和字符设备文件,块设备文件表明磁盘文件、光盘等,字符设备文件依照字符操作终端、键盘等设备。
管道(FIFO)文件 : 供给进程建通讯的一种方法
套接字(socket) 文件: 该文件类型与网络通讯有关
7、文件结构: 包括索引节点和数据
索引节点 : 又称 I 节点,在文件体系结构中,包括有关相应文件的信息的一个记载,这些信息包括文件权限、文件名、文件巨细、寄存方位、树立日期等。文件体系中一切文件的索引节点保存在索引节点表中。
数据 : 文件的实践内容。能够是空的,也能够非常大,而且具有自己的结构。
8、ext2文件体系
ext2文件体系的数据块巨细一般为 1024B、2048B 或 4096B
ext2文件体系选用的索引节点(inode):
索引节点选用了多重索引结构,首要体现在直接指针和3个直接指针。直接指针包括12个直接指针块,它们直接指向包括文件数据的数据块,紧接在后面的3个直接指针是为了习惯文件的巨细改变而规划的。
e.g: 假定数据块巨细为1024B ,运用12个直接指针,能够保存最大为12KB的文件,当文件超越12KB时,则要运用单级直接指针,该指针指向的数据块保存有一组数据块指针,这些指针顺次指向包括有实践数据的数据块,
假设每个指针占用4B,则每个单级指针数据块可保存 1024/4=256 个数据指针,因而运用直接指针和单级直接指针可保存 1024*12+1024*256=268 KB的文件。当文件超越268KB时,再运用二级直接指针,直到运用三级直接指针。