- 从打印角度的全局概览
// 其实 linux 启动过程中 打印 大多是 arch_call_rest_init->rest_init->kernel_init->kernel_init_freeable->do_basic_setup->do_initcalls 打印的
// 这一部分暂时不考虑
// 这里只分析 从 start_kenel运行 到 arch_call_rest_init运行前的打印
// 打印信息暂不列出了.
// 这里就挑出相关打印相关的函数并分类,分类并未按照打印时间顺序
// 为什么这么分析, 我认为能打印的,那肯定是比较重要的,是linux框架类型的
- 函数分类
smp
smp_setup_processor_id
banner
pr_notice("%s", linux_banner);
command line
pr_notice("Kernel command line: %s\n", saved_command_line);
根据 command line 去初始化 board
setup_arch(&command_line)
mem
page_address_init
build_all_zonelists
mm_init
vfs
vfs_caches_init_early
vfs_caches_init
irq
local_irq_disable
early_boot_irqs_disabled = true;
early_irq_init
init_IRQ
time
time_init
控制台
console_init
idle进程
sched_init // 在 第三阶段分析