Linux系统启动--虚拟文件系统

前面一篇讲到了OS启动过程中MBR的相关属性,这里再简单介绍下Linux系统启动过程中虚拟文件系统的作用。

我们按下电源键,计算机第一个执行的程序就是MBR上面的BootLoader,同时,BIOS还会完成一些硬件的初始化等,接下来呢BootLoader就要去加载内核文件到内存,然后将内核文件解压,完成内核文件的加载,从这里开始BIOS的功成身退,以后的任务就交给内核来完成了。内核文件在哪里呢?输入

ls --format=single-column -F /boot

/boot/vmlinuz这个就是Linux内核文件,上面的3.1.0-7**应该是内核的版本号,我这里更新了好几次,再开机启动项里面会有好几种选择,选择不同的项就加载不同的内核版本。这里要注意:刚才是BootLoader直接把/boot/vmlinuz加载到内存的,这时候还没有挂载根目录噢!接下来就是要去加载各种各样的驱动,在Linux下叫做模块,都在/lib/modules下,Linux系统在启动过程中都是动态去加载模块的,所以内核必须要先挂载根目录。注意,内核是不认识SATA硬盘的,也就说内核现在还没有加载SATA硬盘的驱动,通俗的说就是内核现在是不能访问SATA硬盘,那么SATA硬盘的模块在哪里呢?在/lib/modules下!这下可好了,内核不能访问SATA,而且要访问SATA的“钥匙”在SATA里面。这可怎么办?这时候就是虚拟文件系统来大显身手了。

虚拟文件系统这里指的是InitialRAM Disk,不是VFS。我们还是回到BIOS的时候,BIOS可以直接加载虚拟文件系统,这是它的属性决定的,不深究了。虚拟文件系统被加载到内存中,可以起到一个临时根目录的作用,内核文件就能把SATA硬盘的驱动加载了,然后释放虚拟文件系统。说到底,虚拟文件系统在Linux系统启动的过程中就起到了一个充当临时根目录的作用。

参考资料 《鸟哥的Linux私房菜基础篇》

标签:OS