百科问答小站 logo
百科问答小站 font logo



有没有什么办法可以让双系统同时运行? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

首先,现在虚拟化技术已经很先进了,多数都支持硬件虚拟化,所以虚拟机的性能并不像你想的那么差。

然后,你希望的是“同时”运行,这也不是不可能,虚拟化技术里有一种方式叫AMP方式就可以满足你的需求。AMP的意思是一个CPU核上跑一个系统,硬件资源可以做到隔离,看上去就是多核CPU上每个核跑一个操作系统,貌似Linux是支持的,Windows是否能这么干还待调查。

问题是,硬件资源不够分,比如显示器,你得弄两台才行,因为显卡只能被一个操作系统控制,同样的键盘、鼠标等各种外设也得有两份才行,这是理想情况,实际上由于有些设备根本没办法拆分成两份,后果就是其中某一个系统没办法做输入输出。

所以,方案是有的,但效果绝对不是题主你想的那么美好,民用计算机体系结构设计成这样,并不是为了拆分成两份使用的。

顺便说一句,因为AMP这种方案不太好,基本上属于被淘汰的状态,主流虚拟化技术基本没有用这种方式的,嵌入式里倒是有一些,因为有些嵌入式OS并不需要多少外设。


看到不少人说有类似一键切换系统的硬件,我来解释一下原理:


其实这种硬件也是虚拟机的一种变种,类似AMP+硬件代理的方式,严格的讲两个系统是有主从关系的,主系统掌握大部分硬件资源,通过共享内存等代理方式把显示器、键盘等资源共享给另一个系统。

两个系统也不是完全“干净”的系统,是要装一些软件,主要是驱动(工作在内核)来完成资源切换的动作。当主系统向从系统切换时,显卡等硬件资源其实还控制在主系统里,主系统如果挂了,从系统的显示也就挂了。

严格的说这不是完全隔离的两个系统,并且也不是绝对安全的。

对于一般的PC机来说,像PCI总线这种很难分割的东西,是不太容易分给不同的硬件使用的,AMP系统里常见的做法是把串口分出去,串口只有中断+IO端口,访问特别简单,基本不存在冲突的问题。




  

相关话题

  Unix网络编程里的阻塞是在操作系统的内核态创建一个线程来死循环吗? 
  微软宣布 Windows 11 全部免费升级,还有哪些值得关注的信息? 
  为什么开源软件往往都支持Linux/Mac/Windows,而闭源软件往往只支持Win和Mac? 
  在程序运行后,调试打断点时,反汇编看到的是虚拟地址还是物理地址? 
  Everything等本地搜索软件为什么比windows自带的搜索工具快那么多? 
  为何 Linux 或 PowerShell 中运行脚本需添加「./」? 
  如何看待华为2021年4月升级鸿蒙系统? 
  FreeBSD 还有前途吗? 
  有没有什么办法可以让双系统同时运行? 
  使用「电子垃圾」级的电脑还能用得舒服是一种怎样的体验? 

前一个讨论
如何评价知乎文章:《浮出水面的赃物:北京空置380多万套房子,房主不知是谁?仍然成谜》?
下一个讨论
最近网上有一段话,说是中国要建设北京到墨尔本的高铁,我知道这是谣言,但是有这种可能性吗?





© 2024-11-08 - tinynew.org. All Rights Reserved.
© 2024-11-08 - tinynew.org. 保留所有权利