Linux文件系统分析
请简述 linux 中的文件系统层次结构

请简述 linux 中的文件系统层次结构
Linux系统的文件系统层次结构是非常复杂的,通常可以分成如下几个层次:
1. 根目录:根目录是 Linux 文件系统中最顶层的根目录,它可以看做是 Linux 系统整个文件系统的根,其它所有的子目录都在它之下,一般用 '/' 表示。
2. 二级目录:包括 '/etc'、'/usr'、'/bin'、'/sbin'、'/lib' 等,这些目录又可以看做是四级目录的父目录,下面可以放置用户自定义的文件和文件夹。
3. 四级目录:这里可以放置用户自定义的应用程序,一般都是以某个子目录名开头,比如 '/usr/local','/usr/bin'、'/usr/sbin'等。
4. 程序文件:可以放置各种程序文件,包括可执行文件、库文件、配置文件等。
5. 日志文件:记录系统的运行日志,以及用户行为日志,用于排查故障。
6. 数据文件:用户可以将各种数据文件存放在用户指定的目录下。
总之,Linux系统的文件系统层次结构比较复杂,它们可以根据用户需求和功能进行多层次的划分,以满足用户的不同需求。
linux 操作系统的文件系统的特点

Linux 操作系统的文件系统特点作为一种开源、免费的操作系统,Linux 在计算机领域广泛应用,并且以其稳定性和安全性而闻名。
在Linux 操作系统中,文件系统是一个重要的组成部分,它负责管理和组织存储在硬盘上的数据。
本文将介绍Linux 操作系统文件系统的特点,以帮助读者更好地了解其优势。
一、多样的文件系统类型Linux 操作系统支持多种文件系统类型,如ext2、ext3、ext4、XFS、JFS 等。
每种文件系统类型都有其独特的特点和适用场景。
例如,ext4 是一种高性能的文件系统,适用于大容量存储;XFS 是一种适用于大型文件和高性能存储的文件系统。
这种多样性使得Linux 操作系统能够根据不同的需求和应用场景选择最适合的文件系统类型。
二、强大的文件权限管理Linux 操作系统的文件系统采用了一套灵活而强大的文件权限管理机制。
每个文件和目录都有其所属的用户和用户组,并且可以设置不同的权限,如读、写、执行等。
这种权限机制使得用户可以对文件和目录进行精确的访问控制,从而提高了系统的安全性。
三、支持符号链接符号链接是Linux 操作系统文件系统的一个重要特点。
符号链接是指一个文件或目录指向另一个文件或目录的快捷方式。
通过使用符号链接,用户可以在不改变文件或目录实际位置的情况下,创建文件或目录的别名。
这种特性在管理和组织文件时非常有用,可以提高文件系统的灵活性和可维护性。
四、可靠的日志记录Linux 操作系统的文件系统通常采用日志记录机制,以确保文件系统的可靠性和一致性。
日志记录可以记录文件系统的操作和状态变化,当系统发生故障或意外断电时,可以通过日志进行恢复,避免数据丢失或损坏。
这种可靠的日志记录机制是Linux 文件系统的一个重要特点,为用户提供了更高的数据保护和可靠性。
五、支持加密和压缩Linux 操作系统的文件系统支持加密和压缩功能。
通过使用加密功能,用户可以对文件和目录进行加密,保护敏感数据的安全性。
Linux文件系统写放大作用的定量分析

Super Block
Group0
Group1
Group2
Group N
Journal Blocks
Group Descriptors
Reserved GDT Blocks
Data Block Bitmap
Inode Bitmap
Inode Table
Data Blocks
图 1 EXT4 结构图 功能块 Inode Bitmap 用来记录 Inode table 的使用情 况的遥 当需要添加新的 Inode 描述时袁 文件系统会先在 Inode Bitmap 中查找空闲的可用的块袁 然后分配这个块遥 类似的袁 Data Block Bitmap 是用来记录 data 块的使 用情况的遥 当有数据需要写入到 Data Block 时袁 文件系 统会从其中查找并分配空闲的块遥 唯一的区别是袁 数据 块的个数是有需要写入的文件裸数据大小决定的袁 并 且是按照 BS 对齐的遥 在查询可用的磁盘空间时袁 文件 系统通过统计每个 Group 中空闲的数据块来得到具体的 大小遥 下面这张表直观的表达了不同分区大小袁 格式化 工具所用不同参数格式化后的文件系统的参数袁 如表 1 所示遥
280MB
1024B
286,719
128B
8MB
15.9GB
4096B 15,552,508 256B
128MB
利用率 93.23% 97.34%
2.1 不包含日志功能的文件创建 对于文件本身袁 除了文件包含的数据袁 还包含文件
一些属性袁 比如院 文件长度尧 创建时间尧 修改时间尧 读 取的时间尧 文件大小尧 文件的权限等袁 这些信息都会占 用文件系统的空间遥
如果磁盘碎片比较多袁 或者要写入的文件本身很大袁 导致无法提供连续的逻辑块给一个新创建的文件遥 这时 直接块寻址就没法满足描述这种复杂的情形袁 需要用到 间接寻址遥 Ext4 文件系统最多可以支持 3 级的间接寻址遥
嵌入式Linux中常见的文件系统及特点

