ARM Linux内核源码剖析索引

时间:2022-05-10 21:12:23

start_kernel

  -->asm-offset.h 生成 

  -->proc_info_list 

     -->machine_desc

  -->__vet_atags 

  -->cpu位图

  -->setup_arch 

    -->parse_tags 

    -->命令行参数处理1

    -->paging_init

      -->build_mem_type_table

      -->prepare_page_table

      -->bootmem_init()

        -->for_each_node(node)

          -->unsigned long end_pfn = bootmem_init_node(node, mi);

          -->void __init bootmem_free_node(int node, struct meminfo *mi)

      -->devicemaps_init(mdesc);

      -->kmap_init();

      -->分配&初始化零页

    -->request_standard_resources(&meminfo, mdesc);

    -->early_trap_init //中断相关

  -->命令行参数处理2

  -->setup_per_cpu_areas();percpu静态变量初始化

  -->sched_init();

  -->build_all_zonelists();

  -->parse_early_param(); //处理命令行参数3

  -->parse_args("Booting kernel", static_command_line, __start___param,__stop___param - __start___param,&unknown_bootoption);

  -->early_irq_init();//中断相关

  -->init_IRQ(); //中断相关

  。。。

  -->vmalloc_init();

  -->mem_init()

  -->kmem_cache_init();//slab初始化