首先,现在虚拟化技术已经很先进了,多数都支持硬件虚拟化,所以虚拟机的性能并不像你想的那么差。
然后,你希望的是“同时”运行,这也不是不可能,虚拟化技术里有一种方式叫AMP方式就可以满足你的需求。AMP的意思是一个CPU核上跑一个系统,硬件资源可以做到隔离,看上去就是多核CPU上每个核跑一个操作系统,貌似Linux是支持的,Windows是否能这么干还待调查。
问题是,硬件资源不够分,比如显示器,你得弄两台才行,因为显卡只能被一个操作系统控制,同样的键盘、鼠标等各种外设也得有两份才行,这是理想情况,实际上由于有些设备根本没办法拆分成两份,后果就是其中某一个系统没办法做输入输出。
所以,方案是有的,但效果绝对不是题主你想的那么美好,民用计算机体系结构设计成这样,并不是为了拆分成两份使用的。
顺便说一句,因为AMP这种方案不太好,基本上属于被淘汰的状态,主流虚拟化技术基本没有用这种方式的,嵌入式里倒是有一些,因为有些嵌入式OS并不需要多少外设。
看到不少人说有类似一键切换系统的硬件,我来解释一下原理:
其实这种硬件也是虚拟机的一种变种,类似AMP+硬件代理的方式,严格的讲两个系统是有主从关系的,主系统掌握大部分硬件资源,通过共享内存等代理方式把显示器、键盘等资源共享给另一个系统。
两个系统也不是完全“干净”的系统,是要装一些软件,主要是驱动(工作在内核)来完成资源切换的动作。当主系统向从系统切换时,显卡等硬件资源其实还控制在主系统里,主系统如果挂了,从系统的显示也就挂了。
严格的说这不是完全隔离的两个系统,并且也不是绝对安全的。
对于一般的PC机来说,像PCI总线这种很难分割的东西,是不太容易分给不同的硬件使用的,AMP系统里常见的做法是把串口分出去,串口只有中断+IO端口,访问特别简单,基本不存在冲突的问题。