linux的计算机的启动

本文详细介绍了计算机系统的启动过程,从BIOS加载硬件信息到grub等bootloader的执行,再到kernel的启动及服务的初始化,深入浅出地解析了每个环节的作用与原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般来说,整个系统的启动流程如下
1.加载BIOS的硬件信息并进行自我测试,并依据设置取得第一个可启动设备
2.读取并执行第一个可启动设备内的MBR的boot loader(即grub等程序)
3.根据bootloader的设置加载kernel。kernel开始检测硬件并加载驱动程序
4.硬件驱动成功后,kernel会调用init进程,init获得当前设置的run-level
5.init执行/etc/rc.d/rc.sysinit文件来准备软件当前的操作环境(如网络,市区)
6.init根据run-level启动各个服务(script方式)
7.init执行rc.local进程
8.init执行终端机模拟程序minggetty来启动login进程,等待用户登录。

下面分别介绍如下
0. 接通电源。

  1. BIOS
    系统首先加载BIOS 然后读取cmos内存储的主机的各项硬件配置,比如CPU的通信频率,硬盘大小和类型,各周边总线是否启动即插即用设备(PnP),个设备的IO地址…
    然后进行开机自检(POST,POWER-ON SELF TEST),执行硬件检测和初始化
    无论硬盘接口,系统通过int13终端功能读取MBR,从而启动BOOT LOADER

  2. MBR
    MBR是磁盘的一片区域。如果MBR毁坏系统将无法启动
    物理位置:0面0道1扇区(clindyer 0, side 0, sector 1)
    大小: 512字节
    其中:MBR 446字节(0000–01BD),DPT 64字节(01BE–01FD),结束标志2字节(55 AA)
    功能:MBR通过检查DPT分区信息引导系统跳转至DBR;
    详解:
    000H–08AH MBR启动程序(寻找开机分区)
    08BH–0D9H MBR启动字符串
    0DAH–1BCH 保留(“0”)
    1BEH–1FDH 硬盘分区表
    1FEH–1FFH 结束标志(55AA)

  3. BOOT Loader
    常见的bootloader比如说grub2。bootloader的最大问题是其硬件兼容性。在嵌入式领域几乎要针对硬件平台单独编写。不过现代计算机和服务器的硬件类似,所以才有grub2这种能兼容大部分硬件的bootloader。bootloader不是内核的一部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值