在rootfs_mount中使用mount_nodev

时间:2014-12-03 12:50:14

标签: linux linux-kernel linux-device-driver embedded-linux

我试图了解内核如何安装文件系统。在检查源代码时,我发现do_mounts.c文件的源代码与挂载相关(rootfs文件系统在init_rootfs()内注册)。

最初由rootfs_mount()调用

start_kernel()函数,我无法理解mount_nodev()rootfs_mount()的使用情况。能否帮助我理解从rootfs_mount()调用start_kernel()背后的逻辑,因为它没有安装任何文件系统。

通过调用mount_nfs_root()中的mount_block_root()kernel_init()函数启动实际文件系统挂载,请告诉我我的理解是否不同。

1 个答案:

答案 0 :(得分:1)

  

我无法理解mount_nodev()的使用情况   在rootfs_mount()内。你能帮帮我吗?   理解调用rootfs_mount()背后的逻辑   start_kernel(),因为它没有安装任何文件系统。

好吧,mount_nodev()并不意味着它没有安装任何文件系统,而是(参见VFS - The Linux Kernel Archives):

  

mount_nodev:挂载未由设备支持的文件系统

(例如NFS)。顺便说一句,这也反映在/proc/filesystems rootfs_mount()特别安装 ramfs tmpfs

附录 - 此Linux Initialization HOWTO说明start_kernel()中的来电:

  

vfs_caches_init(mempages)

     

(在linux / fs / dcache.c中)

调用kmem_cache_create()来创建   buffer_head,names_cache,filp和CONFIG_QUOTA的slab缓存,   dquot。

调用dcache_init()创建dentry_cache和   dentry_hashtable。