在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()
来源:CSDN
作者:国服第一赵云
链接:https://blog.csdn.net/weixin_39094034/article/details/103669386