初始化生成linux sysfs(8)

新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正

    天今正式看sysfs_init:

    按照我们面前分析的论理,预备一个FS,应当供提5个部分内容

    1)题标

    2)超级块

    3)目录表

    4)inode表

    5)mnt操作方法

    其实这一步比预备rootfs还要早,而对sysfs初始化,除了也就是说file_systems的针指先是指到sysfs的一个file_system_type结构体,然后才是sysfs的next向指了rootfs.

    有事件,真的不能网细了说,如果说细了就露馅了。红十字会关于郭美美间时的考察就是这样,不敢说细面里说,一旦说多了,逻辑的自我乱紊就涌现了。但是究研代码,还真的往细面里说。

    好,我们先看看题标。

    static struct file_system_type sysfs_fs_type = {

    .name = "sysfs",

    .get_sb = sysfs_get_sb,

    .kill_sb = kill_anon_super,

    };

    第二个,超级块

    sysfs_init--->kern_mount--->kern_mount_data--->vfs_kern_mount--->mount_fs--->.mount-->sysfs_mount--->sget:生成和连接到题标 list_add(&s->s_instances, &type->fs_supers);

    第三个,目录表

    sysfs_init--->kmem_cache_create("sysfs_dir_cache", sizeof(struct sysfs_dirent),0, 0, NULL);请求内存

    第四个,inode表

    sysfs_inode_init-->bdi_init

    第五个,mnt操作方法

    sysfs--->kern_mount--->vfs_kern_mount旁边定义和初始化mnt

    每日一道理
美丽是平凡的,平凡得让你感觉不到她的存在;美丽是平淡的,平淡得只剩下温馨的回忆;美丽又是平静的,平静得只有你费尽心思才能激起她的涟漪。

    -------------------

    sysfs_init  (kernel/fs/sysfs/mount.c) //初始化的总程序

     --->kmem_cache_create

     --->sysfs_inode_init-->bdi_init(&sysfs_backing_dev_info)/kernel/fs/sysfs/inode.c

     --->register_filesystem(kernel/fs/filesystem.c)这个函数就是把全部注册filesystem结构串成一串,挂到file_systems针指上,面后注册的在串的头后。

     --->kern_mount()--->define成vfs_kern_mount在这个函数中实现superb和dentry、mnt的生成以及初始化

     

    register_filesystem(kernel/fs/filesystem.c)

     --->p = find_filesystem(fs->name, strlen(fs->name));

     

    kern_mount(type) kern_mount_data(type, NULL)

    --->kern_mount_data(struct file_system_type *type, void *data)

        --->vfs_kern_mount(type, MS_KERNMOUNT, type->name, data);

            --->alloc_vfsmnt(name)

            --->mount_fs

                

    mount_fs

    --->security_sb_copy_data

    --->mount-->sysfs_mount//这里生成sb,有sget函数

    --->security_sb_kern_mount

    --->dget(sb->s_root)

文章结束给大家分享下程序员的一些笑话语录: 程序员的愿望
  有一天一个程序员见到了上帝.上帝: 小伙子,我可以满足你一个愿望.程序员: 我希望中国国家队能再次打进世界杯.
  上帝: 这个啊!这个不好办啊,你还说下一个吧!
  程序员: 那好!我的下一个愿望是每天都能休息6个小时以上.
  上帝: 还是让中国国家打进世界杯.

原文地址:https://www.cnblogs.com/xinyuyuanm/p/3043256.html