当前位置:  技术问答>linux和unix

文件系统ext2的一些不理解

    来源: 互联网  发布时间:2016-05-13

    本文导语:  手头只有深入理解linux内核第三版的E文版,所以也只能贴出E文原文来提问了。(第18.2节) Each block in a block group contains one of the following pieces of information: A copy of the filesystem's superblock A copy of the group of bl...

手头只有深入理解linux内核第三版的E文版,所以也只能贴出E文原文来提问了。(第18.2节)
Each block in a block group contains one of the following pieces of information:

A copy of the filesystem's superblock
A copy of the group of block group descriptors
A data block bitmap
An inode bitmap
A table of inodes
A chunk of data that belongs to a file; i.e., data blocks

每个block group 都包含了一个文件系统的superblock的副本,这个可以理解,但是为什么包含一个block group descriptors的副本我就不能理解了。一个block group descriptor包含如下信息:
 Block number of block bitmap 
 Block number of inode bitmap
 Block number of first inode table block
 Number of free blocks in the group
 Number of free inodes in the group
 Number of directories in the group
 Alignment to word
 Nulls to pad out 24 bytes

第4-6项信息分明表达的是自己块组的信息,为什么要让所有的块组都用一个副本呢?

-------------------------------第2个问题的分隔线----------------------------

How many block groups are there? Well, that depends both on the partition size and the block size. The main constraint is that the block bitmap, which is used to identify the blocks that are used and free inside a group, must be stored in a single block. Therefore, in each block group, there can be at most 8xb blocks, where b is the block size in bytes. Thus, the total number of block groups is roughly s/(8xb), where s is the partition size in blocks.

block bitmap用于记录组内哪些block已被或未被使用,那假设1:他只记录了Data blocks的使用状况的话,那一个block group的大小肯定大于8xb,因为还要加上super block等等block的大小。假设2:block bitmap记录了自己所在block group里所有block的使用状态的话,那岂不是诸如group descriptors之类的block必定一直被标为已使用?

|
第一个问题:关于磁盘块组描述符的备份问题:
在每个磁盘块组中都记录了EXT2分区中所有块组描述符的备份,它们被连续存放在紧接着超级块后面的磁盘块中,形成磁盘块组描述符表。Linux在使用的时候,仅仅使用第0个磁盘块组中的磁盘块组描述符表。多个磁盘块组描述符信息表形成的冗余可以用来恢复被损坏的磁盘块组描述符表。


第二个问题:
就在于block_bitmap到底是针对一个block_group中所有块的,还是仅仅针对数据块的

|
第一个我问题,你的理解错了。应该是说“块组中的每一个块包含下列信息中的一条",而不是说”一个块包含列出来的所有信息“。你觉得这样可能吗?你如果觉得看书没看明白,这个时候你应该去看看代码究竟怎么做的。(我还没看过代码哈)
你还应该看紧接着一段说的"As you can see from Figure 18-1, both the superblock and the group descriptors are duplicated in each block group. ",这是告诉你,每个块组都复制了superblock和group descriptors.

第二个问题,你前面一堆没大看明白,不过对于你的疑问,我的回答是当然的,group descriptors之类所在的块肯定应该被标为已用。另外,bitmap当然是应该是既记录了已用的block,也记录了未用的block,你的假设不成立。其实bitmap就是一个表格,每个block在里面对应一个bit,如果block使用了就标1,如果block空闲就标0. 这是常识哦,建议看源码。


|
给你置顶7天

|
懂E文还是好的

|
,group descriptors

    
 
 

您可能感兴趣的文章:

  • system.map文件的作用和理解
  • APUE中这句话怎么理解呢:对一个特定文件打开其设置组ID位并关闭其组执行位,则对该文件开启了强制性锁机制
  • tomcat 4.0.1 安装运行后在conf目录没有 .conf 文件,只有server.xml,可是 Apache 1.3.23无法理解server.xml,请问该如何配置?
  • Redhatlinux 文件系统如何理解
  • CS:APP深入理解计算机系统练习题-【ELF文件的符号表相关】
  • 怎么样理解文件系统呢?
  • Android开发之文件操作模式深入理解
  • 请大家帮我理解/dev/console和/dev/tty这两个文件的区别
  • 遍历文件系统目录树的深入理解
  • 文件复制时,进行限速的代码 理解
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍
  • linux 的文件系统,删除文件后为什么文件系统的大小不变?
  • linux内存文件系统ramfs实现原理
  • UNIX系统下,进程写文件,写了很大量的文件,但是进程被KILL -9杀掉,系统可以保证写缓冲上的文件写到系统吗?
  • Linux内存文件系统(ramdisk)的三种实现方式
  • pipe是什么样的文件系统?是独立的文件系统吗?
  • FastDFS分布式文件系统介绍和FastDFS的安装配置过程
  • 怎样让系统文件与虚拟机中的系统文件共享
  • Linux下u盘文件系统相关操作
  • linux 文件系统怎样保证文件系统一致性
  • ubuntu查看系统日志及相关文件介绍
  • 请教文件系统和根文件系统
  • Linux系统命令:find(文件查找命令)介绍及用法示例
  • 问一个问题。请问如何在文件系统管理并使用设备,也就是当一个设备装载,下载时。文件系统是如何实现的
  • 如何让linux系统启动时自动加载fat文件系统,并且能够识别中文目录名或文件名.
  • windows文件系统 比 linux文件系统慢在哪儿?
  • 谁有办法把一个原来是fat32的文件系统,被格式成为sco unix文件系统还原回来?
  • proc文件系统和通常说的ext2文件系统有什么关系啊
  • 在linux操作系统上向ftp服务器(linux系统)上上传文件,我要纪录操作日志,得到上传到ftp服务器上的文件的路径问题?
  • Linux 2.2.14 程序频繁进行文件读写,总会有一些文件系统损坏,就会造成系统无响应。使用fsck可以修复。
  • solaris文件系统删除文件后文件夹大小不变
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 eof():如果处于文件结尾处则返回true
  • Shell脚本如何递归现实一个文件夹中的文件(文件夹中含有文件夹)
  • WinDows8最新版文件夹加密
  • 求命令:什么命令可以把文件夹下所有的文件按修改时间先后排出来,包括子文件夹里的文件。
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • [提问]Linux下如何把多个.a文件编译一个.so文件,或者把多个.so文件编译成一个.so文件
  • python异常信息堆栈输出到日志文件
  • 请问:proc中的头文件中能包含头文件吗?(感觉如果头文件中包含头文件的话,在链接时就会有错误啊)
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • 在MyEclipse中设开启xml文件自动提示和自动完成功能
  • vi 中编辑两个文件,怎样从其中一个文件拷一段内容到另一个文件中。(同时打开两个文件)
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • mount命令(linux操作系统)挂载卸载文件系统(cifs,光驱,nfs等)方法介绍 iis7站长之家
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 请教高手一个简单问题:给定一个文件名,如何去查找该文件正在被几个程序使用,并怎么样才可以切断这个文件与正在打开该文件的程序之间的
  • MyEclipse如何查看和设置文件编码格式相关操作
  • linux 下的 .a 文件 .o 文件 是什么文件?各有什么作用?
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 如何用socket一次传输多个文件,如何确定文件一个文件结束
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • 如何删除某个目录下除了指定文件夹之外的所有文件和文件夹


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3