首页 > 代码库 > linux文件系统
linux文件系统
文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统由三部分组成:文件系统的接口,对对象操纵和管理的软件集合,对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
Linux最传统的文件系统是EXT2!因为文件系统是建立在硬盘上面的,所有我们得了解硬盘的物理组成才行!
整颗磁盘的组成有:
圆形的磁盘盘(主要记录数据的部分)
机械手臂,与在机械手臂上的磁盘读取头(可察写磁盘上的数据)
主轴马达,可以转动磁盘,让机械手臂的读取头在磁盘上读写数据
磁盘上物理的组成:
扇区为最小的物理储存单位,每个扇区为512bytes
将扇区组成一个圆,那就是磁柱,磁柱是分和割槽的最小单位
第一个扇区最重要,里面有:MBR 和分割表,其中MBR是446bytes,分割表是64bytes
/dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash随身碟等接口的磁盘文件名
/dev/sd[a-d][1-63]:为IDE接口的磁盘文件名
因为分割表只有64bytes而已,所有最多只能记录四笔分割槽的记录!但分割槽可以再分割出逻辑分割槽
分割的定义:
主要分割与延伸分割最多可以有四笔记录
延展分割最多只能有一个
逻辑分割是由延展分割持续切割出来的分割槽
能够被格式化后,作为数据存储的分割槽为主要分割与逻辑分割
磁盘分区完毕后为什么要格式化?
因为每种操作系统所设定的【文件属性/权限】并不相同,为了存放这些档案所需的数据,因此需要将分割槽进行格式化,以成为操作系统能够利用的【文件格式】
superblock:记录文件系统的整体信息,包括indoe/block是总量,使用量,剩余量,以及文件系统的相关格式
inode:记录档案的的属性,一个档案占用一个inode,同时记录此档案的数据所在的block号码
block:实际记录档案的内容,若档案太大,会占用多个block
windows下的碎片整理的原因就是档案写入block太过离散,然后将同一个档案所属的blocks汇集在一起,这样读取就会比较快!
EX2文件系统的block有什么限制?
block的大小与数量在格式化完成就不能再改变
每个block只能放置一个档案的数据
若档案大于block大小,则一个档案会占用多个block数量
若档案小于block大小,则剩余容量就不能够再使用(磁盘空间会浪费)
日志式文件系统:在filesystem中规划一个区块,专门记录写入或修订档案时的步骤!万一在数据的记录过程中发生了问题,可以根据日志记录去修复filesystem!这是日志式档案最基础的功能!
预备:当系统要写入一个档案时,会在日志记录中记录某个档案准备要写入的信息
实际写入:开始写入档案的权限和数据,开始更新metadata数据
结束:完成数据与metadata的更新后,在日志记录区块中完成档案的记录
从ext2转换到ext3的主要理由:
可利用性 (快速修复)
数据完整性
速度易于转换(ext2转为ext3不需格式化)
linux文件系统的运作:
异步处理:当系统加载一个档案到内存后,该档案没有更改,则被设定为干净的(clean)
若已更改过的,则被设定为脏的(dirty).此时所有动作还在内存中,没有写入到磁盘中!系统不会将脏的(dirty)的数据写入磁盘!
其实,整个linux的文件系统是通过一个Virtual Filesystem Switch的核心功能去读取的
挂载的意义:将文件系统与目录树结构结合的动作
*挂载一定是目录
[root@localhost ~]# ls -lid /
2 drwxr-xr-x 28 root root 4096 11-05 10:00 /
文件系统最顶层的目录inode一般为2号
本文出自 “linux运维分享” 博客,请务必保留此出处http://liangey.blog.51cto.com/9097868/1572115
linux文件系统