第一大部分
http://www.ibm.com/developerworks/cn/linux/l-linux-filesystem/
一. “什么是文件系统”
文件系统是对一个存储设备上的数据和元数据进行组织的机制
在 Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂装(mount)在执行挂装时,要提供文件系统类型、文件系统和一个挂装点
二.文件系统体系结构
三.主要结构
Linux 以一组通用对象的角度看待所有文件系统。这些对象是超级块(superblock)、inode、dentry 和文件
超级块在每个文件系统的根上,超级块描述和维护文件系统的状态
inode 包含管理文件系统中的对象所需的所有元数据(包括可以在对象上执行的操作)
dentry,它们用来实现名称和 inode 之间的映射,有一个目录缓存用来保存最近使用的 dentry。dentry 还维护目录和文件之间的关系,从而支持在文件系统中移动
VFS 文件表示一个打开的文件(保存打开的文件的状态,比如写偏移量等等)
VFS 作为文件系统接口的根层。VFS 记录当前支持的文件系统以及当前挂装的文件系统
- 超级块
超级块结构表示一个文件系统。它包含管理文件系统所需的信息,包括文件系统名称(比如 ext2)、文件系统的大小和状态、块设备的引用和元数据信息(比如空闲列表等等)。超级块通常存储在存储媒体上,但是如果超级块不存在,也可以实时创建它
- inode 和 dentry
各个文件系统提供将文件名映射为惟一 inode 标识符和 inode 引用的方法
inode 和目录缓存分别保存最近使用的 inode 和 dentry
十.系统初始化过程
LINUX系统的初始化可以分为两部分:内核部分和init程序部分。内核主要完成系统的硬件检测和初始化,init程序则主要完成系统的各项配置
第二大部分
一.进程管理
linux的fork()使用写时拷贝(copy-on-write)页实现。一种可以推迟甚至免拷贝数据的技术。内核并不复制整个进程地址空间,而是让父进程和子进程共享同一个拷贝。
一.进程管理
linux的fork()使用写时拷贝(copy-on-write)页实现。一种可以推迟甚至免拷贝数据的技术。内核并不复制整个进程地址空间,而是让父进程和子进程共享同一个拷贝。
一.进程管理
linux的fork()使用写时拷贝(copy-on-write)页实现。一种可以推迟甚至免拷贝数据的技术。内核并不复制整个进程地址空间,而是让父进程和子进程共享同一个拷贝。