ramdisk 和 ramfs 文件系统 (initrd 和 initramfs )

来源:互联网 发布:驱动程序软件安装设置 编辑:程序博客网 时间:2024/06/05 15:21

ramdisk 和 ramfs 的区别

两者的层次不一样,一图概之(以ext2为例)

vfsvfsvfs ↓↓实际文件系统ext2ramfs ↓↓磁盘磁盘(用内存模拟,叫ramdisk,需先格式化为ext2)内存

initramfs ,顾名思义就是在系统启动的时候用ramfs作为实际跟文件系统(至于ramfs中是否再次切换实际根文件系统,则是另一个问题)
initrd,就是在系统启动的时候用ramdisk作为实际跟文件系统的模拟磁盘

ramfs 文件系统


注册:
fs/ramfs/inode.c
static struct file_system_type ramfs_fs_type = {
.name = "ramfs",
.mount = ramfs_mount,
.kill_sb = ramfs_kill_sb,
};
static int __init init_ramfs_fs(void)
{
return register_filesystem(&ramfs_fs_type);
}
module_init(init_ramfs_fs)

挂载:
在使用的时候
mkdir -p /RAM1
mount -t ramfs none /RAM1


initramfs的挂载:

Initramfs是压缩过后的CPIO文件。编译内核的时候通过链接脚本arch/arm/kernel/vmlinux.lds将其链接到__initramfs_start~__initramfs_end。initramfs的是作为内核的一部分而存在的.

populate_rootfs(init/initramfs.c)

0 0
原创粉丝点击