LLMpediaThe first transparent, open encyclopedia generated by LLMs

Mono (runtime)

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Emscripten Hop 4
Expansion Funnel Raw 62 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted62
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
Mono (runtime)
NameMono
TitleMono (runtime)
DeveloperXamarin; Novell; Microsoft
Released2004
Latest releaseSee project repositories
Programming languageC; C#
PlatformCross-platform
LicenseMIT License; previously GPL; LGPL

Mono (runtime) Mono (runtime) is an open-source implementation of the Common Language Infrastructure originally initiated to enable cross-platform execution of applications written for the .NET ecosystem. The project was created to provide a compatible runtime and development stack for environments beyond Microsoft Windows, facilitating deployment on Linux, macOS, Android, and embedded systems supported by organizations such as Xamarin, Novell, and Microsoft.

History

Mono's origins trace to 2001 when developers from Ximian led by Miguel de Icaza began work to bring .NET compatibility to Unix-like systems and to rival proprietary offerings. The project evolved through sponsorship and stewardship involving Ximian, acquisition by Novell, contributions from SUSE, and later commercial stewardship by Xamarin before parts of the ecosystem were acquired by Microsoft in 2016. Major milestones include integration with the MonoDevelop IDE, adoption in projects like Unity (game engine), and contributions to mobile stacks such as Xamarin.iOS and Xamarin.Android; the runtime has intersected with initiatives like .NET Core and became subject to license changes reflecting broader shifts in the open-source community and enterprise adoption.

Architecture

The runtime implements a managed execution environment consisting of a bytecode interpreter, just-in-time compilation, and a garbage collector. Core components mirror the Common Language Runtime design: a virtual machine executing Microsoft Intermediate Language code, a JIT compiler translating IL to native instructions for architectures like x86, ARM, and PowerPC, and a garbage collector originally derived from work on conservative collectors used in projects such as Boehm–Demers–Weiser garbage collector before advancing to precise collectors influenced by research from Microsoft Research and runtime projects like CoreCLR. The class libraries implement the Base Class Library semantics and have interoperability layers for native APIs such as POSIX and Win32, while tooling integrates with IDEs like Visual Studio, Eclipse, and JetBrains Rider.

Supported Platforms and Languages

The runtime supports execution on a variety of operating systems and processor architectures, including Linux, macOS, Windows, Android, iOS, FreeBSD, and embedded OSes used by projects in the Internet of Things and systems developed by vendors such as Raspberry Pi Foundation. Architectures targeted include x86-64, ARM64, ARMv7, and PowerPC, enabling use in server, desktop, mobile, and gaming contexts exemplified by engines like Unity (game engine). Language support centers on C# and other Common Language Infrastructure languages such as F# and VB.NET; the runtime also hosts compilers and front-ends for languages that target IL, including research and domain-specific languages developed at institutions like Microsoft Research and universities collaborating on language tooling.

Performance and Optimization

Performance characteristics depend on JIT strategies, garbage collection algorithms, and platform-specific native code generation. Mono's runtime includes optimizing JIT backends and ahead-of-time compilation paths influenced by practices in projects such as LLVM and GCC, with AOT used for platforms like iOS where dynamic code generation is restricted by platform policies from vendors like Apple Inc.. Work on tiered compilation, profile-guided optimizations, and integration with native CPU instruction sets leverages contributions from corporations including Microsoft and Google as well as academic research on runtime optimization from institutions like MIT and Stanford University.

Security and Sandboxing

Security in the runtime encompasses code access controls, verification of IL, and sandboxing techniques for isolating untrusted code. Mono has incorporated verification and validation mechanisms akin to those in ECMA-335 specifications and has been used in contexts requiring isolation on platforms maintained by entities such as Amazon Web Services and Google Cloud Platform. Sandboxing strategies interact with operating-system-level containment technologies such as Linux containers and macOS entitlements, and past security considerations have prompted collaboration with organizations like CERT and responses coordinated with vendors including Canonical and Red Hat.

Licensing and Governance

The project's licensing and governance evolved through changes involving permissive and copyleft licenses; initial releases were under Ximian terms and later involved GNU General Public License and GNU Lesser General Public License components before parts of the stack were relicensed under permissive terms such as the MIT License. Governance has transitioned from community-led stewardship at Ximian and Novell to corporate sponsorship by Xamarin and interaction with Microsoft engineering teams, with development hosted across repositories managed by organizations like GNOME foundations and mirrored in platforms such as GitHub. The ecosystem governance reflects collaborations among corporate contributors, academic researchers, and open-source communities exemplified by projects incubated at foundations like Outercurve Foundation.

Category:Free software