Kernel setup
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.