
FS
文章平均质量分 79
DenzilXu
这个作者很懒,什么都没留下…
展开
-
Ext2文件系统—安装和卸载
1、文件系统安装含义1.1 定义 对于文件系统安装,在Ext2文件系统—路径名查找—1 中已有准确的解释,这里做进一步补充说明。所谓安装,就是从一个存储设备上读入超级块,在内存中建立起一个super_block结构,再进而将此设备上的根目录与文件系统中已经存在的一个空白目录挂上钩。安装一个文件系统实际上是安装一个物理设备(文件系统在此物理设备上)。系统调用mount()将一原创 2012-12-04 10:58:46 · 2062 阅读 · 0 评论 -
Ext2文件系统—路径名查找—4--do_follow_link(nd_set_link、nd_get_link、__vfs_follow_link)详述
1、符号链接与硬链接 首先我们来分清符号链接与硬链接的概念。 Linux 文件系统最重要的特点之一是它的文件链接。链接是对文件的引用,这样您可以让文件在文件系统中多处被看到。两种链接都 可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建符号链接。但是它们在内核中使用的是两个不同的系统调用,分别对应内核的sys_link和s原创 2012-11-14 13:28:10 · 2215 阅读 · 0 评论 -
Ext2文件系统—路径名查找—3--ext2_lookup(ext2_find_entry、ext2_iget、d_splice_alias)详述
前言 ext2_lookup是real_lookup中从VFS转入具体文件系统(此处是Ext2文件系统)处理的函数。从real_lookup传递给ext2_lookup的参数是父目录的inode结构 和 通过d_alloc函数分配的当前路径分量的dentry空壳(说是空壳,也不尽然,它里面填充有一些已知道的信息,其中就包括重要的:当前路径分量名)。ext2_lookup返原创 2012-11-12 17:09:50 · 5165 阅读 · 1 评论 -
Ext2文件系统—路径名查找—2--do_lookup简述
首先我想先承接上一篇博文赘述一下dentry和vfsmount是如何联系起来的。从 __lookup_mnt 中可以看到,可以通过vfsmount中相关dentry结构域找到dentry。而从一个dentry如何找到对应它的vfsmount结构呢?其实这是在最开始的初始化函数 do_path_lookup 中就通过把fs_struct 结构的 root 或 pwd 赋值给nd中的path(nd原创 2012-11-09 21:43:19 · 1353 阅读 · 0 评论 -
Ext2文件系统—文件读写
1、定义只有在“打开”了文件以后,或者说建立了进程与文件的“连接”之后,才能对文件进行读写。为了提高效率,Linux的读写操作都是带缓冲的,即写的时候先写到缓冲副本中,读的时候也从缓冲副本中读入。在多进程的系统中,由于同一文件可为多个进程共享,缓冲的作用就更加显著。Linux文件缓冲设置在文件层的inode结构中。它里面有一个指针i_mapping,它指向一个address_space数据原创 2013-02-12 11:58:28 · 4058 阅读 · 0 评论 -
Ext2文件系统—文件打开关闭
1、文件打开1.1 定义 用户进程在能够读写一个文件之前必须要先打开这个文件。对文件的读写从概念上应该是一种进程与文件系统之间的一种“有连接”通信,所谓“打开文件”实质上就是在进程与文件之间建立起链接,而“打开文件号”就唯一的标识着这样一个连接,也称为文件描述符(file descriptors,简称fd)。不过,严格意义上的“连接”意味着一个独立的“上下文”,如果一个进程与某个目原创 2013-01-04 10:52:46 · 2602 阅读 · 0 评论 -
Ext2文件系统—路径名查找—1--挂载、follow_dotdot、follow_mount、lookup_mnt详解
1、vfsmount对于文件系统的挂载,最重要的是理解vfsmount结构,它表示了文件系统的挂载信息。其结构如下所示。struct vfsmount {struct list_head mnt_hash;struct vfsmount *mnt_parent;/* fs we are mounted on */struct dentry *mnt_mountp原创 2012-11-05 16:59:51 · 3183 阅读 · 1 评论 -
linux dentry cache
Linux dentry cache学习每个dentry对象都属于下列几种状态之一: (1)未使用(unused)状态:该dentry对象的引用计数d_count的值为0,但其d_inode指针仍然指向相关的的索引节点。该目录项仍然包含有效的信息,只是当前没有人引用他。这种dentry对象在回收内存时可能会被释放。 (2)正在使用(inuse)状态:处于该状态下的den原创 2013-06-27 15:15:02 · 8684 阅读 · 0 评论