Linux系统从启动到提供服务的过程是这样,先是机器加电,然后通过MBR或者UEFI加载GRUB,再启动内核,内核启动服务,然后开始对外服务。
步骤:
- 加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备(比如硬盘);
- 读取并执行第一个开机装置内MBR 的boot Loader (即grub2, spfdisk 等程序);
- 依据boot loader 的设置加载Kernel ,Kernel 会开始检测硬件与加载驱动程序;
- 在硬件驱动成功后,Kernel 会主动调用init进程,而init会取得run-level信息;
- init 执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境(如网络、时区);
- init 执行run-level的各个服务的启动(script方式);
- init 执行/etc/rc.d/rc.local 文件;
- init 执行终端机模拟程序mingetty来启动login进程,最后就等待用户登录。
下面详细介绍每一步程序。
BIOS和MBR都是硬件本身会支持的功能,Boot Loader则是操作系统安装在MBR上面的一套软件
BIOS:
写入到主板上的一个韧体(即写入到硬件上的一个软件程序),开机时计算机主动执行;功能:加载CMOS的信息,并通过CMOS内的设置值取得主机的各项硬件配置,然后进行开机自检,开始执行硬件检测的初始化,并配置PnP设备,并且根据用户的设置去取得能够开机的存储设备,读取并执行里面的第一个扇区的MBR位置。
MBR:
每块硬盘的第一个扇区内含有446B的MBR区域,称为主引导分区,内含引导加载程序

最低0.47元/天 解锁文章
480

被折叠的 条评论
为什么被折叠?



