入口main

kvm-tools是一个普通的应用程序,所以入口是main函数,在源码树中,根目录下就有一个main.c,显然这就是入口文件。

非常简短,显然主要核心在于handle_command,即根据用户传进来的命令做不同的处理。
我们发现第一个参数是一个全局变量,我们看看是什么

我们发现是一个cmd_struct结构体数组

命令名字,命令执行函数指针,命令帮助信息,可选项

handle_command

利用用户传进来的命令行参数,利用kvm_get_command得到一个cmd_struct结构体,
然后执行其中的fn指针。所以我们的核心就得看命令函数,上边的kvm_commands中有各个命令函数,显然,我们最关心的是kvm_cmd_run,他用于跑起一个gust

kvm_cmd_run

首先利用kvm_cmd_run_init 进行跑虚拟机前的初始化工作
然后利用kvm_cmd_run_work 跑gust
最后利用kvm_cmd_run_exit 做清理工作

这三个函数是核心,所以相对来说比较复杂,我们分别开博文分析。

results matching ""

    No results matching ""