回顾
上篇博文我们分析到kvm_cmd_run命令中有3个核心函数
这篇博文主要分析kvm_cmd_run_init函数
kvm_cmd_run_init
确定CPU个数
而后是一个循环解析命令行参数,具体可以参考kvm_cmd_run_init的帮助信息
如果在上边解析参数的时候发现用户并没有制定内核文件位置,则通过find_kernel()来获得
而find_kernel()其实就是通过下边的位置顺序来找内核
这里找的是elf文件格式的内核
这里确定客户机内存的大小,如果用户没有在参数中指出,则通过get_ram_size()来获得,而实际上就是根据当前host的内存大小算一个比例。
设置内核启动的参数
设置启动用的根文件系统,如果用户没有指定,就自己创建一个最小根文件系统
后面跟着好多行都是干这事
kvm_run_init的最后调用了Init_list_init 函数。