嵌⼊式Linux中常见的⽂件系统及特点1、Linux可⽀持的⽂件系统有多种,但是这么多种的⽂件系统都是基于Linux内核所提供的⽂件系统VFS的接⼝API。
因此对于Linux内核级别实现的⽂件系统只有VFS虚拟⽂件系统; 其余实现的⽂件系统都是调⽤VFS⽂件系统的API更上⼀层实现的;2、Linux⽂件系统的组成结构: 1、⽤户层:⽤户层向外提供Linux内核所⽀持⽂件系统的VFS的API接⼝ 内核层:内核实现了所说的各种⽂件系统 驱动层:驱动层是块设备的驱动程序 硬件层:硬件层是不同⽂件系统⽀持的存储器;3、Linux启动时的⽂件系统: 硬件上电启动,各项硬件初始化后,第⼀个启动的⽂件系统时RootFS根⽂件系统,如果说根⽂件系统没有起来,系统出现异常、将重启;4、常⽤的⽂件系统运⾏、存储设备有: DRAM、SDRAM以及ROM其中常使⽤flash;5、根据不同的存储介质,常见的⽂件系统有: 基于Flash(Nor、Nand)的⽂件系统有: jffs2:可读写,数据压缩、⽀持哈希表的⽂件系统,掉电保护;缺点:不适合使⽤在⼤容量的Nand Flash中,内存使⽤量太⼤极⼤降低数据操作速度; yaffs:读写速度快,占⽤内存⼩,实现内存访问异常处理;混合的垃圾回收算法;特别适合嵌⼊式设备使⽤;跨平台、⾃带Nand 芯⽚驱动 cramfs:只读的⽂件系统,执⾏速度快,内容⽆法扩充;⽂件系统健壮; romfs:简单紧凑、只读、不⽀持动态擦写;较多使⽤在uclinux系统上; 基于RAM存储介质的⽂件系统: ramdisk:将⼀部分固定⼤⼩的内存当做分区使⽤,不能真正算的上实际的⽂件系统,更像是⼀种机制,将实际的⽂件系统加载到内存中;将⼀些经常被访问的⽽⼜不会更改的⽂件放⼊到内存中,达到提⾼系统效率的⽬的;同时还负责将内核镜像与⽂件系统⼀块加载到内存中; ramfs/tmpfs :基于内存的⽂件系统,⼯作于虚拟⽂件系统层,可以创建多个⽂件系统,可以指定每个⽂件系统最⼤使⽤内存;这种⽂件系统将所有的⽂件都放在RAM中,既可以提⾼读写速度,也可以避免对flash⼤量的读写操作;⽂件系统不可以格式化,占⽤内存⼤⼩可以指定; ⽹络⽂件系统: NFS:是⼀种基于⽹络共享技术,可以在不同平台、不同机器、不同操作系统上实现⽂件共享、⽂件传输;在嵌⼊式Linux系统初始开发阶段可以⾮常⽅便⽂件传输、⽂件修改;地址异常进⼊模式描述0x0000,0000复位管理模式电平复位0x0000,0004未定义指令异常未定义模式遇到不能处理的指令,⽆法识别的指令0x0000,000c 软件中断管理模式异常发⽣时CPU处理的步骤:R13(sp),R15(PC)1、保存当前执⾏位置:LR寄存器(R14)2、保存当前执⾏状态:CPSR3、寻找中断⼊⼝,中断向量表:PC寄存器找向量地址4、执⾏中断处理完成:5、中断返回,继续执⾏:R14 <exception_mode> = return linkSPSR<exception_mode>=CPSRCPSR[4:0] =exception mode number;/* 处理器⼯作模式控制位 */CPSR[5]=0; /* 使⽤ARM指令集 */If<exception_mode> == reset or FIQ thenCPSR[6]= 1;/* 屏蔽快速中断FIQ */CPSR[7]=1; /* 屏蔽外部中断IRQ */PC=exception vector address;复位异常中断处理程序的主要功能:1、设置异常中断向量表:2、初始化数据栈和寄存器:3、初始化存储系统MMU:4、初始化关键IO设备:5、使能中断:6、处理器切换到合适的模式:7、初始化C变量跳转到应⽤程序执⾏:R14<SVC> = 设置相应的值;SPSR<SVC> = 设置相应的值;CPSR[4:0]=0b10011;/* 进⼊特权模式 */CPSR[5]=0; /* 使⽤ARM指令集 */CPSR[6] =1; /* 禁⽌相关关闭FIQ */CPSR[7] =1; /* 禁⽌IRQ */If high vectors configured thenPC=0xffff,0000;ElsePC= 0x0000,0000;其余的异常以此类推;异常的优先级:1、Reset: 优先级1(最⾼)2、Data abort:23、FIQ:34、IRQ:45、Prefetch abort:56、SWI或者undefined instruction:6(最低),软件中断异常或者未定义指令异常ARM硬件接⼝:1、程序的链接地址和程序地址:ld程序链接地址程序链接地址:是程序运⾏的起始地址;程序地址:是程序保存在硬盘中的地址;2、呵呵呵。
Linux文件系统结构分析

