摘要: 一、目的 内核加载完initrd文件后,为挂载磁盘文件系统做好了必要的准备工作,包括挂载了sysfs、proc文件系统,加载了磁盘驱动程序驱动程序等。接下来,内核跳转到用户空间的init程序,由init完成创建磁盘设备文件、加载磁盘文件系统、从rootfs切换到磁盘根文件系统等工作。 由于在不同... 阅读全文
posted @ 2014-06-05 10:26 Jessica程序猿 阅读(1123) 评论(0) 推荐(1) 编辑
摘要: 一、目的 上文详细介绍了CPIO格式的initrd文件,本文从源代码角度分析加载并解析initrd文件的过程。 initrd文件和linux内核一般存储在磁盘空间中,在系统启动阶段由bootload负责把磁盘上的内核和initrd加载到指定的内存空间中;然后,再由内核读取和解析initrd文件,... 阅读全文
posted @ 2014-06-05 10:13 Jessica程序猿 阅读(1282) 评论(0) 推荐(0) 编辑
摘要: 一、目的 linux把文件分为常规文件、目录文件、软链接文件、硬链接文件、特殊文件(设备文件、管道文件、socket文件等)几种类型,分别对应不同的新建函数sys_open()、sys_mkdir()、sys_symlink()、sys_link()、sys_mknod()。 系统初始化阶段成功... 阅读全文
posted @ 2014-06-05 10:13 Jessica程序猿 阅读(1175) 评论(0) 推荐(0) 编辑
摘要: 一、目的 本文主要讲述linux3.10文件系统初始化过程的第二阶段:加载initrd。 initrd是一个临时文件系统,由bootload负责加载到内存中,里面包含了基本的可执行程序和驱动程序。在linux初始化的初级阶段,它提供了一个基本的运行环境。当成功加载磁盘文件系统后,系统将切换到磁盘... 阅读全文
posted @ 2014-06-05 10:09 Jessica程序猿 阅读(1313) 评论(0) 推荐(0) 编辑
摘要: 一、目的 本文主要讲述linux3.10文件系统初始化过程的第一阶段:挂载rootfs文件系统。 rootfs是基于内存的文件系统,所有操作都在内存中完成;也没有实际的存储设备,所以不需要设备驱动程序的参与。基于以上原因,linux在启动阶段使用rootfs文件系统,当磁盘驱动程序和磁盘文件系统... 阅读全文
posted @ 2014-06-05 10:03 Jessica程序猿 阅读(3981) 评论(0) 推荐(0) 编辑
摘要: 术语表:struct task:进程struct mnt_namespace:命名空间struct mount:挂载点struct vfsmount:挂载项struct file:文件struct super_block:超级块struct dentry:目录struct inode:索引节点一、目... 阅读全文
posted @ 2014-06-05 09:56 Jessica程序猿 阅读(1327) 评论(0) 推荐(0) 编辑