init 文档索引

init 文档索引

Linux 6.1(RK3588)内核 init/ 目录源码分析与启动流程说明。

总览文档

文档 说明
init内核启动机制与原理详解.md 总览:启动阶段、与 arch/mm/drivers 边界、RK3588 关联
源码目录与模块索引.md init/ 文件清单、Makefile/Kconfig 对照
rk3588-kernel-6.1-init目录作用与内核启动流程分析.md 补充:早期整理的启动流程速览

功能组专题(原理 + 实现)

每篇文档结构:原理 → 实现方式 → 数据结构/接口 → RK3588 → 调试 → 附录

编号 文档 源码重点
01 start_kernel早期初始化机制与实现详解.md start_kernel()、命令行、早期子系统
02 rest_init与kernel_init机制与实现详解.md rest_initkernel_initexec init
03 initcall驱动初始化机制与实现详解.md do_initcalls、七级 initcall、异步
04 根文件系统挂载机制与实现详解.md do_mounts.cprepare_namespaceroot=
05 initramfs与早期用户态机制与实现详解.md initramfs.cinitrdramdisk_execute_command
06 init_task版本与校准机制与实现详解.md init_task.cversion*.ccalibrate.c
07 RK3588启动优化与平台关联详解.md 长 cmdline、Thunder Boot、HW 解压

源码路径

1
rk3588/kernel-6.1/init/

关联路径(不在 init/ 内但属启动链):

1
2
3
rk3588/kernel-6.1/arch/arm64/          # setup_arch、head.S
rk3588/kernel-6.1/mm/memblock.c # defer_free_memblock
rk3588/kernel-6.1/drivers/ # device initcall probe

阅读顺序建议

总览 init内核启动机制与原理详解01 start_kernel02 rest_init / kernel_init03 initcall05 initramfs04 根挂载06 init_task / version07 RK3588

核心机制速查

机制 主要文件 关键入口
内核 C 入口总控 main.c start_kernel()
调度与 PID1 线程 main.c rest_init()kernel_init()
驱动/子系统注册初始化 main.c do_initcalls()do_one_initcall()
挂真实根 do_mounts.c prepare_namespace()mount_root()
内置 cpio initramfs.c populate_rootfsunpack_to_rootfs
0 号任务模板 init_task.c init_taskinit_stack
BogoMIPS calibrate.c calibrate_delay()
RK 延迟 memblock main.c + mm/memblock.c defer_free_memblock

与 RK3588 / SeagullYpcEncode 场景

  • 启动耗时prepare_namespacewait_for_device_probe()04
  • 快启 memblockCONFIG_ROCKCHIP_THUNDER_BOOT_DEFER_FREE_MEMBLOCK07linuxDoc/mm/01
  • initramfs 硬件解压CONFIG_ROCKCHIP_HW_DECOMPRESS05
  • 模块签名密钥integrity_load_keys()kernel_init_freeable 末尾)→ linuxDoc/certs

文章互动

阅读 --

留言

0 条留言

正在加载留言…