Linux开机启动顺序

  • image.png
  • 上电复位
  • 在 ARM 架构中,复位向量地址一般是 0x00000000,找到地址为 0 的内存地址空间ROM(ROM也是内存),这里是芯片厂家事先固化好的程序,主要是初始化时钟,根据拨码开关找到bootloader是存在SD卡还是MMC或者其他外存中。
  • 加载引导加载程序(Boot Loader)到内存iRAM和DRAM中
  • 负责初始化硬件设备(如关中断、初始化时钟和内存设备)
  • 加载操作系统内核镜像zImage到内存DRAM,并将控制权交给内核
  • 引导加载程序 bootloader 会根据预先配置的参数,从存储设备(如 SD 卡、NAND Flash、eMMC 等)中读取内核镜像文件(通常是 zImage 或 uImage 格式)到内存 DRAM 中的指定地址,
  • 启动内核
    • 内核初始化
      • 如果内核是以压缩形式存储的,内核会首先进行自解压操作,将自身展开到内存中;
      • 内核会根据设备树或预先配置的信息,加载和初始化各种硬件驱动程序,使系统能够与硬件设备进行通信。
    • 挂载临时的根文件系统initramfs/initrd 是一种基于内存的临时根文件系统,它以压缩的形式包含在 Linux 内核镜像中,内核执行initramfs/initrd 中的 /init 脚本,加载必要的驱动(如磁盘驱动、网络驱动)并挂载真正的根文件系统(如 /dev/sda1或者网络挂载)
    • 挂载真正的根文件系统:内核会根据启动参数中指定的根文件系统类型和设备,将根文件系统挂载到内存中
  • 启动用户空间的第一个进程
  • 通常是 init 进程(在现代 Linux 系统中,也可能是 systemd)。这个进程负责进一步初始化系统,会执行一系列的初始化系统服务脚本(如网络服务)和配置文件。
  • 登录提示
  • 初始化完成后,系统会显示登录提示,等待用户输入用户名和密码进行登录,进入用户交互界面(Shell或者图形会话)
  • BIOS
  • BIOS 主要用于传统 x86 计算机系统的硬件初始化和引导,在嵌入式系统中使用较少但并非不存在。
  • BIOS:硬件初始化和启动设备选择(硬盘、U盘、光盘或者SD卡、MMC),它是一组固化到计算机内主板上一个ROM芯片上的程序。
  • initramfs
  • initramfs 是一种基于内存的临时根文件系统,它以压缩的形式包含在 Linux 内核镜像中。在系统启动时,内核会将 initramfs 解压到内存RAM中,并将其作为临时的根文件系统进行挂载。
  • 真正的根文件系统是系统最终使用的根文件系统,它通常存储在外部存储设备(如 SD 卡、NAND Flash、eMMC 等)上,包含了系统运行所需的所有文件和目录,而不是内存RAM中
  • 嵌入式系统和个人PC
  • U-Boot 和 GRUB 都是Bootloader,一个是用在嵌入式设备,一个是用在PC个人计算机或者服务器。
  • zImage和vmlinuz都是内核镜像,一个是用在嵌入式设备,一个是用在PC个人计算机或者服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值