V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
lechain
V2EX  ›  奇思妙想

有没有可能做一台同时运行双系统的 PC 机?

  •  
  •   lechain · 2020-05-20 22:47:48 +08:00 · 9253 次点击
    这是一个创建于 1682 天前的主题,其中的信息可能已经有所发展或是发生改变。

    发现很多 linux 开发者( or 嵌入式、跨平台开发)都有桌面环境和开发环境不能无缝衔接的痛点,经常看到关于这种需求的解决方案的讨论,目前看起来WSL 1/2是其中做的比较不错的一种,但是仍然各自有各自的缺点(当然相对的也有很多优点)

    再说一个个人觉得做的还不错的方案,通过 samba 将 Linux 的 folder 映射为 Windows 的网络驱动器,然后通过 IDE 在 windows 下组件工程项目、编辑源代码,使用 putty 连接等 terminal 连接服务器上去执行 build 、configure 等需要在开发环境才能完成的操作。对于普通的个人开发者而言,则可以将开发环境放入到虚拟机里面。

    刚刚突发奇想,是否可以做一种机器,带有一个主 CPU 和一个副 CPU (或者也可以是 fpga ),然后可以同时实时的运行两个操作系统,这样的话感觉看起来似乎可以解决许多痛点。

    不知道这种方案是否已经有人在尝试(或者也许根本就不可行?),大家是怎么认为的?

    30 条回复    2020-07-07 21:03:28 +08:00
    anUglyDog
        1
    anUglyDog  
       2020-05-20 22:49:41 +08:00
    现在的虚拟机里的系统和主系统不是桌面都可以相互嵌进去吗.
    cnbattle
        2
    cnbattle  
       2020-05-20 22:52:33 +08:00 via Android
    高个大机箱,组两套硬件
    Jirajine
        3
    Jirajine  
       2020-05-20 22:53:32 +08:00 via Android
    最简单的就是双系统,两个系统都可以真机启动也可以在另一个系统的虚拟机里启动。
    得益于 UEFI,这样做并不困难。
    lechain
        4
    lechain  
    OP
       2020-05-20 22:54:38 +08:00
    @anUglyDog 虚拟机并不能完美模拟许多硬件,特别是正在开发没有发布过的硬件。

    @cnbattle 这是个好想法呀,只不过会有许多硬件冗余,而且成本似乎也挺高的
    nguoidiqua
        5
    nguoidiqua  
       2020-05-20 22:55:20 +08:00
    油管上的 Linus 去年曾经搞过这样的项目,不过是同时运行 Manjaro 和 MacOS,同时 Linux 和 Windows 的话应该难度更低。
    nguoidiqua
        6
    nguoidiqua  
       2020-05-20 22:58:41 +08:00
    印象中,他好像是把一颗 CPU 分成两份,然后两张显卡各管一个系统,可以弄两个显示器分别显示,也可以在一个显示器上对半分。
    amazingrise
        7
    amazingrise  
       2020-05-20 22:59:16 +08:00 via Android
    Type I 的 Hypervisor 。虽说它是虚拟化,但是没有 Host OS
    nguoidiqua
        8
    nguoidiqua  
       2020-05-20 23:02:17 +08:00   ❤️ 1
    lechain
        9
    lechain  
    OP
       2020-05-20 23:03:56 +08:00
    @nguoidiqua 这是什么黑魔法,感谢了,我找空去搜搜看

    @amazingrise 听上去似乎也很不错,没有宿主系统但是指令还是跑在同一个 CPU,看起来跟楼上提到的方案是类似的
    felixcode
        10
    felixcode  
       2020-05-20 23:05:43 +08:00 via Android
    你把桌面环境也用 Linux 就完全没这么麻烦了
    cuicuiv5
        11
    cuicuiv5  
       2020-05-21 00:22:34 +08:00 via iPhone
    laminux29
        12
    laminux29  
       2020-05-21 02:07:11 +08:00   ❤️ 1
    题主你需要的仅仅只是一个双机箱 + 一套视频与键鼠的切换器罢了。可以让你完美切换。
    nvkou
        13
    nvkou  
       2020-05-21 02:57:37 +08:00 via Android
    如果只是编译环境。docker for Windows 为啥不行?用完就关
    secondwtq
        14
    secondwtq  
       2020-05-21 03:11:04 +08:00 via iPhone
    我不知道楼主这个想法能解决什么”痛点“……
    mgrddsj
        15
    mgrddsj  
       2020-05-21 03:12:59 +08:00 via Android
    @nguoidiqua #6 #8
    @lechain #9
    印象中那个视频是在 Linux 上跑两台虚拟机,只不过虚拟机支持 GPU passthrough, 让把两张显卡分别 passthrough 到两个系统里面。性能上肯定有损耗的。
    naturegreen
        16
    naturegreen  
       2020-05-21 05:09:06 +08:00 via Android
    @mgrddsj 应该是 proxmox?
    mgrddsj
        17
    mgrddsj  
       2020-05-21 05:14:40 +08:00
    @naturegreen #16 重新打开视频看了一眼,是 qemu.
    KamenReborn
        18
    KamenReborn  
       2020-05-21 06:35:22 +08:00 via Android
    你不如搞两主机,然后弄一套跨平台的键鼠切换,文件共享
    vk42
        19
    vk42  
       2020-05-21 06:39:54 +08:00
    @mgrddsj GPU passthrough 基本和原生性能差不多了,但是只能独占,支持 SRIOV 的显卡也不是针对桌面应用的
    systemcall
        20
    systemcall  
       2020-05-21 07:41:05 +08:00 via Android
    dfi 以前做过上面带了个 atom 平台的主板,一个一般的 pc+一个 atom 平台
    感觉不如用虚拟化,你说的东西装两块显卡,使用 esxi 之类的一类虚拟机就行了,每个 OS 分配一个显卡,性能不会有很大的损失。Linux 的显卡装在 x4 的接口上,只需要低端显卡即可。如果用不到桌面环境,就只需要一个显卡给 Windows 用
    另外,有个东西叫做 wsl
    deorth
        21
    deorth  
       2020-05-21 09:03:29 +08:00
    虚拟机不能模拟的硬件你就 passthrough 给客户机呗
    fuxkcsdn
        22
    fuxkcsdn  
       2020-05-21 09:52:33 +08:00
    esxi + 双独立显卡直通

    或者支持安装双主板的机箱,如
    https://item.jd.com/100003292788.html
    NonClockworkChen
        23
    NonClockworkChen  
       2020-05-21 09:54:08 +08:00
    locoz
        24
    locoz  
       2020-05-21 14:53:07 +08:00
    加拿大白嫖王的虚拟机方案或者双主板机箱方案都可以
    whatv3
        25
    whatv3  
       2020-05-21 15:24:32 +08:00
    @fuxkcsdn #22 我最近打算折腾下这个方案来着~
    kios
        26
    kios  
       2020-05-21 22:09:40 +08:00
    LinusTip 曾经做过这样的节目 可以在 YouTube 上找到
    HangoX
        27
    HangoX  
       2020-05-22 15:20:34 +08:00
    我不知道其他桌面环境怎么样,但是在 mac 上,用 pd 可以很轻松和 window,ubuntu 无缝连接
    zjyl1994
        28
    zjyl1994  
       2020-05-23 15:58:08 +08:00   ❤️ 1
    双机箱+KVM 切换器,这样公用一套键盘鼠标和显示器,如果你和我一样 Linux 主机用的那种带壁挂孔的工控机,可以直接挂在显示器后面。用的时候按一下切换键 2-3 秒就能切到另一台机器(你要是有预算上好的 KVM 切换器速度还能更快,而且预算更多的切换器还可以带 HUB 直接把一系列外设切过去)
    msg7086
        29
    msg7086  
       2020-05-24 03:31:36 +08:00   ❤️ 1
    两个 CPU 就等于两台电脑了。CPU 是中央处理单元,从 CPU 延伸出来,主板,外围设备,加在一起就构成了一台电脑。如果你打算用两个 CPU,那定义上来说就是两台电脑了。当然,两台电脑放在一个机箱里是很常见的,可以看看蓝猫家的各种双子星方案,包括很多小型刀片机也都是这种设计,一个机箱和一组电源,里面放多个 CPU 和多块主板。
    Wondertainment
        30
    Wondertainment  
       2020-07-07 21:03:28 +08:00   ❤️ 1
    我是 Manjaro 做 host 系统 , 用 kvm 跑 Windows 做 guest 系统。有两张显卡,其中一张直接通过 pcie-passthrough 分给 windows 。这样两张显卡能分别做两个系统的显示输出。两个系统也是同时运行的。性能的话,3900X, kvm 后 cinebench 的成绩从 7700 降到了 7300,还可以接受。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1181 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 96ms · UTC 18:20 · PVG 02:20 · LAX 10:20 · JFK 13:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.