区大小 。
E T2文 件 系 统 用 一 个 io e 据 结 构 描 述 系 统 中 的 每 一 个 文 件 , 义 系 统 的 拓 扑 结 构 。 一 个 io e X nd 数 定 n d 描 述 了一 个 文 件 中 的 数 据 占用 了 哪 些 块 以 及 文 件 的 访 问 权 限 、 件 的 修 改 时 间 和 文 件 的 类 型 。 E T2文 文 X 件 系 统 中 的 每 一 个 文 件 都 用 一 个 io e描 述 , 每 一 个 io e都 用 一 个 独 一 无 二 的 数 字 标 识 。 文 件 系 统 的 nd 而 nd
—
பைடு நூலகம்
潍 坊 学 院 学报
21 0 1年 4月
E T X 2块组 中组 描述符 中的项称为 组 描述 符 , 于描 述某 个 块 组 的整 体 信 息 。每 个块 组 都 有 一个 相 用
应 的组 描 述 符 来 描 述 它 , 有 的 组 描 述 符 形 成 一 个 组 描 述 符 表 , 在 使 用 时 被 调 入 块 高 速 缓 存 。 所 并
2 EXT2索 引 结 点
E T2文件 系统 中的 数 据 是 以数 据块 的 方 式 存储 在 文 件 中 的 。这 些 数 据 块 的 大 小 相 同 , 大 小 在 X 其 E T2 建 时设 定 。磁盘 上存 储 : 的 基本单 位 是簇 。一 个 簇也 称 为一 个 磁 盘块 , X 创 件 它通 常 是 2 n个 磁盘 扇
io e 放在 一起 , io e 引表 中。 nd 都 在 nd 索
* 收 稿 日 期 : o 0 1 2 2 1— 2 6
linux 文件系统的组成

linux 文件系统的组成Linux文件系统是Linux操作系统中的一种重要组成部分,它负责管理和组织计算机上的文件和目录。
本文将介绍Linux文件系统的组成,包括文件、目录、文件权限、文件链接和文件系统结构等内容。
一、文件文件是存储在计算机中的数据单元,可以是文本文件、图像文件、音频文件等各种类型。
在Linux系统中,文件以字节序列的形式存储在磁盘上,每个文件都有一个唯一的名称和相应的扩展名。
文件可以被用户创建、读取、写入和删除。
二、目录目录是用于组织和管理文件的容器,它可以包含文件和其他目录。
在Linux系统中,目录以树状结构组织,顶层目录为根目录(/),其他目录都是根目录的子目录。
用户可以通过目录的路径来定位和访问文件,例如“/home/user/file.txt”表示根目录下的home目录下的user目录下的file.txt文件。
三、文件权限Linux文件系统使用权限来控制对文件的访问和操作。
每个文件都有一个所有者和一个所属组,同时还可以设置其他用户的访问权限。
权限分为读(r)、写(w)和执行(x)三种,分别表示对文件的读取、写入和执行操作。
文件权限可以通过命令“ls -l”来查看和修改。
四、文件链接文件链接是指在文件系统中创建一个指向另一个文件或目录的链接。
在Linux系统中,有两种类型的链接:硬链接和软链接。
硬链接是指多个文件共享相同的物理存储空间,它们具有相同的inode(索引节点)和数据块。
软链接是一个特殊的文件,它包含了指向另一个文件或目录的路径,软链接的inode指向原始文件或目录的inode。
五、文件系统结构Linux文件系统采用分层结构来组织文件和目录。
最上层是根目录(/),包含了系统的所有文件和目录。
在根目录下有一些重要的系统目录,如bin目录存放可执行文件,etc目录存放系统配置文件,home目录存放用户的个人文件等。
此外,Linux文件系统还支持挂载(mount)功能,可以将其他存储设备(如硬盘、光盘、USB 设备)挂载到文件系统的某个目录下,使其成为文件系统的一部分。
简述linux文件系统的类型

