From: blueparty on
Hi !

I need to put WindowsXP as a VirtualBox guest on Linux host for
demonstration purposes. Everything is supposed to run on an older
notebook, not too comfortable with memory. On the other hand, performance
isn't critical.

I'd like to understand some things. First, except for some network kernel
drivers, VirtualBox is userland process, is that right ? So guest OS has
no way to find out if it is using physical memory or not, it runs in
virtual memory, like any other userland process ?

So, in theory, I could assign any amount of memory to VM running guest
OS, as long as it does not exceed total virtual memory of the host
system ? Remember, performance is not critical.

In that situation, paging file on WinXP doesn't make much sense, is that
right. It should be set to minimum, and if guest OS swaps, it should swap
into host OS.

So, the conclusion is to assign as much memory as possible to VM, as long
as it does not obstruct host OS, and keep guest OS paging file at
minimum. Is that good approach, or am I missing something ?

TIA
From: The Natural Philosopher on
blueparty wrote:
> Hi !
>
> I need to put WindowsXP as a VirtualBox guest on Linux host for
> demonstration purposes. Everything is supposed to run on an older
> notebook, not too comfortable with memory. On the other hand, performance
> isn't critical.
>
> I'd like to understand some things. First, except for some network kernel
> drivers, VirtualBox is userland process, is that right ?

yes, but It has kernel drivers.

So guest OS has
> no way to find out if it is using physical memory or not, it runs in
> virtual memory, like any other userland process ?
>
> So, in theory, I could assign any amount of memory to VM running guest
> OS, as long as it does not exceed total virtual memory of the host
> system ? Remember, performance is not critical.
>
No, it assigns real memory.

> In that situation, paging file on WinXP doesn't make much sense, is that
> right. It should be set to minimum, and if guest OS swaps, it should swap
> into host OS.
>
It swaps to disk I can assure you.

> So, the conclusion is to assign as much memory as possible to VM, as long
> as it does not obstruct host OS, and keep guest OS paging file at
> minimum. Is that good approach, or am I missing something ?
>

You are missing something.

The moment I fire up virtual box, despite it being a userland process,
real RAM is *irrevocably* assigned to it.

I assume it is via its kernel level drivers.

> TIA
From: Stefan Patric on
On Wed, 24 Mar 2010 01:03:49 +0000, blueparty wrote:

> I need to put WindowsXP as a VirtualBox guest on Linux host for
> demonstration purposes. Everything is supposed to run on an older
> notebook, not too comfortable with memory. On the other hand,
> performance isn't critical.
>
> I'd like to understand some things. First, except for some network
> kernel drivers, VirtualBox is userland process, is that right ? So guest
> OS has no way to find out if it is using physical memory or not, it runs
> in virtual memory, like any other userland process ?

You mean User Space? The VM process runs in physical RAM just like any
other process or application, and uses actual host physical RAM that
becomes unavailable to the host while the VM is running. The amount of
RAM that is allocated to the VM is set by the user.

The guest OS has no idea it is running in a virtual machine. Most all
hardware the guest OS "sees", except for the CPU, RAM, and peripherals,
are virtual. Guests and host can share common real hard drive partitions
to share data or they can be networked together just like any set of
physical computers.


> So, in theory, I could assign any amount of memory to VM running guest
> OS, as long as it does not exceed total virtual memory of the host
> system ? Remember, performance is not critical.

No. You can't assign more physical RAM to the VM than the host system
has. Usually a lot less: the host must have enough RAM for it to run.

The guest OS can have virtual RAM (in addition to the necessary real
RAM), too, just like a real machine. This virtual RAM is usually a
virtual partition or virtual file on the guest OS' virtual hard drive
which is usually a file in a directory on the host's hard drive.

> In that situation, paging file on WinXP doesn't make much sense, is that
> right. It should be set to minimum, and if guest OS swaps, it should
> swap into host OS.

No. If the guest OS "hits" the swap, it will be to its own virtual swap
not the host's.

> So, the conclusion is to assign as much memory as possible to VM, as
> long as it does not obstruct host OS, and keep guest OS paging file at
> minimum. Is that good approach, or am I missing something ?

You'll need to allocate as much real RAM to the guest as you would if the
guest were running on an actual PC.

I suggest you read the documentation that VirtualBox provides. It's very
thorough, gives examples, and should answer all your questions as well as
correct your numerous misconceptions about VirtualBox's VMs and how they
operate.

Stef