跨平台的.NET运行环境-Mono
2014-08-17 07:08:49 阿炯

Mono 是一个由Novell公司主持的项目。其目标是创建一系列符合ECMA 标准(Ecma-334 和Ecma-335)的.NET 工具,包括C#编译器和共通语言执行平台。与微软的.NET Framework 不同,Mono 项目不仅可以运行于Windows 系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X 和Solaris。采用GPL/LGPL/MIT授权协议。


Cross platform, open source .NET framework

Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime. A growing family of solutions and an active and enthusiastic contributing community is helping position Mono to become the leading choice for development of cross platform applications.

Mono 的开发工具 MonoDevelop

微软开发了一个称为共享源码公共语言基础(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-64、IA64 和64位模式的 SPARC。该虚拟机可以将代码实时编译或者预先编译到原生代码,对于那些没有列出来的系统,则使用的是代码解释器。

下图是MONO的体系结构图


Mono 改用 MIT 开源许可证

在2016年4月中旬 Mono 项目的官方博客上,Miguel de Icaza 宣布 Mono 运行时项目的许可证由原来的双协议 (LGPLv2 和专属许可) 改为 MIT 许可证。而 Mono 编译器及其类库已经是使用 MIT 许可证。此举移除了对 C# 和 .NET 在应用开发上的障碍,使得可以方便用于各种开发场景,包括嵌入式应用,以及在游戏和其他应用中嵌入 Mono 作为脚本引擎。De Icaza 同时提到 Xamarin(已被微软收购)在过去几年已经开发了很多专属私有的模块,这些模块也已经使用 MIT 许可证开源。


最新版本:4.0
这是首个包含来自微软开源 .Net 代码的版本,也是第一个缺省启用 Csharp 6.0 的 Mono 版本。

官方主页:http://www.mono-project.com/