随笔分类 -  文件系统

1
摘要:在LINUX系统中有一个重要的概念:一切都是文件。其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访... 阅读全文
posted @ 2014-07-21 21:01 Jessica程序猿 阅读(996) 评论(0) 推荐(0)
摘要:用数组chain[4]描述四种不同的索引,即直接索引、一级间接索引、二级间接索引、三级间接索引。举例说明这个结构各个域的含义。如果文件内的块号为8,则不需要间接索引,所以只用chain[0]一个Indirect结构,p指向直接索引表下标为8处,即&inode->u.ext2_i.i_data[8];... 阅读全文
posted @ 2014-07-21 16:53 Jessica程序猿 阅读(791) 评论(0) 推荐(0)
摘要:转载:http://blog.csdn.net/chenyu105/article/details/8604149关于VFS的通用读,我们不做考虑,本文以如下函数为根,往下分析:do_generic_mapping_read(*ppos,*mapping,*desc)本函数的目的是,从磁盘读数据到用... 阅读全文
posted @ 2014-07-10 14:46 Jessica程序猿 阅读(1740) 评论(0) 推荐(0)
摘要:上一遍博文的重点其实将ext2整体的组织框架,我们知道了ext2文件系统由块组组成,每个块组里面的组织形式。我们甚至直接把超级块和组描述符里面的内容,用十六进制形式展现了出来。这篇博文主要讲述如何mke2fs生成合适需要的ext2 文件系统,基本就是参数选择的问题。 mke2fs 常用的几个参数... 阅读全文
posted @ 2014-07-07 23:01 Jessica程序猿 阅读(1324) 评论(0) 推荐(0)
摘要:很久以来,就想写一篇关于ext 家族文件系统的文章,源于我刚工作的时候,曾经一不小心rm -rf,误删除了很多文件,当时真想有个数据恢复软件能帮我把数据回复了。当然学习数据恢复,首先要学习文件系统。最近工作原因,好长时间没看学习Linux kernel 相关的东西,感觉面目可憎。扯远了,开始我们的e... 阅读全文
posted @ 2014-07-07 23:00 Jessica程序猿 阅读(879) 评论(0) 推荐(0)
摘要:一、系统在初始化时如何识别硬盘1、系统初始时根据MBR的信息来识别硬盘,其中包括了一些执行文件就来载入系统,这些执行文件就是MBR里前面446bytes里的boot loader 程式,而后面的16X4的空间就是存储分区表信息的位置;如下图2、在分区表中,主要储存了以下信息:(1)分区号,常见的分区... 阅读全文
posted @ 2014-07-05 19:13 Jessica程序猿 阅读(871) 评论(0) 推荐(0)
摘要:进程是通过文件描述符(file descriptor,fd)来访问文件的,每个进程最多能同时使用NR_OPEN个文件描述符,这个值在include/linux/limits.h中定义为1024。每一个进程用一个打开文件表files_struct来描述进程的文件描述符使用情况。每一个文件都有一个文件指... 阅读全文
posted @ 2014-06-10 15:22 Jessica程序猿 阅读(1283) 评论(0) 推荐(1)
摘要:先说明一下,linux内核中各种数据结构也不停的在变,所以不同版本的内核各个数据结构的定义可能会差别很大,这一组关于linux 文件系统的文章中的代码都摘自linux-2.6.34.1。VFS依赖于数据结构来保存其对于一个文件系统的一般表示。超级块结构:存放已安装的文件系统的相关信息索引节点结构:对... 阅读全文
posted @ 2014-06-10 15:18 Jessica程序猿 阅读(1701) 评论(0) 推荐(0)
摘要:系统 根文件系统首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。 我们首先从主机上所安装的Linux操作系... 阅读全文
posted @ 2014-06-10 14:27 Jessica程序猿 阅读(7278) 评论(0) 推荐(0)
摘要:VFS的层次文件系统实现与用户进程(或C库)之间。文件系统分类基于磁盘的文件系统(ext2/3 fat iso9660…)、虚拟文件系统(proc)、网络文件系统(nfs)通用文件模型VFS提供一种结构模型,包含了一个强大的文件系统所应具备的所有组件。所有的文件系统实现,都必须提供与VFS定义的结构... 阅读全文
posted @ 2014-06-06 11:17 Jessica程序猿 阅读(516) 评论(0) 推荐(0)
摘要:一、目的 内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs、proc文件系统,加载了磁盘驱动程序驱动程序等。接下来,内核跳转到用户空间的init程序,由init完成创建磁盘设备文件、加载磁盘文件系统、从rootfs切换到磁盘根文件系统等工作。 由于在不同... 阅读全文
posted @ 2014-06-05 10:26 Jessica程序猿 阅读(1171) 评论(0) 推荐(1)
摘要:一、目的 上文详细介绍了CPIO格式的initrd文件,本文从源代码角度分析加载并解析initrd文件的过程。 initrd文件和linux内核一般存储在磁盘空间中,在系统启动阶段由bootload负责把磁盘上的内核和initrd加载到指定的内存空间中;然后,再由内核读取和解析initrd文件,... 阅读全文
posted @ 2014-06-05 10:13 Jessica程序猿 阅读(1434) 评论(0) 推荐(0)
摘要:一、目的 linux把文件分为常规文件、目录文件、软链接文件、硬链接文件、特殊文件(设备文件、管道文件、socket文件等)几种类型,分别对应不同的新建函数sys_open()、sys_mkdir()、sys_symlink()、sys_link()、sys_mknod()。 系统初始化阶段成功... 阅读全文
posted @ 2014-06-05 10:13 Jessica程序猿 阅读(1214) 评论(0) 推荐(0)
摘要:一、目的 本文主要讲述linux3.10文件系统初始化过程的第二阶段:加载initrd。 initrd是一个临时文件系统,由bootload负责加载到内存中,里面包含了基本的可执行程序和驱动程序。在linux初始化的初级阶段,它提供了一个基本的运行环境。当成功加载磁盘文件系统后,系统将切换到磁盘... 阅读全文
posted @ 2014-06-05 10:09 Jessica程序猿 阅读(1394) 评论(0) 推荐(0)
摘要:一、目的 本文主要讲述linux3.10文件系统初始化过程的第一阶段:挂载rootfs文件系统。 rootfs是基于内存的文件系统,所有操作都在内存中完成;也没有实际的存储设备,所以不需要设备驱动程序的参与。基于以上原因,linux在启动阶段使用rootfs文件系统,当磁盘驱动程序和磁盘文件系统... 阅读全文
posted @ 2014-06-05 10:03 Jessica程序猿 阅读(4152) 评论(0) 推荐(0)
摘要:术语表:struct task:进程struct mnt_namespace:命名空间struct mount:挂载点struct vfsmount:挂载项struct file:文件struct super_block:超级块struct dentry:目录struct inode:索引节点一、目... 阅读全文
posted @ 2014-06-05 09:56 Jessica程序猿 阅读(1378) 评论(0) 推荐(0)
摘要:1,fdisk -lfdisk -l 只能列出硬盘的分区表、容量大小以及分区类型,但看不到文件系统类型。2,df -hdf 命令是用来查看文件系统磁盘空间使用量的。但df 命令只会列出已挂载的文件系统信息,对于没有挂载的文件系统是查看不到的。使用这个命令可以很方便的查看已挂载的文件系统的空间使用量、... 阅读全文
posted @ 2014-05-21 13:07 Jessica程序猿 阅读(2496) 评论(0) 推荐(0)
摘要:struct dx_rootHtree的内部节点:struct dx_nodeHtree树根和节点中都存在的Hash map:struct dx_entry1.20扩展属性EA扩展属性(xattrs)通常存储在磁盘上的一个单独的数据块中,通过inode.i_file_acl*引用。扩展属性的第一应用... 阅读全文
posted @ 2014-05-19 21:40 Jessica程序猿 阅读(3389) 评论(0) 推荐(0)
摘要:接着上一篇博文,继续分析Ext4磁盘布局中的元数据。1.7超级块超级块记录整个文件系统的大量信息,如数据块个数、inode个数、支持的特性、管理信息,等待。如果设置sparse_super特性标志,超级块和块组描述符表的冗余备份仅存放在编号为0或3、5、7的幂次方的块组中。如果未设置sparse_s... 阅读全文
posted @ 2014-05-19 21:39 Jessica程序猿 阅读(3774) 评论(0) 推荐(0)
摘要:本文描述Ext4文件系统磁盘布局和元数据的一些分析,同样适用于Ext3和Ext2文件系统,除了它们不支持的Ext4的特性外。整个分析分两篇博文,分别概述布局和详细介绍各个布局的数据结构及组织寻址方式等。感兴趣的看官敬请留意和指导!1. Ext4文件系统布局综述一个Ext4文件系统被分成一系列块组。为... 阅读全文
posted @ 2014-05-19 21:37 Jessica程序猿 阅读(2521) 评论(0) 推荐(0)

1