1硬盘的物理组成:原型盘片,加磁头组成。
一个盘片有2面 ,有多个柱面,有多个扇区,多个磁道。
每一个扇区大小相同都是512bit,每一个磁道有相同数目的扇区(扇区存储的数据相同但是密度不同),每一个扇区可用3维坐标来表示(柱面,磁头,扇区),
硬盘的容量可表示为: C=A*B
A=(磁头数*柱面数)=多少个磁道
又因为每个磁道扇区数目相等以及每个扇区存储数据相同,也就是每个磁道存储的数据大小相等
B=(磁道容量=扇区数量*扇区大小)
第一个扇区就是(0,0,1)就是主引导程序(mbr)446b和分区表64b
2磁盘分区:代表的是高速操作系统次分区可以访问从a柱面到b柱面的之间的块。
因为磁盘分区表只有64个字节所以只能记录4条分区的记录 (这4条记录称为主分区(p)和扩展分区(e))其中扩展分区还可以在划分但是主分区不可以.
如可以划分为 p+p+p+p
或者p+p+p+e(e可以再划分)
只可以格式化p或者可扩展分区的逻辑分区,即扩展分区不能被整体格式化
3分区完成之后要格式化:目的是使分区成为能被操作系统利用的文件系统。
如windows 是ntfs 而linux正规文件系统是ext2
4.以前一个分区只可以格式化为一个文件系统。现在可以一个分区可以挂在多个文件系统
由于上面原因:现在我们称一个可以被挂载的数据为一个文件系统
5.文件系统的如何运行:一般一个文件系统分为:3个文件块
一个是inode 块(记录文件的属性权限,还有文件数据所在的block块号)
一个是block 块(实际记录文件的数据,文件太大可以占多个块)
一个是super block块(记录inode 和block的使用情况,文件系统的格式和相关信息)
6文件系统的访问:索引式访问和链表式访问。
Linux是索引式访问
U盘是fat格式为链表式访问
7.inode和block块在格式化完成后就被文件系统分好啦
文件系统可以分为多个块组,,每个块组都有自己的(super block, inode, block)
启动扇区 |
Block group1 |
Block group2 |
Block group3 |
Block group4 |
每一个block group 又可以分为
Superblock |
文件系统描述 |
块对应表 |
Inode对应表 |
Inode table |
datablock |
在文件系统的最前面的一个扇区安装引导驱动程序(mbr)
8.data block 在ext2下有3种大小:1kb,2kb,4kb
每一个文件都会占用一个或多个block ,所以合理设置block很重要,会对内存的利用率提高。
9inode table
文件权限,属性记录区 |
12个直接记录区 |
一个间接记录区 |
一个双间接记录区 |
一个3间接记录区 |
12个直接记录block号 inode ->block 可以有12block号
假设一个block分为1kb,每个block占4个字节
间接记录Inode->block->block: 可以有:1*1kb/4=256个block号
双间接记录Inode->block->block->block
3间接记录Inode->block->block-> block->block
9.superblock(大小为1024个字节) 使用过dumpe2fs命令查看。
主要记录block与inode的总量,以及使用情况以及(block的大小(1,2,4kB),或者inode的大小(128B)),文件系统的挂载时间,最近一次写入磁盘的时间,最近一次检验磁盘的时间等
Vaildbit 代表文件系统是否被挂载(1时被挂载,0未被挂载)
一般superblock只有一个,若有多个只是第一个的备份,用于数据的恢复
10.inode 对应表代表inode的使用情况
11.block 块对应表代表block的使用情况
12.文件系统描述符代表的是每一个block group的详细信息,如开始block,结束block,以及每一个区段的各个描述表所在的位置。
13文件系统与目录树的关系
1每个文件或目录都会占用一个inode号用于文件的属性与权限
2.每个文件或目录会分配多个block用于存储真正的数据
对于目录,inode存储的是目录的相关属性与权限,block记录的是目录下的文件名和文件名占用的inode号
对于文件,inode记录文件的相关信息,block记录真正的数据(先用直接,后间接后…)
3目录树的读取:系统根挂载点的信息找到挂载点号码得到根目录的inode内容,得到根目录的block文件数据,在一层层的往下读。
4关于文件系统的大小与读写性能:
如果文件过于离散,则把数据全部复制出来再格式化一下文件系统在复制回去。
分区不适宜过大,应该对主机的用途做划分。
14.ext2和ext3文件的访问和日志文件系统的功能
当新增一个文件时根据权限检查,从inode 对应表找出未使用的inode并将文件相关属性权限信息写入inode,根据block对应表 找出未使用的block写入数据,更新inode对应表和block对应表以及superblock表
日志文件系统的由来:由于文件存入是可能会导致block bitmap 和inodebitmap未作出及时处理,导致文件系统不一致,所以ext2每次系统都回检查全部磁盘,从而浪费时间
Ext3比ext2多一个日志文件系统
日志文件工作流程:
1预备文件准备录入的信息
2写入块表和inode表,更新medadata表
3日志文件记录流程.
优点:无需检查全部磁盘,只需要看日志文件即可.
15linux文件系统的操作:会缓冲常用的文件数据到内存,物理内存会被用光,未被改动的文件设置为clean改动过得设置为dirty,可以通过sync同步写入磁盘
正常关机会自动调用sync,非自动关机可能会导致磁盘数据的损毁。
16.文件系统与挂载点
文件系统只有与目录树结合才能被使用,这个称为挂载。
挂载点一定是目录,目录为该文件系统的入口。