Cooperative Linux

Cooperative Linux 簡稱 coLinux,這個軟件可以讓Windows 內核Linux內核同時執行在一台機器上。[3] coLinux 指協同運作式虛擬機器(CVM)。與傳統的虛擬機器相反, 協同運作式虛擬機器共用宿主機器已有的資源。傳統的虛擬機器技術,宿主機資源需先被虛擬化,然後再給虛擬系統使用。不同於傳統虛擬技術,coLinux的客體機對宿主機資源具有完全的控制權。在傳統的虛擬技術里,客體機對實體機的訪問一直處於某種未授權狀態。

Cooperative Linux
開發者community
目前版本0.7.9 [1](2011年4月9日,​13年前​(2011-04-09 [1]
預覽版本-/+ [2]
作業系統Microsoft Windows
類型Platform virtualization
許可協定GNU General Public License
網站www.colinux.org

概覽

 
Synaptic and nautilus running on Windows

這裏「協同運作」的意思是兩者可以並行的工作。實際上,coLinux是將兩個不同的作業系統內核變成了兩個大協程。每個內核都會有其自己的CPU環境以及主記憶體空間,並且自己決定什麼時候將控制權交給另一內核。 雖然,理論上,兩個內核理論上都能夠完全訪問硬件資源,但是, 讓兩個不同的作業系統內核同時訪問相同硬件,這並不是現代電腦硬件的計目標。因此,需由宿主機的內核來主控真實硬件,而客體機內核通過特別的驅動與宿主機相通訊,並為客體機提供各種重要的裝置的介面。任何一種允許coLinux的便捷驅動執行在CPLO模式(特權級別 ring 0) 並且允許其分配主記憶體的作業系統都可以作為coLinux的宿主機。[4]

歷史

Dan Aloni早期的開發基於一個叫User-mode Linux的類似系統。他於2004年6月25日開始coLinux的正式開發。[5]在2004年7月, 他向Linux Symposium 遞交相關論文[6],原始碼在GNU通用公共許可證下釋出。然後開發者們開始貢獻各種修補程式及添加代碼。

比較

coLinux與x86平台上的完全虛擬化有明顯的不同,一般意義上的虛擬化程式並沒有像宿主機內核類似的特權。與傳統技術不同, coLinux通過執行一個修改過的Linux內核來與宿主機的NT內核協同運作式地共用資源,防止兩者陷入競爭危害

發行版本

現在,大多數的變更修補程式都是針對i386平台這一分支的,這也是目前coLinux唯一支援的架構。其它的變更主要在虛擬驅動程式上,比如cobd(塊裝置),conet(網絡)以及cocon(控制台)。在i386分支上的這些變更代碼大部分與初始化及設置有關。與正式的i386 Linux內核儘量保持一致, 這是coLinux內核設計的一個目標,因此,所有的變更必需儘可能地保持本地化與最小化。coLinux軟件在Windows 2000Windows XP的機器內安裝執行了一個Linux內核以及一個虛擬網絡裝置,並不像VMware一樣使用一個虛擬的機器。DebianUbuntuFedoraGentoo這些都是非常受coLinux用戶歡迎的Linux發行版本。由於虛擬硬件不同尋常的結構,在coLinux下安裝一個Linux發行版本似乎有點困難。因此用戶通常使用一個已經安裝好Linux系統的分區,或者使用官方預先準備的系統鏡像檔案。這些鏡像有多種生成方法。像是從正常的作業系統提取,或是, 想方設法安裝在特殊的硬件上, 又或者,通過包管理器手動的構建安裝套件,也可以是簡單的利用yumapt這個的工具來升級已有鏡像系統。還有一個簡單的方法也可以得到一個最新的系統鏡像,首先,利用QEMU來安裝所需Linux系統, 然後,通過去掉原鏡像的頭63512位元組塊的數據達成「轉換」鏡像的目的。 這個方法在coLinux的wiki而面有論述。coLinux並不需要訪問本地的顯示裝置,當然,這也使得X Window系統 或者 X.Org Server無法在coLinux下直接執行,但是你還是可以在Windows下裝個Cygwin/X或者Xming一類的工具,使你可使用coLinux的KDE(或GNOME)及其它幾乎任何的Linux的程式。這些的圖形介面的問題在coLinux的洐生版andLinuxTopologiLinux里都得到的解決。andLinux基於Ubuntu, TopologiLinux基於Slackware

硬件仿真

基於TAPPCAPNDISSLiRP的乙太網路。

局限

  • 不支援64位元Windows或Linux(這樣就無法使用超過4GB的主記憶體), 但社區已經在開發相關版本。[7]
  • 不支援多處理器(對稱多處理),Linux 程式和底層內核都只能使用一個 CPU。[8]

參見

參考

  1. ^ 1.0 1.1 存档副本. [2013-06-06]. (原始內容存檔於2018-06-09). 
  2. ^ 存档副本. [2013-06-06]. (原始內容存檔於2006-09-24). 
  3. ^ coLinux main website. [2013-06-06]. (原始內容存檔於2018-05-19). 
  4. ^ http://colinux.org/頁面存檔備份,存於互聯網檔案館) coLinux main page
  5. ^ Dan Aloni announces Cooperative Linux. [2013-06-06]. (原始內容存檔於2012-02-07). 
  6. ^ Dan Aloni paper presented July 2004 at Linux Symposium (PDF). [2013-06-06]. (原始內容 (PDF)存檔於2018-09-30). 
  7. ^ 64 bit development information and resources. [2014-04-07]. (原始內容存檔於2011-08-09). 
  8. ^ 存档副本. [2014-04-07]. (原始內容存檔於2013-09-06). 

外部連結