so all the guest os share the same kernel with host,   that's the root cause.<br><br>thank you!<br><br><div class="gmail_quote">在 2012年3月6日 上午11:45,Fajar A. Nugraha <span dir="ltr"><<a href="mailto:list@fajar.net">list@fajar.net</a>></span>写道:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">2012/3/6 陈竞 <<a href="mailto:cj.magina@gmail.com">cj.magina@gmail.com</a>>:<br>
<div class="im">> I see that we can start a ubuntu in a lxc. So when ubuntu do block io<br>
> operation, what does it really do, since it does not simulate hardware?<br>
<br>
</div>All "OS" running in lxc containers shares the same kernel with the<br>
host. The kernel performs the necessary i/o operation.<br>
<br>
>From the host perspective, the io operation is treated just like any<br>
normal io operation from a normal running process.<br>
<div class="im"><br>
> And what the real difference between kvm and lxc, since we can start a os in<br>
> lxc?<br>
<br>
</div>I like to think of lxc as chroot with steroids. The host shares the<br>
same kernel and part of the filesystem with the guest (or rather, the<br>
host sees all guests' filesystem). It's different from normal chroot<br>
in:<br>
- guests can only see their own processes<br>
- guests has it's own ip address, can be on different logical subnet<br>
from the host<br>
- guests has some additional limits (e.g. memory, cpu share) imposed on them<br>
<br>
kvm is a full-blown virtualization setup, where each guest OS can have<br>
its own kernel, or even running non-linux OS (e.g. windows).<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Fajar<br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br>陈竞,中科院计算技术研究所,高性能计算机中心<br>Jing Chen <a href="http://HPCC.ICT.AC">HPCC.ICT.AC</a> China<br>