浅析linux2.6下VFS虚拟文件系统中的那3个玩意儿 文章来源:http://gliethttp.cublog.cn 超级块、目录项、索引节点和文件对象是VFS虚拟文件系统的4个最关键组成要素,一个inode索引节点唯一的对应一个目录文件夹或者文件,比如:/home/gliethttp/hello.c,我们想打开其中的hello.c文件,open("/home/gliethttp/hello.c",O_RDWR);硬盘上home文件夹唯一对应一个属于home文件夹自己的硬inode索引节点片段信息,gliethttp文件夹也同样在硬盘...
by gliethttp - Linux文档专区 - 2007-12-22 11:14:04 阅读(688) 回复(0)
虚拟文件系统所隐含的思想是:在内核的内存中表示文件和文件系统的对象包含着广泛的信息。其中有一个域或函数,它能支持linux支持的任何实际文件系统所提供的任何操作。对于所访问的每个读,写或其他的函数,内核都能把他们替换成实际的函数,这种实际的函数支持linux的本地文件系统, NT文件系统,或者文件所在的任何其他文件系统。 虚拟文件系统的作用 1.基础 Virtual FileSystem(或者被称为Virtual Filesystem Switch或者VF...
linux虚拟文件系统概述 一、简介: 虚拟文件系统(也叫虚拟文件系统交换层)是在内核实现的一个软件层,它既为用户空间程序提供文件系统接口的调用,也是保证系统内核各种文件系统实现能够共存的抽象层。 VFS系统调用如open(2), stat(2), read(2), write(2), chmod(2)等在进程上下文中被调用。文件系统锁在文档Documentation/filesystems/Locking中描述。 1、目录结构缓存(dcache) VFS实现了open(2), stat(2), chmod(2)以及其它类...
最近,老是对着本 深入理解linux内核,看了一下 vfs 部分. 迫于压力 作了个报告. 共享一下, 欢迎拍砖.... 写得不好的 地方欢迎指出.... 谢谢!! 回帖是一种美德......................
一个更简单的方法 上面的例子包含了大段的模板代码。这些代码对于很多应用程序来说都是必须的,但是对于很多其他的,有捷径可走。如果在编译的时候你就知道需要创建哪些文件,并且你没有必要创建子目录,请继续看更简单的方式。 在这部分,我们将讨论lwnfs模块的另一版本,它省掉了约1/3的代码量。它实现了一个不包含子目录,只包含四个计数器的简单序列(array)。再说一遍,如果你有兴趣, 源码 就在这里。 上面,我们看到了一个...
(以下内容来自网上收集) 系统默认加载的/dev/shm ,它就是一个虚拟文件系统tmpfs,他跟ramdisk(虚拟磁盘)不一样。tmpfs 可以使用RAM,也可以使用您的swap分区来存储数据。而且传统的虚拟磁盘是个块设备,并需要mkfs将其格式化才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;只要安装它,就可以使用了。 tmpfs的存储空间在VM(virtual memory),,VM是由linux内核里面的vm子系统管理的东西,li...
linux虚拟文件系统概述 原作者:Richard Gooch 最新更新时间:2005年十月28日 版权所有者: Copyright (C) 1999 Richard Gooch Copyright (C) 2005 Pekka Enberg 文件符合GPLv2发布许可 =================================================== 翻译&更新:ietf AT doit.com.cn 部分内容由 ietf AT doit.com.cn 根据内核2.6.20更新。 引用请注明出处。 =================================================== 一、简介: 虚拟文件系...
一个更简单的方法 上面的例子包含了大段的模板代码。这些代码对于很多应用程序来说都是必须的,但是对于很多其他的,有捷径可走。如果在编译的时候你就知道需要创建哪些文件,并且你没有必要创建子目录,请继续看更简单的方式。 在这部分,我们将讨论lwnfs模块的另一版本,它省掉了约1/3的代码量。它实现了一个不包含子目录,只包含四个计数器的简单序列(array)。再说一遍,如果你有兴趣, 源码 就在这里。 上面,我们看到了一个...
Linus和其他很多内核开发人员都不喜欢ioctl()这个系统调用,认为那是以一种不可控制的方式向内核添加新的系统调用。同时,也不赞成向/proc下添加新的文件,因为那里已经是一片狼藉。他们提倡那些尝试在他们的代码中添加ioctl()或者/proc文件的开发者用一个单独的虚拟文件系统来替代。文件系统使得接口在用户空间清晰可见;同时也为通过脚本来管理系统提供了方便。但是,写一个linux文件系统通常都是让人望而却步的。很难想像...
不知道该不该发这里,是我从proc改来的,懂内核源码的交流交流 hello.c [code] #include "hello.h" struct inode * hello_get_inode(struct super_block *, int, struct hello_dir_entry *); /*这个函数是直接从linux复制过来的,作用就是显示目录里的文件名,没有这个 函数也行只是你用ls、dir命令看不到目录下的文件。*/ int hello_readdir(struct file * filp, void * dirent, filldir_t filldir) { printk("hello_readdir\n...