摘要: 对于每一个 mount 的文件系统,都由一个 vfsmount 结构来表示。对于每一个目录项,都用一个dentry来表示,例如对于/usr/local/lib : / usr local lib 表示4个目录项两者关系以一个例子来说明:例如我们要mount一个设备 /dev/sdb1 到 /home/my目录下,我们假设 /home/my 就是当前进程的根文件系统中的目录(即 home 和 my 都没有mount任何文件系统),命令行是: mount -t ext2 /dev/sdb1 /home/my我们mount的时候,传入的参数有三个: 要mount的设备( /dev/sdb1 ) ,. 阅读全文
posted @ 2013-03-30 23:26 linengier 阅读(2011) 评论(0) 推荐(0) 编辑
摘要: 因为linux支持模块机制,所以我们可以将文件系统编译为模块,所以文件系统系统类型的注册的注册有多种方式:要么已经包含在内核映像中,要么作为一个模块被动态加载。在内核的加载函数中start_kernel-->vfs_caches_init(totalram_pages);完成对文件系统sysfs,ramfs,rootfs文件系统的注册;void __init vfs_caches_init(unsigned long mempages){ unsigned long reserve; /* Base hash sizes on available memory, with a reser 阅读全文
posted @ 2013-03-30 23:19 linengier 阅读(827) 评论(0) 推荐(0) 编辑
摘要: 1.file_system_type结构体说明:/include/linux/fs.hstruct file_system_type { const char *name; //文件系统名 int fs_flags; //文件系统类型标识 int (*get_sb) (struct file_system_type *, int, const char *, void *, struct vfsmount *);//读超级块的方法 void (*kill_sb) (struct super_block *);//删除超级块的方法 struct module *owner; ... 阅读全文
posted @ 2013-03-30 14:23 linengier 阅读(448) 评论(0) 推荐(0) 编辑
摘要: ramfs文件系统,利用VFS自身结构形成的内存文件系统。RAMFS没有自己的文件存储结构,他的文件存储于page cache 中,目录结构由dentry链表本身描述,文件则由VFS的inode结构本身描述;从ramfs可看出,VFS本质上可以看成一种给予内存的文件系统,它统一了文件在内核中的表示方式并对磁盘文件进行缓冲;1.file_system_type:static struct file_system_type ramfs_fs_type = { .name = "ramfs", //文件系统名 .get_sb = ramfs_get_sb, //读取超级块接口,该 阅读全文
posted @ 2013-03-30 14:07 linengier 阅读(1415) 评论(0) 推荐(0) 编辑
摘要: 一、init ramfs是什么 在2.6版本的linux内核中,都包含一个压缩过的cpio格式的打包文件。当内核启动时,会 从这个打包文件中导出文件到内核的rootfs文件系统,然后内核检查rootfs中是否包含有init文件,如果有则执行它,作为PID为1的第一个进 程。这个init进程负责启动系统后续的工作,包括定位、挂载“真正的”根文件系统设备(如果有的话)。如果内核没有在rootfs中找到init文件,则内核会按以前版本的方式定位、挂载根分区,然后执行/sbin/init程序完成系统的后续初始化工作。 这个压缩过的cpio格式的打包文件就是init ramfs。编译2.6版本的l... 阅读全文
posted @ 2013-03-30 13:34 linengier 阅读(645) 评论(0) 推荐(0) 编辑
摘要: 首先,定义两个file_system_type结构;fs\ramfs\Inode.c:line284static struct file_system_type ramfs_fs_type = { .name = "ramfs", .get_sb = ramfs_get_sb, .kill_sb = ramfs_kill_sb,};static struct file_system_type rootfs_fs_type = { .name = "rootfs", .get_sb = rootfs_get_sb, .kill_sb = kill_litt 阅读全文
posted @ 2013-03-30 13:25 linengier 阅读(288) 评论(0) 推荐(0) 编辑
摘要: Ramfs is a very simple filesystem that exports Linux's disk caching mechanisms (the page cache and dentry cache) as a dynamically resizable RAM-based 阅读全文
posted @ 2013-03-30 11:24 linengier 阅读(750) 评论(0) 推荐(0) 编辑