深入理解Linux内核-Ext2和Ext3文件系统
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文件系统的更多相关文章
- 在Linux环境中使用Ext3文件系统
Linux缺省情况下使用的文件系统为Ext2,ext2文件系统的确高效稳定.但是,随着Linux系统在关键业务中的应用,Linux文件系统的弱点也渐渐显露出来了:其中系统缺省使用的ext2文件系统 ...
- 读书笔记之Linux系统编程与深入理解Linux内核
前言 本人再看深入理解Linux内核的时候发现比较难懂,看了Linux系统编程一说后,觉得Linux系统编程还是简单易懂些,并且两本书都是讲Linux比较底层的东西,只不过侧重点不同,本文就以Linu ...
- 《深入理解Linux内核》 读书笔记
深入理解Linux内核 读书笔记 一.概论 操作系统基本概念 多用户系统 允许多个用户登录系统,不同用户之间的有私有的空间 用户和组 每个用于属于一个组,组的权限和其他人的权限,和拥有者的权限不一样. ...
- 【读书笔记::深入理解linux内核】内存寻址【转】
转自:http://www.cnblogs.com/likeyiyy/p/3837272.html 我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0 ...
- 【读书笔记::深入理解linux内核】内存寻址
我对linux高端内存的错误理解都是从这篇文章得来的,这篇文章里讲的 物理地址 = 逻辑地址 – 0xC0000000:这是内核地址空间的地址转换关系. 这句话瞬间让我惊呆了,根据我的CPU的知识,开 ...
- linux 内核移植和根文件系统的制作【转载】
原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...
- linux 内核移植和根文件系统的制作
1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1 Linux版本 Linux内核的版本号 ...
- 深入理解Linux内核-虚拟文件系统
Linux 成功的关键之一是它具有和其他操作系统和谐共存的能力 5个标准文件类型:1.普通文件2.目录文件3.符号链接文件4.设备文件5.管道文件 虚拟文件系统(Virtual FileSystem) ...
- Linux内核启动及根文件系统载入过程
上接博文<u-boot之u-boot-2009.11启动过程分析> Linux内核启动及文件系统载入过程 当u-boot開始运行bootcmd命令,就进入Linux内核启动阶段.与u-bo ...
随机推荐
- C++11中的mutex, lock,condition variable实现分析
本文分析的是llvm libc++的实现:http://libcxx.llvm.org/ C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装.不 ...
- JBoss和tomcat的区别
JBoss和tomcat的区别 注意JBoss和tomcat是不一样,JBoss是一个可伸缩的服务器平台,当你的EJB程序编制完成后,如果访问量增加,只要通过增加服务器硬件就可以实现多台服务器同时运算 ...
- linux上源码编译安装mysql-5.6.28
在 linux 上编译安装 mysql-.tar.gz http://www.mysql.com/ mysql下载地址: http://www.mysql.com/downloads/mysql/#d ...
- JavaScript 表单验证入门
JavaScript 表单验证 JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证. 被 JavaScript 验证的这些典型的表单数据有: 用户是否已填写表单 ...
- sikuli 如何 清空文本框中的内容??解决方法!
Screen s = new Screen(); s.click("name.png"); s.type("a",KeyModifier.CTRL); s.ty ...
- libev loop_init分析
尼玛 C语言学不好真是桑心呐! 看了libev的代码有一种想死的感觉,但是还是要硬着头皮看下去,一定看完! /* initialise a loop structure, must be zero-i ...
- Elasticsearch报警插件Watch安装以及使用
参考:http://blog.csdn.net/ptmozhu/article/details/52296958 http://corejava2008.iteye.com/blog/2214279 ...
- Apache Rewrite(大小写)
1.Rewrite规则简介: Rewirte 主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式.如果 ...
- centos 为OPENJDK配置JAVA_HOME环境变量,安装MAVEN
1.安装开发者工具包 yum install java--openjdk-devel -y 2.配置环境变量 vim /etc/profile export JAVA_HOME=/usr/lib/jv ...
- 一个web.Config或app.Config自定义段configSections的示例
一个web.Config或app.Config自定义段configSections的示例 越来越觉得,直接用配置文件app.Config或web.Config配置应用系统的运行参数,比自己做一个xml ...