首页 > 系统相关 >Linux系统编程 第11章学习笔记

Linux系统编程 第11章学习笔记

时间:2022-10-19 10:59:13浏览次数:49  
标签:11 文件 ext2 编程 文件系统 block Linux 磁盘 Block

EXT2文件系统

磁盘是用来储文件的,但是必须先把磁盘格式化为某种格式的文件系统,才能存储文件。文件系统的目的就是组织和管理磁盘中的文件。在 Linux 系统中,最长见的是 ext2 系列的文件系统。其早期版本为 ext2,后来又发展出 ext3 和 ext4。ext3 和 ext4 虽然对 ext2 进行了增强,但是其核心设计并没有发生变化,所以我们仍是以较老的 ext2 作为演示对象。

基本结构:

 

 

 

Block

对于 ext2 文件系统来说,硬盘分区首先被分割为一个一个的逻辑块(Block),每个 Block 就是实际用来存储数据的单元,大小相同,Block 按照0,1,2,3 的顺序进行编号,第一个 Block 的编号为 0。ext2 文件系统支持的 Block 的大小有 1024 字节、2048 字节和 4096 字节,Block 的大小在创建文件系统的时候可以通过参数指定,如果不指定,则会从 /etc/mke2fs.conf 文件中读取对应的值。原则上,Block 的大小与数量在格式化后就不能够发生改变了,每个 Block 内最多只会存放一个文件的数据(即不会出现两个文件的数据被放入同一个 Block 的情况),如果文件大小超过了一个 Block 的 size,则会占用多个 Block 来存放文件,如果文件小于一个 Block 的 size,则这个 Block 剩余的空间就浪费掉了。

 

文件系统中存储的最小单元是块(block),一个块的大小是在格式化时确定的。启动块(Boot Block)的大小为1KB,由PC标准规定,用来存储磁盘分区信息和启动信息,任何文件系统都不能修改启动块。

启动块之后才是ext2文件系统的开始,ext2文件系统将整个分区划分成若干个同样大小的块组(Block Group)。

 

 

 

 

 

 

Block#1超级块,用于容纳整个文件系统的信息

一些重要字段:

 

 

 

Block#2块组描述符块,EXT2将磁盘块分成几个组,每个组有8192个块,磁盘上大小为32K,每组用一个块组描述符结构体来描述

 

 

 

Block#8块位图

Block#9索引节点位图

Block#10索引(开始)节点

 

索引节点

直接块:i_block[0] Mi_block[ll],指向直接磁盘块」

间接块:i_block[12]指向一个包含256个块编号(对于1KB BLKSIZE)的磁盘块,每 个块编号指向一个磁盘块。

双重间接块:i_block[13]指向一个指向256个块的块,每个块指向256个磁盘块。

三重间接块:i_block[14]是三重间接块。对于“小型” EXT2文件系统,可以忽略它。

 

数据块

 

标签:11,文件,ext2,编程,文件系统,block,Linux,磁盘,Block
From: https://www.cnblogs.com/s-j-y/p/16805438.html

相关文章

  • Linux系统编程 第12章学习笔记
    块设备I/O和缓冲区管理 块设备I/O缓冲区I/O缓冲区作为块设备的缓存内存存在I/O缓冲的基本原理非常简单。文件系统使用一系列I/O缓冲区作为块设备的缓存内存。当进程......
  • 提高编程效率的5大VS Code插件
    前言作为一名开发人员,大家会一直寻找可以帮助改进日常工作流程的解决方案,VSCode市场中就有很多优秀的扩展插件程序。正文​​一、GitLive​​GitLive是一个出色的扩展程......
  • Linux系统编程 第3章学习笔记
    Unix/Linux进程管理多任务处理:在单处理器(单CPU)系统中.一次只能执行一个任务-多任务处理是通过在不同任务之间多路复用CPU的执行时间来实现的,即将CPU执行操作从一个任务......
  • Linux系统编程 第4章学习笔记
    并发编程并行计算导论顺序算法与并行算法:   并行性与并发性:通常,并行算法只识别可并行执行的任务,但是它没有规定如何将任务映射到处理组件。在理想情况下,并行算......
  • Linux系统编程 第5章学习笔记
    定时器及时钟服务硬件定时器定时器是由时钟源和可编程计数器组成的硬件设备。 个人计算机定时器基于Intelx86的个人计算机有数个定时器(Bovet和Cesati2005)。实时......
  • Linux初识及常用命令
     持续更新中!!环境:contos7一、目录结构在linux系统中,一切皆文件目录说明/根目录,所有文件都在bin存放常用的程序文件(命令文件)boot存放引导系统启动的文件(boot配置文件,内核和其......
  • Linux下编写ENC28J60网卡驱动,完善网络设备框架
    一、框架模型linux下设备驱动都有一套标准的结构,字符设备,块设备,网络设备都是自己的一套框架。编写驱动只需要把内核的框架搞清楚,然后照着结构填入参数,注册进内核,在应用层就......
  • linux查看版本
    root@38fffa7c9485:/#uname-aLinux38fffa7c94853.10.0-1160.el7.x86_64#1SMPMonOct1916:18:59UTC2020x86_64GNU/Linuxroot@38fffa7c9485:/#root@38ff......
  • linux—— 使用gcc解析程序四个阶段
    (文章目录)一、gcc1.gcc的安装yum-yinstallgcc-c++autoconfpcrepcre-develmakeautomakeyum-yinstallwgethttpd-toolsvim2.gcc的默认使用[yzq@VM-8-8......
  • Linux学习-2
    虚拟机关键配置名词解释虚拟⽹络编辑器说明 桥接模式  可以访问互联⽹   配置的地址信息和物理主机⽹段地址信息相同,容易造成地址冲突   NAT模式 ......