简述linux文件系统的类型Linux文件系统是指Linux操作系统中用来组织和管理文件的一种系统。
Linux文件系统的类型有很多种,每种文件系统都有其特定的特点和用途。
本文将对常见的几种Linux文件系统进行简要介绍。
1. ext文件系统ext文件系统是最早也是最常用的Linux文件系统之一,它是Linux 操作系统的默认文件系统。
ext文件系统有多个版本,包括ext2、ext3和ext4。
其中,ext4是最新版本,具有更好的性能和可靠性。
ext文件系统使用索引节点(inode)来管理文件和目录,支持文件和目录的权限控制、日志功能以及快速文件系统检查等特性。
由于其可靠性和稳定性,ext文件系统常被用于服务器和桌面应用。
2. XFS文件系统XFS文件系统是一种高性能的Linux文件系统,最早由SGI开发。
XFS文件系统采用了B+树来组织和管理文件和目录,具有较高的扩展性和可靠性。
它支持大容量存储、高并发访问和快速文件系统检查等特性,适用于大规模数据存储和高性能计算等场景。
XFS文件系统广泛应用于企业级服务器和大型数据库等领域。
3. btrfs文件系统btrfs文件系统是一种新型的Linux文件系统,它的设计目标是提供高性能、高可靠性和高可扩展性。
btrfs文件系统支持快照、压缩、在线扩容和数据校验等功能,能够有效地保护数据的完整性和安全性。
btrfs文件系统还支持RAID和数据镜像等高级特性,可以提供更好的数据冗余和故障恢复能力。
btrfs文件系统逐渐成为Linux发行版中的重要选择,但在生产环境中仍需谨慎使用。
4. ZFS文件系统ZFS文件系统是由Sun Microsystems开发的一种先进的文件系统,现在由Oracle维护。
ZFS文件系统采用了复制写(Copy-on-write)技术和存储池(Storage Pool)的概念,具有高度的可靠性和可扩展性。
它支持快照、压缩、数据校验、数据恢复以及自动存储池管理等功能。
Linux虚拟文件系统分析

