numa_policy_init();
这个函数是初始化NUMA的内存访问策略。所谓NUMA,它是NonUniform Memory AccessAchitecture的缩写,主要用来提高多个CPU访问内存的速度。因为多个CPU访问同一个节点的内存速度远远比访问多个节点的速度来得快。
if(late_time_init)
late_time_init();
这段代码是主要运行时钟相关后期的初始化功能。
calibrate_delay();
这个函数是主要计算CPU需要校准的时间,这里说的时间是CPU执行时间。如果是引导CPU,这个函数计算出来的校准时间是不需要使用的,主要使用在非引导CPU上,因为非引导CPU执行的频率不一样,导致时间计算不准确。
pidmap_init();
这个函数是进程位图初始化,一般情况下使用一页来表示所有进程占用情况。
pgtable_cache_init();
这个函数是页表缓存实始化。
prio_tree_init();
这个函数是初始化优先搜索树,主要用在内存反向搜索方面。
anon_vma_init();
这个函数是初始化反向映射的匿名内存,提供反向查找内存的结构指针位置,快速地回收内存。
#ifdefCONFIG_X86
if(efi_enabled)
efi_enter_virtual_mode();
#endif
这段代码是初始化EFI的接口,并进入虚拟模式。EFI是ExtensibleFirmware Interface的缩写,就是INTEL公司新开发的BIOS接口。
thread_info_cache_init();
这个函数是线程信息的缓存初始化。
fork_init(num_physpages);
这个函数是根据当前物理内存计算出来可以创建进程(线程)的数量,并进行进程环境初始化。
proc_caches_init();
这个函数是进程缓存初始化。
buffer_init();
这个函数是初始化文件系统的缓冲区,并计算最大可以使用的文件缓存。
key_init();
这个函数是初始化安全键管理列表和结构。
security_init();
这个函数是初始化安全管理框架,以便提供访问文件/登录等权限。
vfs_caches_init(num_physpages);
这个函数是虚拟文件系统进行缓存初始化,提高虚拟文件系统的访问速度。
radix_tree_init();
这个函数是初始化radix树,radix树基于二进制键值的查找树。
signals_init();
这个函数是初始化信号队列缓存。