This is the "lwnfs" module source which goes along with this article on virtual filesystems from the Porting Drivers to 2.6 series . /* * Demonstrate a trivial filesystem using libfs. * * Copyright 2002, 2003 Jonathan Corbet * This file may be redistributed under the terms of the GNU GPL. * * Chances are that this code will crash your system, delete your * nethack high scores, and set ...
浅析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文件夹也同样在硬盘...
虚拟文件系统 蓝森林 http://www.lslnet.com 2001年5月20日 21:16 作 者: difeijing Richard Gooch 23-APR-1999 翻译:difeijing 本文档中的惯例用法 ================== 文档中的每一节标题的右边都有一个字符串""。 每个小节都会有个""在右边。 这些字符串是为了在文档中查询更容易而设的。 注意:本文档的最新更新可在下面找到: http://www.atnf.csiro.au/~rgooch/linux/docs/vfs.txt 它到底是什么? ============= Vir...
linux虚拟文件系统之文件系统卸载(sys_umount()) . linux中卸载文件系统由umount系统调用实现,入口函数为sys_umount()。较于文件系统的安装较为简单,下面是具体的实现。 [cpp] view plaincopyprint?[code]01./*sys_umont系统调用*/ 02.SYSCALL_DEFINE2(umount, char __user *, name, int, flags) 03.{ 04. struct path path; 05. int retval; 06. /*找到装载点的vfsmount实例和dentry实例,二者包装...
看虚拟文件系统的次数估计已经是两位数了,每次都有新的收获,这里把vfs涉及到的链表串起来总结一下,主要就是四大对象之间的串连,由于把这些串连关系放到一个图中,逻辑结构太过复杂,可看性太差。另外虚拟文件系统中链接关系比较复杂,下面是对深入理解vfs机制比较重要的一些链表的介绍。 文件系统类型file_system_type链表 其中,file_systems全局变量定义在fs/filesystems.c中 static struct file_system_type *file_...
使用户可以直接使用系统调用而无需考虑具体文件系统或实际物理介质。 12.2 文件系统抽象层 之所以可以用这种通用接口对所有类型的文件系统进行操作,是因为内核在底层文件系统接口上建立了一个抽象层,定义了所有文件系统都支持的基本接口和数据结构。 例如: write()调用将来自用户空间的数据流,首先通过vfs通用系统调用,其次通过文件系统的特殊写方法,写入物理介质。 12.3 Unix文件系统 (1) 文件——有序字节串 (2) 目录项...
虚拟文件系统(有时也称作虚拟文件交换,更常见的是简称vfs)作为内核子系统,为用户空间程序提供了文件系统相关的接口。系统中所有文件系统不但依赖vfs共存,而且也依靠vfs系统协同工作。通过虚拟文件系统,程序可以利用标准的UNIX文件系统调用对不同介质上的不同文件系统进行读写操作。 12.1 通用文件系统接口 vfs使得用户可以直接使用open()、read()和write()这样的系统调用而无需考虑具体文件系统和实际物理介质。现在...