• Wolf@lemmy.today
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    2 天前

    Well it does seem to be a somewhat confusing subject, so forgive me for getting it wrong. I must have misunderstood or misremembered the information I read when setting up the VM 10 months ago. As I said, I have very little experience with them and was honestly just asking if it’s not almost as good. I wasn’t trying to ‘make it out’ to be ‘not janky’.

    According to Wiki, KVM " is a … virtualization module in the Linux kernel that allows the kernel to function as a hypervisor."

    I wasn’t aware that there was a distinction between a Hypervisor and a ‘Type-1’ Hypervisor, but now I know so thank you for clearing that up for me.

    Without GPU pass through you aren’t going to get nearly the graphics performance for something like gaming.

    According to this wiki, it seems like GPU passthrough is possible with KVM if your system supports IOMMU, mine does. But it looks like you also need a separate GPU to do that, so that answers my question about is it nearly as good as dual booting.

    Every game I have attempted to run has just worked and they seem to run just as good as they did in Windows, so I guess I’m lucky I don’t need to really worry about dual booting or VM’s. I was just kind of wondering if it would work if I did need it, since that seemed like it would be a lot simpler than booting into a different operating system.

    • areyouevenreal@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      7 小时前

      Yes I know GPU passthrough is possible. Almost no one does it as consumer GPUs don’t normally don’t support the virtualization technologies that allow multiple OSes to use one GPU. It’s an enterprise feature mostly. There are projects like VirGL that work with KVM and QEMU, but they don’t support Windows last I checked, and are imperfect even on Linux guests. I think only Apple Silicon and Intel integrated graphics support the right technologies you would need. Buying a second GPU is a good option, although that has it’s own complexities and is obviously more expensive. Most modern consumer platforms don’t have enough PCIe lanes to give two GPUs a full x16 bandwidth. There is a technology in Windows called GPU paravirtualization to make this happen with Hyper-V, but you have to be using a Hyper-V host, not a Linux based one. It’s also quite finicky to make that work.

      Out of interest what games are you running that don’t need GPU performance? Basically any modern 3D game needs a GPU to run well. Obviously 2D games might not, though even that varies.

      All of the above is far more complex than setting up a dual boot. A dual boot can be as simple as having two different drives and picking which to boot from in the UEFI or BIOS firmware. I don’t understand why you think that would be less complicated than a high tech solution like virtualization.

      There are basically three types of virtualization in classical thinking. Type 1, Type 2, and Type 3. KVM is none of these. With Type 1 there is no operating system running bare metal, instead only the hypervisor itself runs as bare metal. Everything else, including the management tools for the hypervisor, run in guest OSes. Hyper-V, ESXi, and anything using Xen are great examples. Type 2 is where you have virtualization software running inside a normal OS. KVM is special because it’s a hypervisor running in the same CPU ring and privilege level as the full Linux kernel. It’s like if a Type-1 hypervisor ran at the same time as a normal OS in the same space. This means it behaves somewhat like a Type-1 and somewhat like a Type-2. It’s bare metal just like a Type-1 would be, but has to share resources with Linux processes and other parts of the Linux kernel. You could kind of say it’s a type 1.5. It’s not the only hypervisor these days to use that approach, and the Type 1, 2, 3 terminology kind of breaks down in modern usage anyway. Modern virtualization has gotten a bit too complex for simplifications like that to always apply. Type 3 had to be added to account for containers for example. This ends up getting weird when you have modern Linux systems that get to be a Type-1.5 hypervisor while also being a Type 3 at the same time.

      • Wolf@lemmy.today
        link
        fedilink
        arrow-up
        1
        ·
        5 小时前

        Out of interest what games are you running that don’t need GPU performance? Basically any modern 3D game needs a GPU to run well.

        I think you misunderstood me. I said “Every game I have attempted to run has just worked and they seem to run just as good as they did in Windows, so I guess I’m lucky I don’t need to really worry about dual booting or VM’s

        The games I play do need GPU performance. Cyberpunk 2077, Red Dead Redemption 2, No Mans Sky, The Outer Worlds etc. I’m not running them in a VM, I’m running them through Steam or Heroic Games Launcher.

        I don’t understand why you think that would be less complicated than a high tech solution like virtualization.

        Because once you have everything set up properly, all you would need to do to play a game that you couldn’t play in Linux is fire up the VM and play it. In a dual boot situation you would have to reboot your computer into a whole different OS and then play the game. It wouldn’t be a massive difference, but it would be more convenient. Plus it would be contained so there would be no way for it to mess with your bootloader or whatever. Clearly it’s more complicated that I had originally thought.

        KVM is special because it’s a hypervisor running in the same CPU ring and privilege level as the full Linux kernel. It’s like if a Type-1 hypervisor ran at the same time as a normal OS in the same space. This means it behaves somewhat like a Type-1 and somewhat like a Type-2. It’s bare metal just like a Type-1 would be, but has to share resources with Linux processes and other parts of the Linux kernel.

        Ok, now you got me curious. What is the distinction between that and how I originally described it?

        From what I understood, it runs on ‘Bare Metal’ which means that it theoretically should preform just as well as if you booted into it, with the only overhead being the (Linux OS) which is minimal.”

        From my admittedly laymen understanding, it kinda seems like what you said and how I described it are pretty much the same thing.

        • areyouevenreal@lemm.ee
          link
          fedilink
          arrow-up
          1
          ·
          3 小时前

          An OS or a hypervisor can run in bare metal. If I have Windows running in KVM, KVM is running bare metal but Windows isn’t. Ditto with ESXi or Hyper-V. In the case of your setup Linux and KVM are both bare metal, but Windows isn’t. KVM, ESXi, Xen are always running a privilege level above their guests. Does this make sense?

          The difference between KVM and the more conventional Type 1 hypervisors is that a conventional type 1 can’t run along side a normal kernel. So with Linux and KVM both Linux and KVM are baremetal. With Linux and Xen, only Xen is baremetal, and Linux is a guest. Likewise if you have something like Hyper-V or WSL2 on Windows, then Windows is actually running as a guest OS, as is Linux or any other guests you have. Only Hyper-V is running natively. Some people still consider KVM a Type 1, since it is running bare metal itself, but you can see how it’s different to the model other Type 1 hypervisors use. It’s a naming issue in that regard.

          It might help to read up more on virtualization technology. I am sure someone can explain this stuff better than me.