《Linux文件系统》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)Moshe Bar著;天宏工作室译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7894940283
  • 页数:349 页
图书介绍:

第1章 简介 1

1.1 Gnu/Linux和文件系统 2

1.2 本书的目的 3

1.2.1 本书的读者 3

1.2.2 阅读本书之前应该了解的知识 4

1.2.3 本书的内容 4

1.2.4 阅读本书的方法 4

1.3 查找更多信息的位置 4

1.3.1 建议和意见 5

1.3.2 开发源代码——一个现代操作系统的本质 5

1.4 Linux的历史 6

1.4.1 Linux目前提供的功能 7

1.4.2 内核2.4 中的新特性 8

第2章 编译内核 10

2.1 源代码的树形结构 11

2.1.1 arch/目录 16

2.1.2 drivers/目录 16

2.1.3 fs/目录 16

2.1.4 include/目录 16

2.1.8 kernel/目录 17

2.1.7 lib/目录 17

2.1.6 init/目录 17

2.1.5 ipc/目录 17

2.1.9 mm/目录 18

2.1.10 net/目录 18

2.2 编译内核 18

2.2.1 GNU gcc编译器 19

2.2.2 编码约定 19

2.2.3 体系结构相关性 20

第3章 什么是文件系统 21

3.1 文件系统的一般特征 22

3.1.1 文件结构的分层结构 23

3.1.2 文件系统中的对象 26

3.1.3 缓冲区、缓存以及内存无用信息收集 26

3.2 缓冲区缓存 27

3.3 bdflush内核监控程序 29

3.3.1 kswapd 30

3.3.2 文件系统对象 31

3.3.3 文件 32

3.3.4 文件函数 34

3.4 信息节点 38

3.5 文件系统 47

3.6 名称或dentry 49

3.6.1 dentry结构 50

3.6.2 dentry函数 53

3.7 Linux超级块 54

3.7.1 超级块结构 55

3.7.2 超级块函数 58

3.8 性能问题和优化策略 62

3.8.1 原始I/O 62

3.8.2 进程资源限制 63

3.8.3 基于盘区的分配(常规) 64

3.8.5 事务处理或安全的数据库问题 66

3.8.4 基于块的分配(常规) 66

3.8.6 日记相对于无日记的优点 67

第4章 Linux VFS 72

4.1 一般概念 73

4.1.1 VFS源代码 73

4.1.2 VFS的工作方式 75

4.1.3 include/linux/fs.h的源文件(2.4.3) 83

4.1.4 fs/ext2/super.c(2.4.3) 118

4.1.5 fs/ext2/file.c源文件(2.4.3) 139

4.1.6 fs/namei.c中open namei()函数的源代码 142

第5章 LVM(逻辑卷管理器) 148

5.1 Linux LVM简介 149

5.1.1 LVM的好处 151

5.1.2 LVM的工作方式 152

5.1.3 LVM的内部细节 153

5.1.4 include/linux/lvm.h的源代码 157

第6章 在Linux中使用RAID 178

6.1 PCI控制器 179

6.2 SCSI-SCSI控制器 180

6.3 软件RAID 181

6.3.2 配置RAID 0 183

6.3.1 分带 183

6.3.3 配置RAID 1 184

6.4 RAID的局限性 185

6.5 从RAID设备故障中恢复 186

6.5.1 情况A 187

6.5.2 情况B 188

第7章 第二扩展文件系统(ext2) 197

7.1 新特性 198

7.1.1 标准的ext2fs特性 198

7.1.2 高级ext2fs特性 198

7.1.3 目录 199

7.1.4 块 200

7.1.5 超级块 202

7.1.6 ext2fs库 204

7.1.7 ext2fs工具 204

7.1.8 ext2fs中的信息节点 207

7.1.9 ext2fs超级块 208

7.1.10 ext2组描述符 209

7.1.11 空闲块数、空闲信息节点数、使用的目录计数 210

7.1.12 更改ext2文件系统中的文件大小 210

7.1.14 位图 215

7.1.13 组描述符 215

7.1.15 信息节点 216

7.1.16 目录 218

7.1.17 分配算法 218

7.1.18 错误处理 219

7.2 include/linux/ext2_fs.h的源代码 220

第8章 IBM用于Linux的JFS日记文件系统 236

8.1 主要的JFS数据结构和算法 237

8.1.1 超级块:主要聚集超级块和次要聚集超级块 237

8.1.2 信息节点 237

8.1.3 标准的管理实用程序 238

8.1.5 块分配地图 239

8.1.4 如何在启动时设置JFS 239

8.1.6 信息节点分配地图 240

8.1.7 AG空闲信息节点列表 240

8.1.8 IAG空闲列表 241

8.1.9 文件集分配地图信息节点 241

8.1.10 区别JFS和其他文件系统的设计特性 241

8.1.11 JFS更广泛地使用B+树 243

8.1.12 叶节点 243

8.1.14 可变的块大小 244

8.1.15 目录结构 244

8.1.13 内部节点 244

8.1.16 JFS对稀疏文件和稠密文件的支持 245

8.2 聚集和文件集 245

8.2.1 文件 245

8.2.2 目录 245

8.2.3 日志 246

8.2.4 文件系统和访问控制 247

第9章 Linux的ReiserFS 248

9.1 文件系统名称空间 249

9.2 文件边界的块对齐 250

9.3 平衡树和大文件I/O 251

9.3.2 树的定义 252

9.3.1 序列化和一致性 252

9.4 缓冲和保留列表 255

9.5 使用树来优化文件布局 259

9.5.1 物理布局 260

9.5.2 节点布局 260

9.6 在Linux内核上安装和配置ReiserFS 265

9.6.1 Linux-2.2.X内核 265

9.6.2 Linux-2.4.0到Linux 2.4.2 267

第10章 XFS 269

10.1 XFS实现方式 271

10.1.2 Buffer Cache Manager 272

10.1.1 Log Manager 272

10.1.3 Lock Manager 273

10.1.4 Space Manager 273

10.1.5 Attribute Manager 274

10.1.6 Name Space Manager 274

10.1.7 XFS文件系统的管理 275

10.2 XFS的结构和方法 275

10.2.1 信息节点的数据结构 275

10.2.2 信息节点的生命周期 276

10.2.3 信息节点分配 278

10.2.4 信息节点的内嵌数据/盘区/B树根 279

10.2.5 信息节点锁定 280

10.2.6 信息节点事务和日志 281

10.2.7 信息节点刷新 281

10.2.8 信息节点回收 282

10.3 XIS超级块结构和方法 283

10.3.1 超级块缓冲区 283

10.3.2 超级块管理接口 284

10.3.3 磁盘上的结构 286

10.3.5 数据块空闲列表 287

10.3.4 分配组标题 287

10.3.6 信息节点表 288

10.3.7 数据和属性块表示 290

10.3.8 文件系统结构 291

10.3.9 缓冲与分配 291

10.3.10 XIS可用性和发布警告 291

10.4 使用XFS 292

附录A 软件RAID指南 294

附录B 参考资料 320

附录C 绕回根文件系统指南 324

附录D Linux分区指南 338