Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。能够使得开发人员在Linux用C#开发程序。)主持的项目.该项目的目标是创建一系列符合标准ECMA (Ecma-334和Ecma-335)的.Net 工具, 包括C #编译器和共同语言(CL 即 Common Language)执行平台(Platform).与微软的.Net不同, Mono项目不仅可以运行于Windows系统内,还可以运行于Linux, FreeBSD, UNIX, Mac OS X和Solaris。
Mono现由Novell持有双重许可, 这和Qt、Mozilla应用程序套件的情况相似.Mono的C #编译器及其相关工具发布于GNU General Public LICEnse (GPL)之下,其运行时库发布于GNU Lesser General Public License (LGPL)之下,其类库发布于MIT License之下.这些均是开源协议因此Mono是一个开源软件.如果你打算向Mono贡献你的源码,则你须签署一个版权分派给Novell以允许它将这些代码在其它协议下再申请许可,从而允许Novell保留其双重许可的能力来持有Mono的商业协议[1].
微软开发了一个称为共享源码公共语言基础(Shared Source Common Language Infrastructure, Shared Source CLI)的可用于FreeBSD, Windows Mac OS X的和. NET实现版本.微软的共享源码协议并不是开源软件协议,且可能对于社区来说也是不足够的(它明文禁止了对软件的商业用途).我们还可以见到另外一个. NET实现版本, Portable NET项目,该项目与Mono项目有着很多相同的目标.
Mono虚拟机包含一个实时编译引擎,该引擎可用于如下处理器: x86, SPARC, PowerPC, ARM, S390 (32位模式和64位模式), x86-x64, IA64和64位模式的SPARC.该虚拟机可以将代码实时编译或者预先编译到原生代码.对于那些没有列出来的系统,则使用的是代码解释器.
发布于 2016-04-01 00:30:22 | 171 次阅读