CoLinux(Cooperative Linux 的縮寫)是第一種免費使用和開源的解決方案,它讓Linux更好的運行在Microsoft Windows 本機系統(tǒng)下?梢砸龑(dǎo)啟動LINUX鏡像系統(tǒng),也可啟動本地的LINUX系統(tǒng),速度比VMWARE快很多。
通常的, colinux是Linux內(nèi)核使自己友好的和其它操作系統(tǒng)共同運行在一臺機器上的一條通道。例如,我們不需要第三方的商業(yè)虛擬機軟件(例如vmware)就可以自由的在windows 2000/xp/vista/7上運行Linux,這是不使用虛擬機軟件的最佳方式。
CoLinux(Cooperative Linux)的簡稱,是一個虛擬化工具,但是和VMware、VirtualBox、Qemu等不同,它是標(biāo)準(zhǔn) Linux 內(nèi)核的一個端口。換句話說,它就是一個 Linux 內(nèi)核,它經(jīng)過修改,以與另一個操作系統(tǒng)協(xié)作運行。主機操作系統(tǒng)(Windows 或 Linux)控制操作系統(tǒng)的物理資源,而訪客操作系統(tǒng)獲得硬件的虛擬抽象。它并不是模擬一臺電腦,而是通過對linux內(nèi)核的改造,使linux可以直接 運行在windows下,使用windows的硬件資源,所以它的速度特別快,就像在真實機器上運行一樣。
CoLinux 的優(yōu)點:
它是使用和試驗 Linux 的一種好方法。與 Cygwin 相似,它允許在Windows操作系統(tǒng)上開發(fā)和執(zhí)行 Linux 應(yīng)用程序。還可以用apt-get安裝、更新或刪除應(yīng)用程序,從而維護Linux操作系統(tǒng)。
與 Cygwin 不同的是,在 coLinux 上執(zhí)行 Linux 應(yīng)用程序不需要重新構(gòu)建。從這個角度來說,coLinux 是與 Windows 操作系統(tǒng)協(xié)作的真正的 Linux 操作系統(tǒng)。
它另一個令人感興趣的優(yōu)點是可移植性。可以在一個Windows主機上建立一個它的發(fā)行版,并在根文件系統(tǒng)中安裝一套定制的應(yīng)用程序。然后,可以將根文件 系統(tǒng)轉(zhuǎn)移到另一個主機,并重新啟動。這樣就有了一個可移動的開發(fā)平臺,壓縮后的根文件系統(tǒng)完全可以放在一個標(biāo)準(zhǔn) USB 記憶棒中。
最后,它的速度很快,因為它本質(zhì)上是在本機硬件中運行的。
主要缺點:
是它有可能導(dǎo)致整個機器崩潰(包括所有進行協(xié)作的操作系統(tǒng)),因為訪客操作系統(tǒng)以特權(quán)模式在主機內(nèi)核中運行。它的正常操作還依賴于外部軟件(窗口和連網(wǎng)支持)。除此之外,它的安裝和配置非常容易。在我使用它期間,沒有遇到過崩潰。
coLinux怎么用?
coLinux 是標(biāo)準(zhǔn) Linux 內(nèi)核的一個端口。換句話說,coLinux 就是一個 Linux 內(nèi)核,它經(jīng)過修改,以與另一個操作系統(tǒng)協(xié)作運行。主機操作系統(tǒng)(Windows 或 Linux)控制操作系統(tǒng)的物理資源,而訪客(guest)操作系統(tǒng)(coLinux)獲得硬件的虛擬抽象。主機操作系統(tǒng)必須提供以特權(quán)級別(ring 0)執(zhí)行驅(qū)動程序的方法,并提供分配內(nèi)存的方法(見圖 3)。
coLinux 作為主機操作系統(tǒng)的一個進程執(zhí)行
coLinux 的根文件系統(tǒng)是主機操作系統(tǒng)中的一個常規(guī)文件。對于 Windows,它只是一個常規(guī)文件;但是對于 coLinux,它是一個可讀可寫的 ext3 文件系統(tǒng)。
Linux 內(nèi)核所需的其他特性(比如連網(wǎng)或視頻訪問)通過外部代理來實現(xiàn)。coLinux 可以通過 TUN/TAP 驅(qū)動程序訪問連網(wǎng)特性(在下面的 “連 網(wǎng)” 一節(jié)中討論)。簡單地說,這個驅(qū)動程序提供對以太網(wǎng)設(shè)備的用戶空間訪問,這樣就可以發(fā)送和接收數(shù)據(jù)包。對顯示器的訪問也要通過代理。X Window System 是一種協(xié)議,按照這種協(xié)議在主機之間發(fā)送視頻輸出。因此,通過在主機操作系統(tǒng)上使用 X Window System 服務(wù)器,可以將視頻輸出轉(zhuǎn)發(fā)到可用的 X 服務(wù)器。
下面,我們就來安裝 coLinux 并配置連網(wǎng)特性和視頻顯示。
安裝 coLinux 非常容易。這包括幾個步驟(具體取決于您的需要),但是這些步驟都很簡單,而且在我的 Windows XP 機器上安裝時沒有出現(xiàn)任何問題。本節(jié)討論如何安裝 coLinux 并啟用連網(wǎng)等服務(wù)。
第一步是下載 coLinux 發(fā)布版。訪問 http://www.colinux.org 并在左側(cè)欄中選擇 Downloads。如果瀏覽器沒有進入 SourceForge,那么選擇頁面上的鏈接。頁面的中間有 coLinux-stable 包的鏈接。下載 coLinux 可執(zhí)行文件(至編寫本文時,最新版本是 coLinux-0.6.4.exe)。coLinux 的 0.6.4 版本是 2.6.11 Linux 內(nèi)核。完成下載之后,雙擊這個文件開始安裝。
在接受許可協(xié)議之后,詢問您希望安裝哪些組件。保持這些設(shè)置不變(應(yīng)該選擇了所有組件),包括下載根文件系統(tǒng)映像。為了使 后面的操作更容易,將安裝 coLinux 的目標(biāo)文件夾改為 c:\colinux\,因為從配置文件的角度來看,colinux 是標(biāo)準(zhǔn)的安裝子目錄。
當(dāng)安裝程序要求選擇根文件系統(tǒng)映像時,選擇 Debian 發(fā)布版,因為它是最小的發(fā)布版,解壓后只有 1GB。選擇 Install 來執(zhí)行安裝和根文件系統(tǒng)下載。
安裝完成之后,還有工作要做。下一步是在安裝子目錄中打開一個文件夾,以便對根文件系統(tǒng)進行解壓。
coLinux 的 README 文件包含許多關(guān)于其他安裝選項的信息。這個文件可以在安裝子目錄(c:\colinux)中找到。這里有一個以 .bz2 結(jié)尾的怪名字的文件。將這個文件重命名為 root_fs(這是配置中默認(rèn)的根文件系統(tǒng)文件)。
現(xiàn)在,coLinux 的安裝基本完成了。可以用以下命令在 Windows XP 中啟動 coLinux 守護進程(通過命令提示窗口執(zhí)行):
$ colinux-daemon.exe -c default.colinux.xml
在執(zhí)行 colinux-daemon 之后,顯示引導(dǎo)窗口(見圖 4)。這里提供與傳統(tǒng) Linux 引導(dǎo)過程中相同的引導(dǎo)信息。注意,coLinux 的引導(dǎo)非常快。
圖 4. coLinux 引導(dǎo)窗口
還會顯示一個控制臺窗口(見圖 5),它連接到 colinux-daemon。在這個窗口 中,可以登錄 coLinux 并與 shell 交互。默認(rèn)的用戶名和密碼是 root/root。
圖 5. coLinux 虛擬控制臺(shell)
在圖 5 中可以看到,coLinux 控制臺由兩個部分組成:傳統(tǒng)的控制臺和虛擬控制臺,后者提供關(guān)于監(jiān)視器的信息。
連網(wǎng)
從 Linux 的角度來看,當(dāng)安裝完成時,coLinux 的連網(wǎng)支持已經(jīng)可用了。在安裝過程中已經(jīng)裝載了 TAP 驅(qū)動程序。TAP 驅(qū)動程序是一個到主機操作系統(tǒng)所管理的以太網(wǎng)設(shè)備的用戶空間連接。TAP 驅(qū)動程序使訪客操作系統(tǒng)能夠?qū)⒃家蕴W(wǎng)幀寫到一個虛擬以太網(wǎng)設(shè)備(用戶空間的擴展)。然后,用戶空間中的虛擬以太網(wǎng)設(shè)備將以太網(wǎng)幀傳遞給主機操作系統(tǒng)中 真實的以太網(wǎng)設(shè)備。讀取的過程正好相反。注意,TAP 驅(qū)動程序傳遞的是以太網(wǎng)幀,而 TUP 驅(qū)動程序處理的是 Internet Protocol(IP)幀。
為了支持 TAP 驅(qū)動程序,主機操作系統(tǒng)必須共享可用的以太網(wǎng)設(shè)備。為了在 Windows XP 中啟用共享,從 Control Panel 打開 Network Connections 面板。選擇活動的局域連接,然后打開屬性。選擇 Advanced 選項卡,選中復(fù)選框允許其他網(wǎng)絡(luò)用戶通過此計算機的互聯(lián)網(wǎng)連接來連接(見圖 6)。
圖 6. 啟用網(wǎng)絡(luò)設(shè)備共享的局域連接屬性
啟用網(wǎng)絡(luò)共享之后,可以啟動 coLinux 并像往常一樣使用網(wǎng)絡(luò)。圖 7 顯示執(zhí)行 ping 命令的結(jié)果,這說明網(wǎng)絡(luò)是正常的。
圖 7. 通過使用 TAP 驅(qū)動程序,使用共享網(wǎng)絡(luò)設(shè)備的過程對于 coLinux 是透明的
只需稍加配置,coLinux 就可以提供連網(wǎng)特性。關(guān)于用 TUN/TAP 進行連網(wǎng)的更多信息,請參閱 參 考資料 一節(jié)。