- 主题:有点不明白hyperviser这类虚拟机的工作原理
比如hyperviser上跑了两个Linux,这个Linux是直接跟硬件打交道的,那hyperviser怎么能把这两个Linux隔离管理呢?难道hyperviser会修改Linux内核的东西吗?
这个基本原理是啥呢?
--
修改:wjhtingerx FROM 106.3.192.*
FROM 106.3.192.*
这本书可以答疑
https://book.douban.com/subject/3619896/
--
FROM 123.115.128.*
很显然里面那个不能直接使用正经cpu啊
【 在 wjhtingerx (ca6140) 的大作中提到: 】
: 比方说,两个Linux都会去直接使用CPU,那怎么控制这两个Linux不冲突呢?
--
FROM 113.108.77.*
不一定。有些是靠kvm和硬件特性,比如IOMMU/vt-x/EPT这类的给非特权的指令执行开绿灯的。hypervisor自己搞一套页表。
【 在 JulyClyde (我的月份又来了) 的大作中提到: 】
: 很显然里面那个不能直接使用正经cpu啊
--
FROM 60.27.76.*
对于KVM, 需要有硬件的支持, 而且这个支持也根据硬件分成不同的等级, 最基本的CPU需要支持VT, 高级的外设支持VF, 例如支持SR-IOV的硬件可以虚拟化为多个设备, 这些虚拟的设备对于虚机而言性能几乎等同于单独的物理设备.
首先, CPU需要支持虚拟化, 其次, 主板需要支持VT-x, 最好支持VT-d, 最后, 支持VF的外设
* VT-x: 运行64bit Guest OS基本指令
* VT-d: 虚拟机可以直接针对硬件设备做存取,由北桥晶片来支援及BIOS来开启
* VT-c: 以Network为主, 要由I/O设备支持, 包含Virtual Machine Direct Connect 及 Virtual Machine Device Queues两项技术, 前者使用了SR-IOV(Single Root I/O Virtualization).
Linux当前的标准内核, 都是带虚拟化支持的, 可以通过启动参数做一些配置调整
【 在 wjhtingerx 的大作中提到: 】
: 比如hyperviser上跑了两个Linux,这个Linux是直接跟硬件打交道的,那hyperviser怎么能把这两个Linux隔离管理呢?难道hyperviser会修改Linux内核的东西吗?
: 这个基本原理是啥呢?
--
FROM 60.253.242.*
这么说是硬件完全虚拟出几个CPU这种?那hyperviser基本就是起个开机引导和监控的作用?
【 在 Mikov 的大作中提到: 】
: 对于KVM, 需要有硬件的支持, 而且这个支持也根据硬件分成不同的等级, 最基本的CPU需要支持VT, 高级的外设支持VF, 例如支持SR-IOV的硬件可以虚拟化为多个设备, 这些虚拟的设备对于虚机而言性能几乎等同于单独的物理设备.
: 首先, CPU需要支持虚拟化, 其次, 主板需要支持VT-x, 最好支持VT-d, 最后, 支持VF的外设
: * VT-x: 运行64bit Guest OS基本指令
: ...................
--
FROM 106.3.192.*
不直接使用还能咋用?难道指令是通过hyperviser解释运行的?
【 在 JulyClyde 的大作中提到: 】
: 很显然里面那个不能直接使用正经cpu啊
:
--
FROM 106.3.192.*
先的说清楚你说的这个hyperviser到底指的啥? 具体说哪个虚拟化方案? 虚拟化也分三六九等, Full virtualization, Paravirtualization, Software virtualization, Containerization, 你这问的, 不同情况回答的就不一样啊
举个例子, 做模拟器的, 基本上都是Software virtualization, 就是通过hyperviser解释运行的
【 在 wjhtingerx 的大作中提到: 】
: 不直接使用还能咋用?难道指令是通过hyperviser解释运行的?
:
--
FROM 60.253.242.*
我就是不清楚啊,不知道目前市面上那些各种虚拟机都用的啥技术?我唯一能理解的可能是你说的Software virtualization,这个就是把指令一个一个解释了执行,类似java虚拟机?
【 在 Mikov 的大作中提到: 】
: 先的说清楚你说的这个hyperviser到底指的啥? 具体说哪个虚拟化方案? 虚拟化也分三六九等, Full virtualization, Paravirtualization, Software virtualization, Containerization, 你这问的, 不同情况回答的就不一样啊
: 举个例子, 做模拟器的, 基本上都是Software virtualization, 就是通过hyperviser解释运行的
:
--
FROM 106.3.192.*