Are there any discrepancies between the resources an OS uses when running in a virtual machine vs being ran directly?

vortexal@lemmy.ml to Linux@lemmy.ml – 47 points –

I recently found out about a Linux Distro named Q4OS and I wanted to test out their claim that it only requires 256 MB of ram when using the trinity desktop environment. However, when I used the live cd in virt-manager with 256 MB or ram, it just kernel panicked at boot. So I then tried it with 512 MB of ram. In addition to some issues that are not present when you are using at least 1 GB of ram, such as "sudo apt update" causing the entire VM to become unresponsive, I noticed that it seemed to actually use anywhere between 290 MB to 370 MB of ram when the only thing running was the process viewer (which is htop).

Obviously, this is still very low for a modern Linux distro but I was wondering how accurate VMs are for testing ram usage.

And, yes I know that it would be pretty much useless on a PC that only had 256 MB of ram even if it did work. I'm actually checking the ram usage because there is a possibility that I may be using a very old computer of mine that only has 1 GB of ram at some point in the future. So I'm just testing it and eventually other distros out to to see which one I'm going to end up using (assuming I do actually end up even using that computer).

Edit: I just tried the 32-bit version in virt-manager and htop stated it was only using 232 MB of ram, which means that their claim was right and that I might have been using the wrong version.

Edit 2: I just tried installing the 64-bit version in virt-manager and htop stated that it was using about 350 MB of ram, so I don't know if installing it actually made a difference.

30

A VM should be an almost perfect representation. But what can vary slightly is the kernel drivers used for hardware.

You need more ram for the live system. You will have the same results with a physical CD

I just installed this myself ( Trinity Desktop 32 bit ). What a weird and wonderful mix of old and new.

Running htop in konsole after install reported 245 MB of memory used. So, less than 256 MB confirmed.

There could also be differences in which hardware drivers are loaded and operating. In a VM, the graphical environment probably uses software rendering, which is also expected to take away some system memory of you didn't pass through a gpu, but maybe that's accounted differently.

On a somewhat unrelated note: I have an old Iomega arm board running an old version of Debian and OpenMediaVault, it only has 256 MB RAM, and only uses about 30% of that while streaming DLNA audio. Linux can be super minimal

1 more...

To answer the question of discrepancies, yes. There are actually different types of virtualisation techniques that offer different levels of interaction between the VM and the hardware (negating the use of additional emulation and processing, etc.). Look up paravirtualisation.

I am not familiar with Q4OS but I notice that it is available with both KDE Plasma and Trinity as well as in 32 bit and 64 bit additions.

The lightest weight version is most likely Trinity 32 bit. Is that what you were testing?

I may try it myself at some point. Looks interesting.

I was actually testing the trinity 64-bit version because it was the only version that had a live cd. I actually just downloaded the 32-bit version and I'm about to try it out.

Are you conflating a claim that the system requires less than 256mb or ram with a claim that it can run on hardware with only 256mb of ram?

Maybe those two claims are not the same?

On their website, it states that the minimum requirements for the OS are 256 MB, that's what I was going off of. I even mentioned in my post that even if it was installable on a computer with 256 MB of ram that it would be pretty much useless.

Also, I just tested the 32-bit version and, like what another user stated, it does use less than 256 MB of ram, which means that their claim is right.

I use Bazzite, AFAIK Steam OS runs inside a container, the performance is amazing. I've read the same thing from people who do VFIO GPU passthrough to a Windows VM. If you use kernel based virtualization, there should be no difference.

Containers aren't virtualization.

What do you mean?

Docker, e.g. containers, are actually a process isolation system similar but not exactly the same as a chroot if you are familiar with that. It's an isolation of resources, but not so hardware isolated like a full fat VM. For example, adding a GPU to a VM requires handing over the full PCIe hardware interface, with one interface per VM. Where as containers can just bind mount the device files in /dev and multiple containers can share the same GPU hardware. Containers aren't virtualizating anything, just isolating processes from each other in a standardized way.

A container is just an environment where it appears to any program running within it that it has full access to the computer, while in reality it's "jailed" and isolated from the rest of the system. The OS resources are shared with the container, instead of the hardware resources as in a virtual machine. There's no hardware being emulated. It's a beefed up version of a chroot.

SteamOS doesn't run inside a container, it's just an immutable image based system.