OK6410A 开发板 (八) 108 linux-5.11 OK6410A ramfs 文件系统

发布者:mlgb999最新更新时间:2022-08-11 来源: csdn关键字:OK6410A  11  文件系统 手机看文章 扫描二维码
随时随地手机看文章

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  11  文件系统 引用地址:OK6410A 开发板 (八) 108 linux-5.11 OK6410A ramfs 文件系统

上一篇: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

OK6410A 开发板 (八) 108 linux-5.11 OK6410A ramfs 文件系统
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 = tmpf
[单片机]
OK6410A 开发板 (八) 89 linux-5.11 OK6410A 文件系统访问加速及一致性策略
在磁盘文件系统是怎么 用以内存为cache加速访问 并 处理内存与实际硬盘文件系统的差异 在文件系统这一块实现了 高速缓存 中的 文件系统相关部分 1. dentry 高速缓存 dentry cache 2. inode 高速缓存 inode cache 3. super_block 高速缓存 4. 页高速缓存 page cache 5. 缓冲区高速缓存 buffer cache 6. 块高速缓存 block cache superblock结构体/inode 缓存/dcache缓存/buffer cache/block cache / page cache/swap 总体描述 在关
[单片机]
<font color='red'>OK6410A</font> 开发板 (八) 89 linux-5.<font color='red'>11</font> <font color='red'>OK6410A</font> <font color='red'>文件系统</font>访问加速及一致性策略
OK6410A 开发板 (八) 90 linux-5.11 OK6410A linux文件系统导读
文件系统是什么 文件系统是 为了处理信息的,以目录的方式展示这些信息,并供用户增删改查 且用户的接口是文件名 linux 真实文件系统分类 信息存储在内核之中:sysfs,procfs,rootfs,devtmpfs 信息存储在内核之外: 存储在 网络 : nfs cifs 存储在 硬盘 : ext2/3/4 ntfs // vfs 并不是真实文件系统,是个框架 // vfs 存在于内核中 我们如何熟悉 linux下的文件系统 从流程去熟悉 1. 挂载 : 涉及到 super_block 2. 文件操作 : 涉及到 inode 3. search及真实文件系统中层级目录的维护 : 涉
[单片机]
OK6410A 开发板 (八) 107 linux-5.11 OK6410A devtmpfs 文件系统
drivers/base/devtmpfs.c devtmpfs 分为两种实现 1. 没有定义 CONFIG_TMPFS 2. 定义了 CONFIG_TMPFS 67 static struct file_system_type internal_fs_type = { 68 .name = devtmpfs , 69 #ifdef CONFIG_TMPFS 70 .init_fs_context = shmem_init_fs_context,
[单片机]
OK6410A 开发板 (八) 109 linux-5.11 OK6410A tmpfs 文件系统 CONFIG_SHMEM=n & CONFIG_TMPFS=n
drivers/base/devtmpfs.c devtmpfs 分为两种实现 1. 没有定义 CONFIG_TMPFS 2. 定义了 CONFIG_TMPFS 67 static struct file_system_type internal_fs_type = { 68 .name = devtmpfs , 69 #ifdef CONFIG_TMPFS 70 .init_fs_context = shmem_init_fs_context,
[单片机]
OK6410A 开发板 (八) 110 linux-5.11 OK6410A 从流程去熟悉文件系统1-挂载
挂载的时机有两种 1. 注册文件系统之后就挂载 2. 在用户空间挂载 2.1 fstab中挂载 2.2 用户手动用mount 命令挂载 挂载流程变迁史 在内核空间的挂载直接用 kern_mount挂载 在用户空间的挂载 用 用户空间的 mount 函数 , mount 往下调用,陷入内核 ,SYSCALL_DEFINE5(mount 这些接口都没变,变的是 内部实现 老的文件系统中 仍然用 mount 成员 去 创建 super_block 成员 当前(5.11)内核中file_system_type 结构体 中的 mount 成员 即将被抛弃 但是目前依靠 新挂载流程 中 的 legacy_init_
[单片机]
OK6410A 开发板 (八) 111 linux-5.11 OK6410A tmpfs 文件系统 CONFIG_SHMEM=y & CONFIG_TMPFS=n
公有部分 ▼ variables -shm_mnt ▼ functions -__shmem_file_setup(struct vfsmount *mnt, const char *name, loff_t size, unsigned long flags, unsigned int i_flags) shmem_file_setup(const char *name, loff_t size, unsigned long flags) shmem_file_setup_with_mnt(struct vfsmount *mnt, const char *name, loff_t size, unsigne
[单片机]
OK6410A 开发板 (八) 112 linux-5.11 OK6410A tmpfs 文件系统 CONFIG_SHMEM=y & CONFIG_TMPFS=y
CONFIG_SHMEM=y & CONFIG_TMPFS=y 相较于 CONFIG_SHMEM=y & CONFIG_TMPFS=n 多了 0a1,2 Press F1 , ? for help 16a19,21 -shmem_acct_size -shmem_file_operations -shmem_get_inode 17a23,25 -shmem_initxattrs -shmem_unacct_size -shmem_vm_ops 23a32 -shmem_initxattrs(struct inode *, const struct xattr *, void
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved