Linux文件系统寻址磁盘数据的原理

什么是Linux文件系统

  1. 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。

  2. Linux常见的文件系统类型:
    ext2(Extended file system):适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区;

    ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统;

    ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升;

    xfs:SGI,支持最大8EB的文件系统;

    btrfs(Oracle), reiserfs, jfs(AIX), swap。

  3. Linxu文件系统的目录结构

Linux文件系统目录结构

硬件磁盘的结构组成

机械硬盘

Hard Disk Drive,即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。
机械硬盘的物理结构

固态硬盘

固态硬盘是由多个芯片组合在一起磁盘,数据处理速度快,但是数据更容易丢失
在这里插入图片描述
MBR和GPT 分区
MBR的分区结构
GPT的分区结构
CHS和LBA(硬盘规定的两种寻址方式)
CHS
其中前10位表示cylinder,中间8位表示head,后面6位表示sector
最大寻址空间8GB

LBA(logical block addressing)
LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址,ATA-1规范中定义了28位寻址模式,以每扇区512位组来计算,ATA-1所定义的28位LBA上限达到128 GiB。2002年ATA-6规范采用48位LBA,同样以每扇区512位组计算容量上限可达128 Petabytes。

注:由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式

Linux文件系统向硬件磁盘寻找数据的过程

文件系统向物理硬盘寻找数据的过程

在计算机中是通过文件的索引编号,文件索引编号简称Inode号,用来标识系统中的每一个文件或者块设备或者其他文件。而inode号在一个分区上不会有重复,在多个分区上允许重复,因为不在一个分区块上每个分区的节点编号都是有限的,节点编号不足时不能创建文件。

文件在Linux中的所有信息总和叫元数据(onwer所有者、time修改时间、size大小、mode权限,而节点表记录元数据),元数据记录文件的所有信息,上述提到的Inode号用来标记文件,而元数据通过指针找到具体数据。
在这里插入图片描述
在这里插入图片描述

在同一个分区中,修改文件目录或者路径只是将元数据进行修改,内容本身仍然存在原有位置,除非要移动的数据在另外一块分区,否则将只是修改元数据内容。而在硬盘中,数据并不是连续性的,是分成了很多小块来存放在很多不同的位置,这是硬盘存放数据的特性。元数据通过指针来找到硬盘中的数据,但是文件的大小会影响指针的数量,在指针逻辑上,一个指针只可以指向一个4K的数据块,一级指针最多有12个直接指针,最多48K,而越大的文件不断通过指针块来链接更多数据,一个指针块也是4K,一个指针4个字节所以有1024个,可以指向4096K的文件,再大的文件可以指向更多指针块,指针越多,文件越大,要寻找的时间就越长,这就是文件系统向硬盘寻找数据的整个过程(指针结构详细看上图)。

转载请注明出处,创作不易,且行且珍惜!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值