在考虑 GNU/Linux 和 Microsoft Windows 时,协作可能是最后考虑的问题,但这正是 coLinux 内核的专长。对此没有信心吗?那就跳到 “coLinux 的优点” 一节。
coLinux 是 Linux 操作系统的一个端口,它在 Microsoft 操作系统中作为一个进程执行。两种操作系统通过将中央处理单元(CPU)的控制权转让给彼此而协作,如图 1 所示。
图 1. Microsoft Windows 和 Linux 在 coLinux 中协作
通过使用内核驱动程序,还可以共享网络接口等物理资源。后面会深入讨论这个问题。首先,我们来看看虚拟化的含义。
虚拟化
虚拟化领域本文主要关注一种平台虚拟化的协作解决方案,但是虚拟化这个词也应用于其他技术。例如: 在存储方面,可以将许多磁盘虚拟化,让它们看起来像一个存储池,这样就可以按需分配存储空间。 还可以对网络进行虚拟化,但是这常常称为 分区(zoning)。 OS 虚拟化,这是一种比较简单的虚拟化形式,它对一个操作系统上运行的服务器进行虚拟化。
虚拟化(Virtualization)是一个被滥用的词汇。在本文的上下文中,我指的是对平台进行虚拟化。对平台(或硬件)进行虚拟化意味着,硬件从物理平台抽象成一个逻辑平台集合,操作系统可以在这个逻辑平台集合上运行。按照最简单的意义,这意味着可以在同一硬件平台上运行(相同或不同类型的)多个操作系统。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/linux/)提供虚拟化的系统元素常常被称为虚拟机监视器或管理器(hypervisor)。每个操作系统都使用自己的虚拟机,虚拟机与管理器协作,从而决定对物理硬件的访问(见图 2)。
图 2. 管理器决定对物理硬件的访问
与操作系统相似,可用的虚拟化方法多种多样。关于虚拟化的更多信息,请参见 参考资料 一节。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/linux/)coLinux
coLinux 是标准 Linux 内核的一个端口。换句话说,coLinux 就是一个 Linux 内核,它经过修改,以与另一个操作系统协作运行。主机操作系统(Windows 或 Linux)控制操作系统的物理资源,而访客(guest)操作系统(coLinux)获得硬件的虚拟抽象。主机操作系统必须提供以特权级别(ring 0)执行驱动程序的方法,并提供分配内存的方法(见图 3)。
图 3. coLinux 作为主机操作系统的一个进程执行
coLinux 的根文件系统是主机操作系统中的一个常规文件。对于 Windows,它只是一个常规文件;但是对于 coLinux,它是一个可读可写的 ext3 文件系统。
[1] [2] [3] [4]