摘要: 先说明一下,linux内核中各种数据结构也不停的在变,所以不同版本的内核各个数据结构的定义可能会差别很大,这一组关于linux 文件系统的文章中的代码都摘自linux-2.6.34.1。VFS依赖于数据结构来保存其对于一个文件系统的一般表示。超级块结构:存放已安装的文件系统的相关信息索引节点结构:对... 阅读全文
posted @ 2014-06-10 15:18 Jessica程序猿 阅读(1656) 评论(0) 推荐(0) 编辑
摘要: 系统 根文件系统首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。 我们首先从主机上所安装的Linux操作系... 阅读全文
posted @ 2014-06-10 14:27 Jessica程序猿 阅读(7203) 评论(0) 推荐(0) 编辑
摘要: 一、文件系统测试工具简介 1、LTP 参考网站:http://oss.sgi.com/projects/ltp/ LTP(Linux Test Project)是由SGI和IBM联合发起的项目,提供一套验证Linux系统可靠性、健壮性、稳定性的测试套件,也可用来进行POSIX兼容测试和功能性测试。... 阅读全文
posted @ 2014-06-09 15:07 Jessica程序猿 阅读(11364) 评论(2) 推荐(1) 编辑
摘要: 一、Postmark原理 Postmark是由着名的NAS提供商NetApp开发,用来测试其产品的后端存储性能。 Postmark主要用于测试文件系统在邮件系统或电子商务系统中性能,这类应用的特点是:需要频繁、大量地存取小文件。 Postmark的测试原理是创建一个测试文件池。文件的数量和最大... 阅读全文
posted @ 2014-06-09 10:38 Jessica程序猿 阅读(486) 评论(0) 推荐(0) 编辑
摘要: VFS的层次文件系统实现与用户进程(或C库)之间。文件系统分类基于磁盘的文件系统(ext2/3 fat iso9660…)、虚拟文件系统(proc)、网络文件系统(nfs)通用文件模型VFS提供一种结构模型,包含了一个强大的文件系统所应具备的所有组件。所有的文件系统实现,都必须提供与VFS定义的结构... 阅读全文
posted @ 2014-06-06 11:17 Jessica程序猿 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 一、目的 内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs、proc文件系统,加载了磁盘驱动程序驱动程序等。接下来,内核跳转到用户空间的init程序,由init完成创建磁盘设备文件、加载磁盘文件系统、从rootfs切换到磁盘根文件系统等工作。 由于在不同... 阅读全文
posted @ 2014-06-05 10:26 Jessica程序猿 阅读(1123) 评论(0) 推荐(1) 编辑
摘要: 一、目的 上文详细介绍了CPIO格式的initrd文件,本文从源代码角度分析加载并解析initrd文件的过程。 initrd文件和linux内核一般存储在磁盘空间中,在系统启动阶段由bootload负责把磁盘上的内核和initrd加载到指定的内存空间中;然后,再由内核读取和解析initrd文件,... 阅读全文
posted @ 2014-06-05 10:13 Jessica程序猿 阅读(1282) 评论(0) 推荐(0) 编辑
摘要: 一、目的 linux把文件分为常规文件、目录文件、软链接文件、硬链接文件、特殊文件(设备文件、管道文件、socket文件等)几种类型,分别对应不同的新建函数sys_open()、sys_mkdir()、sys_symlink()、sys_link()、sys_mknod()。 系统初始化阶段成功... 阅读全文
posted @ 2014-06-05 10:13 Jessica程序猿 阅读(1175) 评论(0) 推荐(0) 编辑
摘要: 一、目的 本文主要讲述linux3.10文件系统初始化过程的第二阶段:加载initrd。 initrd是一个临时文件系统,由bootload负责加载到内存中,里面包含了基本的可执行程序和驱动程序。在linux初始化的初级阶段,它提供了一个基本的运行环境。当成功加载磁盘文件系统后,系统将切换到磁盘... 阅读全文
posted @ 2014-06-05 10:09 Jessica程序猿 阅读(1313) 评论(0) 推荐(0) 编辑
摘要: 一、目的 本文主要讲述linux3.10文件系统初始化过程的第一阶段:挂载rootfs文件系统。 rootfs是基于内存的文件系统,所有操作都在内存中完成;也没有实际的存储设备,所以不需要设备驱动程序的参与。基于以上原因,linux在启动阶段使用rootfs文件系统,当磁盘驱动程序和磁盘文件系统... 阅读全文
posted @ 2014-06-05 10:03 Jessica程序猿 阅读(3981) 评论(0) 推荐(0) 编辑