Mono跨平臺的 .NET 運(yùn)行環(huán)境
Mono 是一個(gè)由 Novell 公司主持的項(xiàng)目。該項(xiàng)目的目標(biāo)是創(chuàng)建一系列符合ECMA 標(biāo)準(zhǔn)(Ecma-334 和Ecma-335)的.NET 工具,包括C# 編譯器和共通語言執(zhí)行平臺。與微軟的.NET Framework 不同,Mono 項(xiàng)目不僅可以運(yùn)行于Windows 系統(tǒng)上,還可以運(yùn)行于Linux,F(xiàn)reeBSD,Unix,Mac OS X 和Solaris。
Mono 的開發(fā)工具 MonoDevelop
微軟開發(fā)了一個(gè)稱為共享源碼公共語言基礎(chǔ)(Shared Source Common Language Infrastructure,Shared Source CLI)的可用于 FreeBSD,Windows 和 Mac OS X 的 .NET 實(shí)現(xiàn)版本。微軟的共享源碼協(xié)議并不是開源軟件協(xié)議,且可能對于社區(qū)來說也是不足夠的(它明文禁止了對軟件的商業(yè)用途)。我們還可以見到另外一個(gè) .NET 實(shí)現(xiàn)版本,Portable.NET 項(xiàng)目,該項(xiàng)目與 Mono 項(xiàng)目有著很多相同的目標(biāo)。
Mono 虛擬機(jī)包含一個(gè)實(shí)時(shí)編譯引擎,該引擎可用于如下處理器:x86,SPARC,PowerPC,ARM,S390(32位模式和64位模式),x86-64,IA64 和64位模式的 SPARC。該虛擬機(jī)可以將代碼實(shí)時(shí)編譯或者預(yù)先編譯到原生代碼。對于那些沒有列出來的系統(tǒng),則使用的是代碼解釋器。
下圖是MONO的體系結(jié)構(gòu)圖