21 0 0年 第 9期
钟柏松 等 :iu Ln x虚拟 文件 系统分析
g j i d; i d
ud t i
_
7 7
型, 模 型能够表 示所 有支 持 的文 件系 统。因此 , 该
VS F 使得用户可 以直接使用 Lnx的系统调用而无 i u 需考 虑具 体文 件系统 和 实际 物理 介质 。当然 , 要实 现 每个 具体 的文件 系统 , 须将其 物 理组 织结 构转 换 为 必
现该 行 为分 离 开来 。
收 稿 日期 :0 0 41 2 1- ・9 0
图 1 V S的分层结构 F
Ⅶ S的通 用 文 件 模 型
V S的主要 思想 在 于 引 入 了一 个 通 用 的 文件 模 F
作者简介 : I ( 9 7) 男 , t g 1 8 , 江西 九江 人 , 昌大学 信 息工 程学 院硕 士研 究生 , 究方 向 :  ̄ k 南 研 系统 结 构 , 工智 能 ; 人 张字 成 ( 9 2 ) 男 , 西宜春人 , 18 . , 江 硕士研究生 , 研究方 向: 系统结 构 , 工智 能 ; 明建 ( 9 0) 男 , 人 周 17 - , 江西 吉安人 , 副教授 , 研究方 向 :
( 昌 大 学信 .  ̄ 学 院 , 西 南 昌 3 03 ) 南 gz r _ 江 3 0 1
摘要 : 首先 简要地介 绍 Lnx系统 中虚拟 文件 系统( F ) iu V S 的分层抽 象 , 然后 详细分析 V S通 用模 型 中的四个对 象类型及 F
内核 中实现它们的数据结构 , 最后介绍它们之 间是如何联 系起 来的。通过 对其分析 , 读者加 深对 V S系统的理解 。 使 F 关键词 :iu ;虚拟文件 系统 ; 级块 ;索引节点 Ln x 超 中图分类号 :P 0 T31 文献标识码 : A d i 0 3 6 /. s.0627 .0 00 .2 o:1 .9 9 ji n 10 -4 5 2 1 .9 0 1 s
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ext2 库提供许多种操作。第一类操作是与文件系统相关的操作。程序可以用这些操作打开关闭文件、 读写位图、在磁盘上创建新的文件系统,也可管理坏盘块列表。第二类操作用来控制目录,它们能建立和展
/ !文件卷 I 节点数! / / !文件卷逻辑块总数! / / !为超级用户保留的块数! / / !空闲块数! / / !空闲 I 节点数! /
! 收稿时间:2002 - 03 - 20
unsigned Iong s - first - data - bIock; …
/ !第一个数据块数! /
}
引导块 超级块 "节点位图 组描述符
…
…
I 节点表
数据区
当文件卷为可引 导 的 系 统 时,引 导 块 的 内 容 为 引 导 信 息,否 则 内 容 为 空。 文 件 系 统 都 以 引 导 块( boot
bIock)开始,引导块中包含有可执行代码。启动计算机时,硬件从引导设备将引导块读入内存,转而执行其
1 Linux 文件系统布局
Ext2 是 Linux 文件系统类型,它很好地继承了 Unix 文件系统的主要特色,如普通文件的三级索引结构, 目录文件的树型结构和把设备作为特别文件等。Linux 文件系统是一个逻辑的自包含的实体,它含有 I 节 点,目录和数据块。Linux 将整个磁盘划分成若干分区,每个分区被当做独立的设备对待;一般需要一个主分 区 Native 和一个交换分区 swap . 主分区用于存放文件系统,交换分区用于虚拟内存。主分区内的空间又分成 若干个组。每个组内都包含有一个超级块的拷贝,以及 I 节点和数据块等信息。如下图所示,ext2 文件卷的 逻辑块大小可到 1 K,2 K 和 4 K 三种,当块大小为 1 K 时,每组内包含 1024!8 = 8192 个逻辑块。文件卷逻辑 块的磁盘存储空间安排如下:
区后存放在 Struct ext2 - inode 中。 Struct ext2 - node {
ul6 i - mode; ul6 i - uid; u - 32 i - size;
/ !文件模式! / / !文件主用户标识符! / / !文件大小! /
u - 32 i - atime
/ !最佳访问文件时间! /
魔数和其它信息,以决定是否安装其它文件系统,如 windows9x 文件系统。
!位图
Linux 文件系统用位图来管理磁盘块和 I 节点,位图分为块位图和 I 节点位图。块位图占用一个磁盘块, 当某位为“l”时,表示磁盘块空闲,为“0”时表示磁盘块被占用。I 节点位图也占用一个磁盘块,当它为“0”时, 表示组内某个对应的 I 节点空闲,为“l”时表示已被占用。位图使系统能够快速地分配 I 节点和数据块,保 证同一文件的数据块能在磁盘上连续存放,从而大大地提高了系统的实时性能。
存中,存放在 Struct ext2 - super - bIock 结构中。 Struct ext2 - super - bIock {
unsigned Iong s - inodes - count; unsigned Iong s - bIocks - count; unsigned Iong s - r - bIocks - count; unsigned Iong s - free - bIocks - count; unsigned Iong s - free - inodes - count;
代码。引导块代码开始操作系统本身的加载过程。一旦系统启动之后,引导块不再使用。
超级块(Super - bIock)中含有文件系统的布局信息,其主要功能是给出文件系统不同部分的大小。如给 定块大小,I 节点总数,每组内 I 节点数,空闲块和 I 节点数等。在 Linux 启动时,根设备中的超级块被读入内
/ !对应的 I 节点! / / !目录项长度! / / !名字长度! / / !文件名! /
当要删除一个目录时,要将目录项中的 I 节点置为“0”,并把目录项从链表中删除,目录项所占用的空间
被合并到前一个目录项空间中。
5 Ext2 程序库
Ext2 程序库提供了大量的例程,能通过直接控制物理设备来操作文件系统。Ext2 程序库使用软件抽象 技术以达到最大限度的代码重用。例如,程序库提供了许多不同的可重复调用例程(iterator). 程序可以简单 将函数传递给 ext2fs - bIock - iterat(e ),它能在每个 inode 中被调用。另一种 iterator 函数为同一个目录中的每 个文件调用一个用户定义的函数。许多 Ext2 例程(mke2fs、s2fsck、tune2fs、dumpe2fs 、debugfs)使用该 Ext2 程序 库。这大大简化了这些例程的维护,因为 Ext2 升级后的新特性只需改变 ext2 库就可以反映出来。因为 Ext2 库可编译成共享库映像文件,所以这种代码重用减小了二进文件的长度。
文章编号:1009-019(3 2002)04-0135-03!
Linux 文件系统分析
刘章仪
(贵州工业大学计算机及信息技术学院,贵州 贵阳 550003)
摘 要:通过对 Linux 文件系统的剖析,揭示它的内部数据结构,分析它的工作原理。
关键词:Linux 操作系统;I 节点;位图
中图分类号:TP316 . 9;TP316 . 81
文献标识码:A
0引言
Linux 属于 Unix 家族,源于 Minux,兼容 POSIX 标准,是九十年代在 Intenet 上发展起来的著名操作系统 (自由软件)。它提供所有源代码,特别适合教学。Linux 中包含了大量 Unix System 5 和 BSD4 . 3 操作系统功
能,能运行在 32 位 PC 及其兼容机上。与 Unix 相比,它是新一代操作系统,具有先进内核,支持多种网络协 议,可作为网络服务器。具有十分广阔的应用前景。
在创建文件时,文件系统必须在块位图中查找第一个空闲 I 节点,把它分配给这个新创建的文件。在该 空闲 I 节点分配使用后,就需要修改指针,使它指向下一个空闲 I 节点。同样地,I 节点被释放后,则需要修 改指向第一个空闲 I 节点的指针。
" # 节点表
I 节点表占用若干个磁盘块,它几乎与标准 Unix 的 I 节点表相同。每个 I 节点占 l28 个字节,读入缓冲
u - 32 i - stime;
/ !文件创建时间! /
u - 32 i - mtime;
/ !文件最近修改时间! /
u - 32 i - dtime;
/ !文件删除时间! /
ul6 i - Iinks - count; ul6 i - gid; u32 i - bIocks; u32 i - fIag; u32 i - bIoc[d EXT2 - N - BLOCKS]; u32 i - fiIe - acI; u32 i - dir - acI; …
在软盘用作 Linux 文件系统之前,实用程序 ms
/ dev / fd0
l440
该命令在软驱中的软盘上创建 l400 个块的空文件系统,该命令还在超级块中写入魔数(s - magic),表明 该文件系统是一个有效的 Linux 文件系统。魔数能表明文件系统的版本。Mount 系统调用检查超级块中的
存储区。
4 目录结构
ext2 采用动态方式管理它的目录,用一个单项链表示它的目录项,每个目录项的数据结构为:
Struct ext2 - dir - entry {
- u32 inode; - ul6 inode; - ul6 inode char nam[e EXT2 - NAME - LEN]; }
开目录,增加和移走目录项,能析构文件名,找到 inode 号,也能由 inode 号确定文件名。最后一类操作是与 inode 相关的,它能扫描 inode 表,读写 inode,扫描一个 inode 中所有的盘块。分配和回收例程可以帮助用户程 序分配和释放盘块和 inode .
由于 Ext2 核心代码包括多项性能优化,而且 Ext2 也能实现分配优化。所以它们能大大改善 I / 0 速度, 提高 I / 0 组织的灵活性及编程效率。因此,Ext2 核心代码及 Ext2 程序库为开发嵌入式系统及实时应用系统 提供了广泛的基础和手段。
参考文献: [l]陈向阳,方法 . Linux 实用大全第 2 版[M]. 北京:科学出版社,l998 .
Analysis of the Linux file system
LIU Zhang-yi (CoIIege of Computer & Information TechnoIogy,GUT,Guiyang 550003,China) Abstract:This paper anaIyzes the Linux fiIe system,reveaIs its internaI data structure and expounds its working principIe . Key words:Linux operating system;I nodes;bitmap
/ !文件连接计数! / / !文件主的用户组标识符! / / !文件的总块数! / / !文件标志! / / !文件地址块索引表! / / !文件访问控制表! / / !目录访问控制表! /
}
I 节点表中的模式信息,给出了文件的类型:普通文件,目录文件,块设备文件,字符设备文件,管道文件
等。I 节点的链接数域记录了有多少个目录指向这个 I 节点。这样文件系统就知道什么时候该释放文件的