ARM linux 启动流程-整理

本文详细介绍了ARM架构下Linux系统的启动流程,从bootloader到kernel的初始化,再到init进程的启动,以及用户登录阶段。在kernel阶段,系统探测硬件设备,加载驱动并生成rootfs。init进程启动守护程序,如在Ubuntu中使用systemd。用户登录时,可以是命令行、SSH或图形界面,每种方式都有相应的配置文件加载流程。

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

bootloader

  1. 基本的初始化工作:关闭看门狗,设置ddr、nand flash
  2. 启动内核

kernel

kernel初始化步骤:

  1. 进入kernel阶段,系统会先探测可识别的所有硬件设备
  2. 随后系统会加载设备驱动程序,并生成一个临时只读的rootfs系统
  3. 在运行了rootfs后,系统将开始运行第一个初始化程序--init

内核文件位置:

  • /boot/vmlinuz-3.13.0-32-generic
  • /boot/initrd-xx.img

主要函数:

  • start_kernel() -- 完成了内核的大部分初始化工作,相当于内核的 main 函数
  • reset_init()  -- 启动内核线程kernel_init
  • kernel_init() --初始化设备驱动
  • init_post()  -- 启动 init进程

    至此,kernel已经启动了用户空间的第一号进程- init

init

主要任务:启动守护进程--daemon

ubuntu最新的初始化进程已更新为systemd.

用户登录

守护进程加载ok后,用户开始登录:

1. 命令行登录 -- init 调用getty程序,让用户输入name 和 pwd,然后调用login程序核对pwd,通过后就从文件 /etc/passwd 读取该user指定的shell,启动它。

2. ssh登录 -- init 调用sshd程序,取代getty和login,然后启动shell。

3. 图形界面登录 -- init调用gdm

进入login

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值