跳至內容

Cooperative Linux

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
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

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

概覽

[編輯]
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). 

外部連結

[編輯]