Linux虚拟化技术(第49天)
操作系统原理 系统调用:操作系统提供的调用接口 库:库是对系统调用的封装 用户态和内核态 x86指令分4层:ring0,ring1,ring2, ring3 MMU:内存管理单元,主要用于内存分页 寄存器:cpu内部保持数据的元器件 cpu缓存:一级缓存,二级缓存,三级缓存 IO设备:包括控制器和设备 控制器:集成在主板上的芯片 驱动程序:通常由设备生产商提供 每个控制器都集成少量的用于通信的寄存器:内核调用驱动程序进行读写操作,驱动程序会操作控制器对设备进行读写。 IO端口空间:所有IO设备的控制器上的寄存器集合,每一个寄存器表现为一个IO端口,被映射到内存中,每一个IO端口的都有一个独立的地址 中断:主板上的可编程中断控制器 中断号:IO设备的控制器在系统启动时要向中断控制器注册一个中断号,当IO设备有读写请求时,向中断控制器发出中断请求,中断控制器通知CPU,CPU发起中断切换。 中断分为中断上部,中断下部。 中断上部:将IO设备缓存中的内容copy到内核内存中 DMA:直接内存访问,完成中断上部。 虚拟地址 物理地址 虚拟化技术: 将计算机资源分割 cpu的虚拟化的技术:模拟和虚拟 模拟:软件模拟,emulation,宿主机架构和guest架构可以不一样,必须模拟出来ring0, ring1, ring2,ring3 虚拟:virtualization,guest并不知自己运行于虚拟机中,必须模拟出来一个特权环境,各guest内核运行于宿主机的ring1,当guest主机运行特权指令时候可以进行二进制翻译,把指令翻译为宿主机的特权指令运行之。 HVM:硬件辅助虚拟化技术:intel vt技术 宿主机运行于ring-1级,各guest用户态进程运行于ring3, guest内核态运行于ring0。 半虚拟化技术:para-virtualization 在硬件上运行hypervisor,也就是vm monitor,hypervisor直接管理硬件,hypervisor虚拟一层hyper call, 各guest的内核进程可以直接调用hyper call。各guest的内核必须做相应的调整,才能适配对hyper call的调用,所以guest是知道hyper call的存在的 Memory的虚拟: intel EPT技术:extended page table,M...