写在前面
对于计算机的启动流程, 这个其实很早之前就有说到, 所谓boot就是靴子的意思,试想一个人提起自己身上穿的靴子, 这个过程是何其的艰难! 计算机启动的过程也是如此, 在启动的过程中,软硬件究竟是如何转移控制权的, 又是谁, 像上帝一样开创了万物呢?
BIOS
在个人计算机的情况下, 要想启动系统, 就需要加载BIOS, 然而这个时候是没有操作系统的, 那到底是谁去引导BIOS启动的呢? 答案就是硬件啦。 通过硬件打开了BIOS, 接着BIOS去检测硬件, 并与这些硬件中内含的BIOS打声招呼, 把他们吵醒, 这个就是自我检测的过程了。
接着就是由BIOS来决定启动顺序的问题了。 常见的启动顺序有 光盘, 磁盘, 和U盘
设定好了启动顺序之后, BIOS就会将boot loader , 也就是磁盘上的MBR分区表写到内存中。 这个过程是通过INT 13中断来完成的。
boot loader
之前一直只觉得有BIOS就够了, 竟不知还有 boot loader
首先, 每种操作系统都有属于自己的boot loader
那么双系统又是从何而来?
这就涉及到文件系统了, 先按下不提。
认识一下 Initial RAM Disk(Initial RAM Filesystem)
这里源自一个问题。 假设Linux安装在SATA磁盘上面, 可以通过BIOS的INT13中断取得boot loader 与内核文件来启动。
但是内核根本就不认识 SATA磁盘, 所以需要加载SATA磁盘的驱动程序, 到那时SATA的驱动程序还在 /lib/modules 内, 根本无法挂载根目录又怎么去读取到驱动程序呢?
系统启动的流程过于复杂,先写到这
网友评论