How does kvm achieve an 'advanced' process separation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey guys,

That might be a dumb question, but currently I find myself unable to
clearly explain that to others. As we all know how CPU and memory is
virtualised, and how memory address space is translated using the
shadow page table or EPT,  that creates each VM an individual running
space. However, as each VM process is essentially an Linux process,
how are they unable to do IPC among them?

I tried to answer that question, but I was not confident about my explanation.

Here's what I thought about.

First, VMM like Xen or KVM supports virtualised OSes (paravirtualised
or hardware-assisted virtualised). OS provides IPC mechanism but
itself cannot use it to communicate with another OS. Although they run
in guest machines which are essentially host's processes , they still
cannot do IPC with others.

Second, each VM process runs in an individual virtualised platform,
it's the only OS running dominantly on its own virtualised resources,
so it's unable to be aware of others.
(But as each VM process has its PID,  their processes have the
potentials to do IPC if another one's PID is notified? )

Finally, the question can be described as,  how does KVM enhance the
process isolation to prevent those VM processes to IPC with each
other?

I also notice that KVM seems to be benefited from cgroups, is that
contributing to the isolation?

I hope someone could give me a perfect answer.  However, any useful
reply is appreciated.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux