但是由此得出了第三个问题?那就是虚拟机是不是只能虚拟相同品牌甚至相同类型的cpu呢,比如intel cpu能不能虚拟amdcpu,386的cpu能不能虚拟686cpu。是否存在兼容列表,或者有一定的原则呢,但是其实这个问题并不大,因为在实际的大部分生产之中,我的认知是并不会采取这种虚拟方式来执行,加入强行把intelcpu虚拟为amdcpu,那么必然存在切换成本,这种切换成本完全可以通过购置一些不同的cpu来避免。
2019-03-19
问题2:为什么虚拟机能虚拟出硬件呢?原因是cpu的支持,比如intel vmx和amd svm硬件支持,但是有了硬件支持还不够,为什么?虚拟操作系统好理解,因为操作系统本身就是计算资源,内存资源,cpu资源,硬盘资源的融合,如果把他们合理分配并且做到完美隔离,那么虚拟的效果就出来了,但是硬件的虚拟如何实现的呢?我终于从这个视频得到了答案,原来,是通过两条特殊的cpu命令实现,也就是exit,和entry命令,当虚拟机使用被虚拟的硬件资源的时候,硬件资源不存在,那么执行exit命令,切换到宿主机的硬件资源进行调用,等资源调用完成以后,用entry重新进入宿主机执行下一条命令。
2019-03-19
这节课解答了我以前的一些困惑,很少有这种对底层技术讲述的这么清楚地课程了。
首先:cpu设计原理和原因:通过不同层级的设计,ring0,ring3设计出用户态和内核态,为什么要设计用户态和内核态?原因是,限制软件对硬件的直接操作,如果任何软件随意操作硬件,必然导致硬件的争夺和系统的宕机的可能性发生,所以必须让硬件的操作由专业的软件负责,也就是内核态负责,内核态也就是ring0状态,而普通软件也就是ring3态,这样即使软件崩溃,而系统无碍,同时请求,但是调用异时。这是这个视频解答我的1问题1
首先:cpu设计原理和原因:通过不同层级的设计,ring0,ring3设计出用户态和内核态,为什么要设计用户态和内核态?原因是,限制软件对硬件的直接操作,如果任何软件随意操作硬件,必然导致硬件的争夺和系统的宕机的可能性发生,所以必须让硬件的操作由专业的软件负责,也就是内核态负责,内核态也就是ring0状态,而普通软件也就是ring3态,这样即使软件崩溃,而系统无碍,同时请求,但是调用异时。这是这个视频解答我的1问题1
2019-03-19
我想说那些喷子,有无私奉献的大牛愿意分享自己辛苦所积累技术,泥ma啥子都不懂还在乱喷。真希望老师不要被那些喷子所影响。望老师以后能再多出一些精品课程,虚拟化技术的资料又特别少。
2019-01-28