【Linux】基础IO_2

文章目录


六、基础I/O

2. 系统文件I/O

磁盘的存储结构

系统中不是所有对文件都是打开的状态,大部分的文件都是没有被打开的。这些文件一般都被存储在磁盘当中。磁盘通过柱面,扇面,扇区确定一个固定的储存空间。而文件就存储在这一个个扇区当中。

将一个个扇区展开,像磁带一样,所以磁盘的一片片区域就可以看作一个 数组 。而操作系统通过对数组进行 分块、分区、分组 ,将一个非常大的空间转变成一个小小的空间。使用分治的思想就可以使只管理好一个小小的组就能管理好整个磁盘。

Block Group:ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相同的结构组成。政府管理各区的例子

超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,

未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个文件系统结构就被破坏了

GDT,Group Descriptor Table:块组描述符,描述块组属性信息,有兴趣的同学可以在了解一下

块位图(Block Bitmap):Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用

inode位图(inode Bitmap):每个bit表示一个inode是否空闲可用。

i节点表:存放文件属性 如 文件大小,所有者,最近修改时间等

数据区:存放文件内容

我们知道,Linux的文件特性:文件 = 内容 + 属性 。文件的内容大小不确定,但是文件的属性大小是确定的(文件的名称不是文件的属性!),因此文件的内容和文件的属性不会存在一起。文件的属性是一个结构体,里面存着文件的属性。但是不知道文件名我们怎么确定文件?Linux通过文件编号来确定一个文件。

文件的属性的结构体中存储着文件内容所在的块的编号,通过这个编号就能找到相应的文件。


未完待续

相关推荐
远离UE4几秒前
Forward+ & Deferred+学习笔记
笔记·数码相机·学习
大肥羊学校懒羊羊3 分钟前
FAST-LIVO2 一键复现教程(Ubuntu 20.04 / ROS Noetic )
linux·运维·ubuntu
郝亚军4 分钟前
libmodbus在Ubuntu 22.04上按arm64架构编译方法
linux·运维·ubuntu
Hua-Jay6 分钟前
OpenCV联合C++/Qt 学习笔记(十六)----图像细化、轮廓检测、轮廓信息统计及轮廓外接多边形
c++·笔记·qt·opencv·学习·计算机视觉
谙弆悕博士7 分钟前
Fortran学习笔记
经验分享·笔记·学习·职场和发展·跳槽·学习方法·fortran
nashane19 分钟前
HarmonyOS 6学习:Web组件本地资源跨域访问全解析与实战
前端·学习·harmonyos·harmonyos 5
wuxinyan12322 分钟前
大模型学习之路009:问题解决-RAG 知识库系统能上传文档,但检索不到内容
人工智能·学习·rag
蓝桉~MLGT23 分钟前
中级软考(软件工程师)——软件设计师高频核心考点大补充(架构设计、硬核计算与OS篇)
学习·中级软考
IT菜鸟程24 分钟前
Linux 系统安全加固实战:从密码策略到 SSH 访问控制
linux·ssh·系统安全
cen__y24 分钟前
Linux10(计算机网络01)
linux·运维·服务器·c语言·计算机网络·ubuntu