main
1、读取startup.conf配置文件
2、线程绑核:main线程绑定指定的mian core(未指定默认为1)
3、main线程申请堆
clib_mem_init_thread_safe(默认申请1GB)
-》调create_mspace
根据指定的堆大小进行mmap内存;
init_user_mstate使用(mspace)heap记录mmap的内存的起始地点和结束的地址,并初始化堆头部
-》clib_mem_set_heap
将(mspace)heap记录到全局变量clib_per_cpu_mheap[thread_id]
-》初始化mheap_trace_main.lock全局锁
4、vlib_unix_main
vlib_global_main.heap_base=clib_per_cpu_mheap[thread_id]记录申请的堆;
vlib_plugin_config、vlib_plugin_early_init:读取plugin相关配置进行plugin加载;
vlib_call_all_config_functions(is_early = 1):执行VLIB_EARLY_CONFIG_FUNCTION构造函数注册的初始化函数
clib_elf_main_init (vm->name)