网络文件系统

穿精又带淫゛_ 提交于 2019-12-24 01:48:47

 

     在linux-2.6.29.6\include\linux下的fs.h中。

file_system_type结果代表Linux内核的各种网络文件系统,每一种文件系统必须要有自己的file_system_type结构。

struct 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;
	struct file_system_type * next;
	struct list_head fs_supers;

	struct lock_class_key s_lock_key;
	struct lock_class_key s_umount_key;

	struct lock_class_key i_lock_key;
	struct lock_class_key i_mutex_key;
	struct lock_class_key i_mutex_dir_key;
	struct lock_class_key i_alloc_sem_key;
};

       socket_fs_type结构定义代表sockfs的网络文件系统,但它并没有真实的物理介质,因此称为虚拟文件系统。虚拟文件系统的安装过程与真实文件系统不同。

static struct file_system_type sock_fs_type = {
	.name =		"sockfs",
	.get_sb =	sockfs_get_sb,
	.kill_sb =	kill_anon_super,
};

       Linux在启动时会执行init/main.c中的初始化函数kernel_init(),这个函数调用了do_basic_setup(),从而调用do_initcalls()函数来执行所有的init初始化函数。

kernel_init()——>do_basic_setup()——>do_initcalls()——>do_one_initcall()

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!