Skip to content

MS_Mono

nishi_74322014 edited this page Aug 31, 2026 · 3 revisions

Mono

概要

  • GNOME プロジェクト創設者のミゲル・デ・イカザが開発

  • Ecma 標準に準じた .NET Framework 互換の環境を実現するための

    • オープンソースのソフトウェア群
    • またそのプロジェクト名である。
  • 2018 年 3 月現在、Xamarinと .NET Foundation が
    開発、販売、サポート業務を行っている。

補足(最新化:現在の立ち位置): Mono を巡る状況は大きく変わった。

時期 出来事
2016 Microsoft が Xamarin を買収し、Mono も傘下に
2020〜 .NET 5 以降、Mono ランタイムが .NET 本体に取り込まれる
2024 Microsoft が Mono プロジェクトを WineHQ に移管

つまり現在は次の 2 つに分かれている。

  • 「.NET のランタイム実装の 1 つとしての Mono」 — 現役。
    Blazor WebAssemblyBlazor)や
    モバイル(.NET MAUI)で使われている
  • 「独立プロジェクトとしての Mono」 — WineHQ が引き継ぎ、
    .NET Framework 互換の実装として維持

「Mono は終わった」でも「Mono がすべて」でもなく、
CoreCLR と並ぶ、もう 1 つのランタイム実装として生き続けている
というのが正確な理解になる。

詳細

  • ピュア .NET のバイナリを動作させることができる。
    (中間言語(IL)を Mono JIT して動かすことが出来る。)

  • Linux 上で .NET の GUI アプリを動作させる際のランタイムにもなっている模様。

  • 故に(、そう言う経緯で)、Xamarinの基盤にもなっている。

  • 参考

補足(CoreCLR との使い分け): .NET には
2 つのランタイム実装が同居している。

CoreCLR Mono
主な用途 サーバー・デスクトップ WASM・iOS・Android
JIT 高性能な階層型 JIT(ReadyToRun + Tiered Compilation 軽量 JIT / インタプリタ
AOT NativeAOT Full AOT(iOS は JIT 禁止のため必須
フットプリント 大きめ 小さい

iOS は OS のポリシーで実行時コード生成が禁止されているため、
AOT が必須であり、そこで Mono の AOT が使われている。
ブラウザ(WASM)も同様の制約があり、Mono が担当している。

参考

Build Insider

現在の情報


Tags: 移行, .NET開発, Mono

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally