Ext系列文件系统 -- 磁盘结构,磁盘分区,inode,ext文件系统,软硬链接

目录

1.理解硬盘

1.1 磁盘、服务器、机柜、机房

1.2 磁盘物理结构 

1.3 磁盘的存储结构

1.4 磁盘的逻辑结构

1.4.1 理解逻辑结构

1.4.2 真实过程

1.5 CHS地址和LBA地址的相互转换

2.引入文件系统

2.1 “块”概念

2.2 “分区”概念

2.3 “inode”概念

3.ext2文件系统

3.1 宏观认识

3.2 Block Group

3.2.1 数据区(Data Blocks)

3.2.2 i节点表(inode Table)

3.2.3 块位图(Block Bitmap)

3.2.4 inode位图(Inode Bitmap)

3.2.5 GDT(Group Descriptor Table)

3.2.6 超级块(Super Block)

3.3 inode 和 Data Block的映射(简单说明)

3.4 目录与文件名

3.5 路径解析

3.6 路径缓存

3.7 挂载分区

3.9 文件系统总结 

4.软硬链接

4.1 软链接

4.2 硬链接


1.理解硬盘

1.1 磁盘、服务器、机柜、机房

        机械磁盘是计算机中唯一的一个机械设备,磁盘对于计算机来说是一种外设,机械磁盘的特点是容量大,价格便宜但是传输数据慢(相对于内存和cpu之间的传输)。

        如下图,就是一块企业级的磁盘

        如下就是把上述磁盘的内部结构,数据就存储在像光盘一样的盘面上。

        下图就是一个由一块一块的磁盘构成的服务器,每一块磁盘都是可拔插的。

        将一个一个服务器放在一个柜子里面,这个柜子就叫做机柜,用于放置服务器的柜子。

        将一个一个机柜集中起来统一放在一个房间里面,这个房间就叫做机房。 

1.2 磁盘物理结构 

1.3 磁盘的存储结构

        在盘面上,围着主轴转的一个一个同心圆叫做磁道,每个磁道都可以分为若干个一小节一小节的区域,这个区域叫做扇区,扇区是有宽度的,扇区是磁盘存储数据的基本单位,一般为512字节,是一个块设备。

        而一块磁盘上不仅仅只有一个盘面,如上图,这块磁盘有三个盘,则有6个盘面,每一个盘面相同的磁道,组成的柱状叫做柱面。 

        下图为多个盘面磁盘的示意图。 

        文件 = 内容 + 属性。内容和属性都是数据,无非就是占据多少个扇区和占据哪几个扇区的问题。 使用 fdisk -l 命令可以查看本地的磁盘情况。

扇区(sector)数:磁盘读写数据的最小单位,通常大小为512字节,每个磁道都被分成很多扇区,每个磁道的扇区数量相同。

磁头(head)数:每个盘面一般有上下两面,分别对应1个磁头。

磁道(track)数:磁道是从盘面外圈往内圈编号0磁道,1磁道...,靠近主轴的同心圆用于停靠磁头,不存储数据。

柱面(cylinder)数:磁道构成柱面,数量上等同与磁道个数。

圆盘(platter)数:就是盘片的数量。

磁盘容量 = 磁头数 * 磁道数 * 每个磁道的扇区数 * 每个扇区的字节数

知识点1:

        如何定位一个扇区?

                先确定在要访问哪一个柱面(cylinder),在确定磁头(header)来确定访问柱面上哪一个磁道,最后定位访问该磁道的哪一个扇区(sector)。这种定位方案叫做CHS地址定位。

1.4 磁盘的逻辑结构

1.4.1 理解逻辑结构

        对于一个盘面来说,一个盘面就相当于一个”磁带“,当把“磁带”拉直,则就将一个盘面变成了一个线性结构。

        磁盘本质上虽然是硬质的,但是逻辑上我们可以把磁盘想象成卷在一起的磁带,磁盘的逻辑存储结构可以类似于:

        这样每一个扇区,就有了一个线性地址(数组下标),这种地址叫做LBA。 

        注:一个盘面的扇区编号从 ‘1’ 开始。

1.4.2 真实过程

        柱面是一个逻辑上的概念,一个柱面就是由所有相同半径的磁道构成。磁盘物理上有很多盘面,但是在我们看来,逻辑上磁盘整体是由一个一个柱面卷起来的。

        所以,磁盘的真是情况如下:

        磁道 -- 某一盘面的某一个磁道展开:

        柱面 -- 整个磁盘所有盘面的同一个磁道,即柱面展开:

        柱面上的每个磁道的扇区个数是相同的,构成一个二维数组。

        整个磁盘 -- 整个磁盘就是由若干个柱面构成,展开如下: 

        所以,整个磁盘就是多张二维的扇区数组表,可以看成一个三维数组。

        所以寻址一个扇区,一是先找到哪一个柱面(cylinder),在确定柱面内的哪一个磁道(其实就是确定哪一个磁头(head)),最后确定磁头上的哪一个扇区(sector),这就叫做CHS寻址。

        在计算机中,多维数组都可以被看作为一维数组: 

         所以每一个扇区都有一个下标,叫做LBA(Logical Block Address)地址,就是线性地址。

         OS只需要使用LBA地址就可以了。LBA地址和CHS地址的相互转换由磁盘自己来做。

1.5 CHS地址和LBA地址的相互转换

        CHS转成LBA:

LBA地址 = 柱面号C * 单个柱面的扇区总数 + 磁头号H * 单个磁道的扇区总数 + 扇区号S - 1

        注:柱面和磁道都是从0开始编号的,扇区号通常从1开始,而LBA是数组下标,也是从0开始,所以上面的计算公式中,扇区号要减1。

        柱面,磁道,扇区总数等信息,在磁盘内部会自动维

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值