start_kernel ()
--> setup_arch ()
--> paging_init ()
--> bootmem_init ()
--> alloc_bootmem_low_pages ()
/*
* Initialise the bootmem allocator for all nodes. This is called
* early during the architecture specific initialisation.
*/
bootmem_init ()
/*
* paging_init() sets up the page tables, initialises the zone memory
* maps, and sets up the zero page, bad page and bad page tables.
*/
paging_init ()
本文详细介绍了Linux系统的启动流程,从start_kernel()函数开始,依次调用setup_arch()、paging_init()和bootmem_init()等关键函数。其中paging_init()负责设置页表、初始化内存区域映射并设置特殊页面如零页面、坏页面表等;而bootmem_init()则用于初始化所有节点的启动内存分配器。
1235

被折叠的 条评论
为什么被折叠?



