启动进程( 二 )


GRUB 1包含运行时读取通用档案系统以访问其配置档案的逻辑 。这使得GRUB 1能够从档案系统读取其配置档案,而不是将其嵌入到MBR中,从而允许它在运行时更改配置,并以可读取的格式指定磁碟和分区,而不是依赖于偏移量 。它还包含一个命令行界面,如果配置错误或损坏,可以更容易地修复或修改GRUB 。
GRUB 2与GRUB 1的不同之处在于有两个(可选三个)阶段,并且能够自动检测各种作业系统和自动配置 。第一阶段载入程式(stage1)载入和执行由BIOS从主引导记录(MBR)或另一个来自分区引导扇叶的引导载入程式 。它的工作是发现和访问各种档案系统,以便稍后可以读取配置档案 。如果第二阶段载入程式不连续,或者如果档案系统或硬体需要特殊处理才能访问第二级载入程式,则可选的中级载入程式(阶段1.5)由第一级载入程式载入和执行载入程式 。最后载入第二阶段载入程式(stage2),并显示允许用户选择作业系统或检查和编辑启动参数的GRUB启动选单 。选择选单项并选择参数后,GRUB会将核心载入到记忆体中,并将控制权传递给它 。GRUB 2还能够连结载入另一个引导载入程式 。
SYSLINUX/ ISOLINUX是一个专门从FAT档案系统引导完整的Linux的启动载入程式 。它通常用于启动或抢救软碟,live USB和其他轻量级引导系统 。ISOLINUX通常由Linux live CD和可引导安装CD使用 。
Loadlin是一个可以在运行时用Linux核心替换正在运行的DOS或Windows 9x核心的启动载入程式 。这在硬体需要通过软体打开并且这种配置程式是专有的且仅适用于DOS的情况下可能是有用的 。这种引导方法现在不太需要,因为Linux具有大量硬体设备的驱动程式,但在移动设备中已经有一些用途 。另一个用例是当Linux位于BIOS无法启动的存储设备上时:DOS或Windows可以载入相应的驱动程式来弥补BIOS的限制并从那里启动Linux 。
核心阶段Linux核心处理所有作业系统进程,如记忆体管理、任务调度、I/O、进程间通信和系统总体控制 。这分为两个阶段 :首先,核心(作为压缩映像档案)被载入到记忆体中并进行解压缩,并且创建了一些基本的功能,如基本记忆体管理 。然后最后一次切换到主核心启动过程 。一旦核心完全运行,并且作为其启动的一部分,在载入和执行时,核心会查找一个运行的init进程,它单独设定用户空间以及用户环境所需的进程和最终会话 。然后允许核心自身闲置,受其他进程调用 。initramfsinitramfs自Linux核心的2.5.46版本开始加入这个概念,其意图是儘可能地替换以前Linux核心在启动过程中执行的功能 。早期用户空间的典型用途是检测需要哪些设备驱动程式来载入主用户空间档案系统,并从临时档案系统载入它们 。Init进程Init是Linux的根进程 。进程号为1,它是所有进程的父进程 。SysV initinit是系统所有进程的父进程 。它由核心创建,它将启动其他所有进程 。