![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Kernel
文章平均质量分 70
winceos
这个作者很懒,什么都没留下…
展开
-
如何下载Android kernel内核源代码,编译烧写验证
1. Download Kernel source Study: 1. Please refer to the AOSP official kernel download address: http://source.android.com/source/building-kernels.html 2. goto https://android.g原创 2014-04-29 11:06:15 · 3588 阅读 · 0 评论 -
ernel 3.10内核源码分析--KVM相关--虚拟机运行
1、基本原理KVM虚拟机通过字符设备/dev/kvm的ioctl接口创建和运行,相关原理见之前的文章说明。虚拟机的运行通过/dev/kvm设备ioctl VCPU接口的KVM_RUN指令实现,在VM和VCPU创建好并完成初始化后,就可以调度该虚拟机运行了,通常,一个VCPU对应于一个线程,虚拟机运行的本质为调度该虚拟机相关的VCPU所在线程运行。虚拟机(VCPU)的运行主要任务是要进行上下转载 2015-11-19 17:17:47 · 1788 阅读 · 0 评论 -
kernel 3.10代码分析--KVM相关--虚拟机创建
1、基本原理如之前分析,kvm虚拟机通过对/dev/kvm字符设备的ioctl的System指令KVM_CREATE_VM进行创建。对虚拟机(VM)来说,kvm结构体是关键,一个虚拟机对应一个kvm结构体,虚拟机的创建过程实质为kvm结构体的创建和初始化过程。本文简单解释及分析在3.10版本内核代码中的相关流程,用户态qemu-kvm部分暂不包括。2、大致流程如下:用户态i转载 2015-11-19 17:13:33 · 1417 阅读 · 0 评论 -
kernel 3.10代码分析--KVM-KVM_SET_USER_MEMORY_REGION流程
1、基本原理如之前分析,kvm虚拟机实际运行于qemu-kvm的进程上下文中,因此,需要建立虚拟机的物理内存空间(GPA)与qemu-kvm进程的虚拟地址空间(HVA)的映射关系。虚拟机的物理地址空间实际也是不连续的,分成不同的内存区域(slot),因为物理地址空间中通常还包括BIOS、MMIO、显存、ISA保留等部分。qemu-kvm通过ioctl vm指令KVM_SET_USE转载 2015-11-19 17:16:40 · 2431 阅读 · 0 评论 -
KVM CPU虚拟化
3.1 基本原理CPU虚拟化是VMM中最核心的部分,由于内存和IO访问的指令都是敏感指令,所以内存和IO虚拟化都依赖于CPU虚拟化的实现。CPU虚拟化的目标是让虚拟机中执行的所有敏感指令都能产生异常而“陷入”,并由VMM进行模拟。VMM的陷入是通过CPU的保护机制、中断或异常来完成的。通常,VMM的陷入方式有如下3种:1、 由CPU的保护机制触发。CPU在执行敏感指令之前,会检查转载 2015-11-19 17:21:00 · 1733 阅读 · 0 评论 -
QEMU 设备模拟
设备模拟目的我们好像不会干一件事而毫无目的,就算不停刷微信朋友圈也是为了打发你无聊的时间。其实最装B的回答是:设备模拟的目的就是模拟设备。这话是屁话,不过也能说明些什么,确实是模拟设备,用软件的方式提供硬件设备具备的功能。对于和PC机交互的硬件设备,主要要干两件事,一是提供IRQ中断,二是响应IO输入输出。IO包括PIO/MMIO/DMA等(DMA算不算IO?)以i8254.c转载 2015-11-19 17:24:51 · 6813 阅读 · 0 评论 -
KVM vCPU创建过程
1、基本原理如之前的文章分析,在KVM虚拟化环境中,硬件虚拟化使用VCPU(Virtual CPU)描述符来描述虚拟CPU,VCPU描述符与OS中进程描述符类似,本质是一个结构体kvm_vcpu,其中包含如下信息:VCPU标识信息,如VCPU的ID号,VCPU属于哪个Guest等。虚拟寄存器信息,在VT-x的环境中,这些信息包含在VMCS中。VCPU状态信息,标识白转载 2015-11-19 17:15:01 · 4032 阅读 · 0 评论