Jump to content

Mono (software)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Darthnice (talk | contribs) at 23:39, 2 March 2005 (Corrected licensing link). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Mono is the name of an open source project led by Novell (formerly by Ximian) to create an ECMA Standard compliant (Ecma-334 and Ecma-335), .NET compatible set of tools, including a C# compiler, a Common Language Runtime, and more, all to run on GNU/Linux, UNIX, Mac OS X, and Windows based computers.

While Microsoft made a version of .NET available for FreeBSD called Rotor, Microsoft's shared source license is not really Free Software and is insufficient for the needs of the community (it explicitly forbids commercial use).

A lot of discussion has taken place about whether Microsoft could destroy the Mono project with patents. The Mono team has acknowledged this problem in their FAQ:

"The .NET Framework is divided in two parts: the ECMA/ISO covered technologies and the other technologies developed on top of it like ADO.NET, ASP.NET and Windows.Forms. Mono implements the ECMA/ISO covered parts, as well as being a project that aims to implement the higher level blocks like ASP.NET, ADO.NET and Windows.Forms."
"The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux. The Mono strategy for dealing with these technologies is as follows: (1) work around the patent by using a different implementation technique that retains the API, but changes the mechanism; if that is not possible, we would (2) remove the pieces of code that were covered by those patents, and also (3) find prior art that would render the patent useless."

For more information on their patent position, see http://www.mono-project.com/about/licensing.html.

Versions 1.0.6 (Stable) and 1.1.4 (Development) of Mono were released on February 17, 2005. Mono 1.0.6 is a maintenance release in the stable 1.0.x-series.
Focusing on new functions is the 1.1.x-series that eventually will lead to a 1.2 release.

The Mono VM contains JIT engines for a number of processors: x86, SPARC, PowerPC (in 32 bit mode) and x86-64 and SPARC for 64 bit modes. The VM can just-in-time compile or it can pre-compile the code to native code. For other systems not listed, an interpreter is used.

A similar project, called Portable.NET, is part of the DotGNU project.

History

Miguel de Icaza got interested in the .NET technology early 2000 and his company Ximian announced on July 19 2001 that they would start a open source-project to build what eventually would be Mono. On June 30 2004 Mono 1.0 was released.

Sub-projects

Numerous sub-projects have been created to allow developers to use Mono in their development environment:

  • gtk# are bindings which tie the Mono framework into the Gtk libraries.
  • gecko# are bindings for embeding the layout engine used in Mozilla (Gecko).

Software developed with Mono

These are programs that uses Mono API and C#.

See also