fs/ramfs/inode.c
static struct file_system_type ramfs_fs_type = {
.name = "ramfs",
.init_fs_context = ramfs_init_fs_context,
.parameters = ramfs_fs_parameters,
.kill_sb = ramfs_kill_sb,
.fs_flags = FS_USERNS_MOUNT,
static struct file_system_type shmem_fs_type = {
.name = "tmpfs",
.init_fs_context = ramfs_init_fs_context,
.parameters = ramfs_fs_parameters,
.kill_sb = kill_litter_super,
.fs_flags = FS_USERNS_MOUNT,
};
ramfs 和 CONFIG_SHMEM=n & CONFIG_TMPFS=n 配置下的 tmpfs 很像
// .name 不同
// .kill_sb 不同
// ramfs 类似 低配版的 tmpfs
"ramfs" 文件系统 被 注册了 ,但没有被挂载过
"ramfs" 文件系统中的函数 被 低配版的 tmpfs 使用了
所以 "ramfs" 不用被关注
“ramfs” 的 东西(ramfs_fs_type 的各个成员) 被什么用到了
成员角度
ramfs_init_fs_context
mnt_init
shmem_init
register_filesystem(&shmem_fs_type);
kern_mount(&shmem_fs_type);
init_rootfs
init_mount_tree
vfs_kern_mount(&rootfs_fs_type, 0, "rootfs", NULL);
struct file_system_type rootfs_fs_type = {
.name = "rootfs",
.init_fs_context = rootfs_init_fs_context,
ramfs_init_fs_context
static struct file_system_type shmem_fs_type = {
.name = "tmpfs",
.init_fs_context = ramfs_init_fs_context,
ramfs_fs_parameters
ramfs_init_fs_context
fc->ops = &ramfs_context_ops;
//static const struct fs_context_operations ramfs_context_ops = {
.parse_param = ramfs_parse_param,
fs_parse(fc, ramfs_fs_parameters, param, &result);
static struct file_system_type shmem_fs_type = {
.name = "tmpfs",
.parameters = ramfs_fs_parameters,
文件系统角度
“tmpfs” 文件系统
mnt_init
shmem_init
register_filesystem(&shmem_fs_type);
kern_mount(&shmem_fs_type);
init_rootfs
init_mount_tree
“rootfs” 文件系统
mnt_init
shmem_init
init_rootfs
init_mount_tree
vfs_kern_mount(&rootfs_fs_type, 0, "rootfs", NULL);
上一篇:OK6410A 开发板 (八) 109 linux-5.11 OK6410A tmpfs 文件系统 CONFIG_SHMEM=n & CONFIG_TMPFS=n
下一篇:OK6410A 开发板 (八) 107 linux-5.11 OK6410A devtmpfs 文件系统
推荐阅读最新更新时间:2024-10-17 12:26