首页 > 系统相关 >《Unix&Linux系统编程》第七章学习笔记

《Unix&Linux系统编程》第七章学习笔记

时间:2022-10-03 20:24:00浏览次数:59  
标签:EXT2 编程 文件系统 索引 Unix Linux 磁盘 节点 Block

第11章 EXT2文件系统

Linux一直使用EXT2作为默认文件系统。EXT3是EXT2的扩展,增加了一个日志文件,它将文件系统的变更记录在日志中,日志可在文件系统崩溃时更快地从错误中恢复。EXT4则增加了磁盘块的分配,块编号为48位,它分配连续的磁盘块区(区段)。

11.1 EXT2文件系统数据结构

通过mkfs创建虚拟磁盘

在Linux下,命令

mke2fs [-b blksize -N ninodes] device nblocks

创建一个由nblocks个块(块大小为blksize字节)和ninodes个索引节点的文件系统。

11.2 虚拟磁盘布局

下面是磁盘块的内容:

Block#0:引导块,文件系统不使用它,用于容纳从磁盘引导操作系统的引导程序。

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

Block#2:块组描述符块,EXT2将磁盘分成几个组(每组8192块),每组用一个块组描述符结构体描述。

Block#8:块位图,用来表示某种项的位序列。

Block#9:索引节点位图,用来代表一个文件的数据结构。

Block#10:索引节点,每个文件都用一个128字节(EXT4的是256字节)的独特索引节点结构体表示。
直接块:i_block[0]至i_block[11]指向直接磁盘块
间接块:i_block[12]指向一个包含256个块编号的磁盘块
双重间接块:i_block[13]指向一个指向256个块的块
重间接块:i_block[14],对于“小型”EXT2文件系统可以忽略

数据块:紧跟在索引节点后面的文件存储数据块

目录条目:包含dir_entry结构,可扩充

11.3 邮差算法

Linear_address LA = N*block + house;
Block_address BA = (LA / N , LA % N);

注意:只有从0开始计数时,转换才有效。

  • C语言中的Test-Set-Clear位
    在C语言程序中,最小的可寻址单元时一个字符或字节。
    *将索引节点号转换为磁盘上的索引节点
    在EXT2文件系统中,每个文件都有一个唯一的索引节点结构。每个磁盘块包含:
INODES_PER_BLOCK = BLOCK_SIZE/sizeof(INODE)

标签:EXT2,编程,文件系统,索引,Unix,Linux,磁盘,节点,Block
From: https://www.cnblogs.com/weihehahaha/p/16751139.html

相关文章

  • java网络编程--3 TCP
    java网络编程--3TCP1.6、TCP客户端连接服务器Socket发送消息packagecom.ssl.lesson02;importjava.io.IOException;importjava.io.OutputStream;importja......
  • 什么是Linux
    导读对于刚刚接触Linux的人来说,Linux到底是个什么往往不好解释。因为太过于常见而难以向从未接触过的新人作介绍,简单理解成哈利刚刚走入九又四分之三车站,一下子和原有的世......
  • 《Unix/Linux系统编程》第五周学习笔记
    《Unix/Linux系统编程》第五周学习笔记EXT2文件系统ext2功能Ext2(第二扩充文件系统)是一种功能强大、易扩充、性能上进行全面的优化的文件系统,也是目前Linux文件系统实际......
  • Tubian Linux 0.44,增加了对无线网卡的支持
    Github主页(提供下载):https://github.com/jinshulumengchuang/Tubian-Linux123网盘下载:https://www.123pan.com/s/XjkKVv-JO9Uvhttps://www.123pan.com/s/XjkKVv-BO9Uvhtt......
  • js函数式编程讲解
    什么是函数式编程是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简......
  • ASP.NET Core – Thread, Task, Async 线程于异步编程
    前言平常写业务代码,很少会写到多线程.久了很多东西都忘光光了.刚好最近在复习RxJS.有一篇是讲scheduler的.会讲到JavaScript异步相关的资讯.既然如果那就一次......
  • java网络编程--2 IP,端口,通信协议,TCP/UDP对比
    java网络编程--2IP,端口,通信协议,TCP/UDP对比1.3、IPip地址:InetAddress唯一定位一台网络上的计算机127.0.0.1:本机localhostIP地址的分类ipv4/ipv6IPV4......
  • js函数式编程讲解
    什么是函数式编程是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简......
  • GUI编程
    我们要怎么学?是什么,怎么玩,怎么用组件窗口弹窗面板文本框列表框按钮图片监听事件键盘事件破解工具1.简介GUI的核心技术:SwingAW......
  • 我的编程之旅
    我是一名程序员,虽然码龄只有两年,但是读过许多经典的书籍,比如《java核心技术卷I》,《java核心技术卷II》,学了许多框架,从最初的javaweb到ssm,再到springboot,以及springclo......