將.Net應用移植到Linux上來的Mono工程
最後更新:2017-02-28
來源:互聯網
上載者:User
開放原始碼協會通過Linux軟體開發公司Ximian開始了一個旨在將微軟.Net平台移植到Linux上來的項目。這個叫做Mono工程的項目包括建立一個開發平台允許人們為基於Linux和基於Windows系統的.Net開發應用程式。據Ximian公司的首席技術官員Miguel de Icaza說Mono項目的起因是GNOME社團特別是Ximain公司對於一個改進的開發工具的需要。
但是Mono項目的影響確是更加深遠的,因為這些開發工具是基於CLI(通用語言架構)和微軟提交給歐洲電腦製造協會(ECMA)的C#實現標準的。如果Mono能夠完成基於這些標準建立一套Linux開發工具集的目標的話,開發人員將能夠編寫同時在Windows和Linux上啟動並執行.Net程式,這些程式甚至還可能在其它非Windows的作業系統上運行,比方Unix。
除了實際的開發過程,Mono項目的工具必須在開放原始碼社團的內部完成而不能違反微軟的智慧財產權專利--這實際上意味著開發人員們必須基於標準重新構造這些工具而不能查看微軟的任何原始碼。
Mono項目包括三個核心的部分:一個C#語言的編譯器,一個CLI和一個類庫。 CLI是包含了類載入器的虛擬機器,即時的編譯器,和一個運行時環境的垃圾收集器。CLI這個組件將允許用C#編寫的應用程式能夠在象Linux這樣的非Windows作業系統上運行。這與Java世界中Java虛擬機器能夠讓一個應用程式在不同的作業系統上運行是類似的。
Mono項目的類庫能夠讓應用程式完成核心的諸如XML處理,檔案輸入輸出,和串連網路之類的任務。它將會和微軟的CLI相容(與微軟在.Net framework中發布的東西緊密的配套),還有一點就是將由開放原始碼團體編寫的額外的類庫也將和CLI相容。
Ximian公司的de Icaza希望在年底到達項目的一個裡程碑,這時編譯器將能夠編譯類庫了。圖形化使用者介面組件--建立GUI程式所需的類庫--將在明年中完成。
“我們在這個方面工作的原因是希望升級我們的開發平台來建立我們的Evolution傳統型應用程式,”de Icazo說。Evolution是Ximian公司的電子郵件用戶端及個人和工作群組資訊管理程式。“當我們看見.Net framework的時候,我們覺得這些就是我們將用來開發我們下一代產品要使用的工具,”他說。
Ximian並不將Mono和它自己看作是給Linux開發人員一種途徑在可用的開發工具方面趕上Windows。其實,Linux開發人員將更喜歡用他們目前使用的工具來編寫的編譯應用程式。Ximian 將另一個開放原始碼項目,SharpDevelop看作是用來提供與微軟Visual Studio .Net類似的整合式開發環境的一種途徑。
通過以開放原始碼的方式開發Mono,這個項目包含了許多對開發過程擁有廣泛興趣的人們。雖然Ximian可能希望找一些改進的開發工具來加速它的應用程式的開發過程,但其它的開發人員可能是希望找到能夠讓他們在Windows上編寫程式然後在Linux系統上運行它們的開發工具。
其中的一個大問題是如何避免微軟的智慧財產權保護。“我們避免智慧財產權保護的方法是堅持非研究性的主題並使用現有的技術實現其功能,”de Icaza說。例如,Mono JIT編譯器沒有使用任何先進的JIT編譯器技術。相反Mono的版本是基於老的JIT技術的。
De Icaza還聲稱Mono必須“著眼大處”還不僅僅是去年ECMA規定了些什麼。也就是說,Ximian計劃參與標準的制定過程並建立類庫來提高.Net framework的薄弱之處,比方說電子郵件管理。
據Giga Information Group的副分析師Stacey Quandt稱,微軟不太可能支援Mono因為其授權是與GNU 通用公眾認證為C#的授權和GNU 弱公眾認證為類庫和運行庫的授權聯絡在一起的。
但即使微軟不支援Mono,Mono的存在也證實了微軟對於.Net能夠移植到其它平台的聲明是正確的。
Quandt說面向更廣泛的開發團體是Mono面臨的另一個挑戰。例如IBM和Sun都在Java上花費了巨額的投資,自然也就很難容忍競爭行為。