Ext2的一般特征:
1、创建Ext2文件系统时,系统管理员可以根据预期的文件平均长度来选择最佳块大小(从1024B~4096B)。来减少文件碎片
2、创建Ext2文件系统时,系统管理员可以根据在给定大小的分区上预计存放的文件树来选择给该区分配多少个索引节点。更加有效的利用磁盘空间
3、文件系统将磁盘分组,每组包含存放在相邻磁道上的索引节点和数据块。对单独块组中的文件访问的时候可以减少磁盘的平均寻道时间。
4、磁盘数据块被使用之前,就被系统预分配给普通文件,当文件增大时,因为物理上的相邻块已经被保留,这就减少了文件的碎片。
5、支持快速符号链接。 Ext2的一些健壮灵活的特点:
1、给文件创建新的硬链接时,先在索引节点中增加硬链接计数器,然后把新名字加到指定目录下。这样虽然在删除文件后,导致文件不会被自动回收。但是相比反过来,先添加到目录,后加索引计数器,在删除原文件后,导致新增硬链接指向错误的数据块,更是一场灾难。
2、在启动时支持对文件系统的状态进行自动的一致性检查。由外部程序e2fsck完成。可以再系统崩溃之后激活,也可以在预订的安装次数、或者预定义的时间激活。
3、支持不可变的文件
4、兼容Unix System V Release (SVR4, 新文件的用户组ID的BSD语义相兼容 Ext2需要的特性:
1、块片:
系统管理员对磁盘的访问通常选择较大的块,因为计算机通常处理大文件。因此导致大的块存放小文件会浪费很多磁盘空间。为解决这个问题,将几个不同文件放在同一个块点不同片上来解决。 2、透明地处理压缩和加密文件:
这些新的选项将允许用户透明地在磁盘上存放压缩和加密的文件版本。 3、逻辑删除:
一个undelete选项将允许用户在必要的时候很容易恢复以前已经删除的内容 4、日志:
日志避免文件系统在被突然卸载时对其进行自动的耗时检查。 Ext2的数据结构:
1、第一个块不受Ext2文件系统的管理,保留下来作为分区引导扇区。
2、其余的分为块组,大小相等,顺序排列
3、块组的多少,取决于分区的大小和块的大小。限制在于块位图
4、块位图必须放在一个单独的块中。用来标记组中块的空闲和占用情况,所以每个组中可以有8*b个块,b是块的字节数(1024~4096)。 超级块:
组描述符和位图:
1、块大小为1024、2048、4096字节,因此一个单独的位图描述8192、16384、32768个块的状态。 索引节点表:
1、由一连串连续的块组成,每一个块包含索引节点的一个预定义号。
2、索引节点大小相同,128个字节。
3、128个字节,限制了索引节点的扩展。256个字节又太浪费,故提出了增强属性的概念。 访问控制列表:
1、限制了每个文件可以访问用户(用户组)名称以及权限 创建Ext2文件系统:
1、格式化磁盘,以使磁盘驱动程序可以读和写磁盘上的块。
2、创建文件系统。 Ext3文件系统
1、添加了日志功能

  

深入理解Linux内核-Ext2和Ext3文件系统的更多相关文章

  1. 在Linux环境中使用Ext3文件系统

      Linux缺省情况下使用的文件系统为Ext2,ext2文件系统的确高效稳定.但是,随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显露出来了:其中系统缺省使用的ext2文件系统 ...

  2. 读书笔记之Linux系统编程与深入理解Linux内核

    前言 本人再看深入理解Linux内核的时候发现比较难懂,看了Linux系统编程一说后,觉得Linux系统编程还是简单易懂些,并且两本书都是讲Linux比较底层的东西,只不过侧重点不同,本文就以Linu ...

  3. 《深入理解Linux内核》 读书笔记

    深入理解Linux内核 读书笔记 一.概论 操作系统基本概念 多用户系统 允许多个用户登录系统,不同用户之间的有私有的空间 用户和组 每个用于属于一个组,组的权限和其他人的权限,和拥有者的权限不一样. ...

  4. 【读书笔记::深入理解linux内核】内存寻址【转】

    转自:http://www.cnblogs.com/likeyiyy/p/3837272.html 我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0 ...

  5. 【读书笔记::深入理解linux内核】内存寻址

    我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系. 这句话瞬间让我惊呆了,根据我的CPU的知识,开 ...

  6. linux 内核移植和根文件系统的制作【转载】

    原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...

  7. linux 内核移植和根文件系统的制作

    1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1  Linux版本 Linux内核的版本号 ...

  8. 深入理解Linux内核-虚拟文件系统

    Linux 成功的关键之一是它具有和其他操作系统和谐共存的能力 5个标准文件类型:1.普通文件2.目录文件3.符号链接文件4.设备文件5.管道文件 虚拟文件系统(Virtual FileSystem) ...

  9. Linux内核启动及根文件系统载入过程

    上接博文<u-boot之u-boot-2009.11启动过程分析> Linux内核启动及文件系统载入过程 当u-boot開始运行bootcmd命令,就进入Linux内核启动阶段.与u-bo ...

随机推荐

  1. java json与map互相转换(二)

      java json与map互相转换(二) CreationTime--2018年7月16日15点09分 Author:Marydon 1.准备工作 所需jar包: commons-beanutil ...

  2. javascript 如何打印、输出数组内容(将数组内容以字符串的形式展示出来)

        1.情景展示 在实际开发过程中,为了调试,有时我们需要看数组中具体包含了哪些数据,但是, 如果我们直接打印该数组对象,显示的结果却不是我们想要的. 如何才能将数组内容打印出来呢?(将数组内容以 ...

  3. jQuery live事件说明及移除live事件方法

    1.live事件说明 jQuery1.3增加了一个live()方法,下面是手册上的说明: jQuery 1.3中新增的方法.给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件).也 ...

  4. mysql字符生命周期

    mysql的字符集,对数据的导入导出很关键,明白自己集在不同阶段不同场景下的意义即为重要! 01.查看mysql当前字符集 show variables like '%cahr%'; 02.用户请求m ...

  5. Android Studio 错误: 非法字符: &#39;\ufeff&#39; 解决方式|错误: 须要class, interface或enum

    在导入eclipse项目到Android Studio出现这种错误, 非法字符: '\ufeff' 解决方式|错误: 须要class, interface或enum.查阅后了解到Eclipse能够智能 ...

  6. ios 中sqlite的用法

    #import <sqlite3.h> @interface ViewController () { sqlite3 *_sqldb; } @end @implementation Vie ...

  7. 听听各位对Ubuntu的UI的看法

    2012-7-15 15:46    最近升级到Ubuntu 12.4 .发现其界面效果真的时越来越炫啦.我就在想,你Ubuntu你图什么啊, 你是以个Linux系统,你的重点在于让系统运行更稳定,更 ...

  8. quine

    发鸠之山,其上多柘木,有鸟焉,其状如乌,文首,白喙,赤足,名曰:"精卫",其鸣自詨(音同"笑").是炎帝之少女,名曰女娃.女娃游于东海,溺而不返,故为精卫,常衔 ...

  9. 编程实践笔记{Java 线程 并发处理 Webservice}(转)

    http://www.cnblogs.com/mingzi/archive/2009/03/09/1406694.html 1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量 b, 使共享变 ...

  10. 树莓派进阶之路 (010) - 树莓派raspi-config配置(转)

    经过前面两步我们的树莓派已经正常的工作起来了,但是在真正用它开发之前还需要进行一些列的配置以及软件的安装,这样开发起来才会得心应手,下面我们介绍一下常用的软件和服务 1.配置选项: 树莓派第一次使用的 ...