There are two kernel structs, kernel.Kernel
and ring0.Kernel
. kernel.Kernel
contains most of kernel data structures while ring0.kernel
only contains PageTables *pagetables.PageTables
and globalIDT idt64
. As shown in the following figure, loader.go
will create a VM and setup kernel.Kernel, while the KVM will setup ring0.Kernel. Figure source is on plantuml.
原文:https://www.cnblogs.com/dream397/p/14311508.html