差分

ナビゲーションに移動 検索に移動

Mono

5,646 バイト追加, 2012年3月15日 (木) 01:32
ページの作成:「'''Mono'''(モノ)は、GNOMEプロジェクト創設者のミゲル・デ・イカザが開発した、Ecma標準に準じた.NET Framework互換の環境を...」
'''Mono'''(モノ)は、GNOMEプロジェクト創設者の[[ミゲル・デ・イカザ]]が開発した、Ecma標準に準じた[[.NET Framework]]互換の環境を実現するためのオープンソースソフトウェア群、またそのプロジェクト名である。

現在は[[Xamarin]]社が開発、販売、サポート業務を行っている。

[[共通言語基盤]] (CLI) の実装や[[C Sharp|C#]]の[[コンパイラ]]などが含まれる。

== 動作プラットフォーム ==
Monoはマルチプラットフォームであり、Linux、FreeBSD、Mac OS X、Solaris、Windowsで動作する。

その他にも、特定プラットフォーム向けに特化したサブプロジェクトも存在する。
* [[MonoTouch]] - iPhoneやiPad、iPod touchといったiOSでの動作をサポートしている。
* [[MonoMac]] - MonoTouchの技術を応用し、Mac OSXへのネイティブ対応を行う。
* [[Mono for Android]] - Androidでの動作をサポートしている。

== プロジェクトの目標 ==
マイクロソフトはFreeBSD、Windows、Mac OS Xで動作するシェアードソースCLIというCLIの実装を公開しているが、マイクロソフトのシェアードソースライセンスは商用利用が禁止されているなど、コミュニティにとって十分とはいえない。MonoプロジェクトはPortable.NETプロジェクトとさまざまな点で共通した目標を掲げている。

Monoプロジェクトの公式発表ではないが、その主導者であり「C++はクソ、C言語最高」と言わんばかりにGObjectやGTK+などを推し進めていた[[ミゲル・デ・イカザ]]氏の言葉として「Cでプログラミングするには人生は短すぎる」という標語が掲げられている。

== Monoランタイム ==
Monoランタイムは多くのプロセッサで動作する[[JITコンパイラ]]を搭載している。JITコンパイラはアプリケーションの実行中に[[共通中間言語]] (CLI) コードをネイティブコードに変換し、それらをキャッシュする。実行前にネイティブコードに変換し、キャッシュしておくことも可能である。

JITコンパイラが対応するプロセッサはx86、SPARC、PowerPC、ARM、System/390(32および64ビット)、AMD64、IA-64、64ビットモードSPARCである。それ以外のシステムでは、ネイティブコードに変換するのではなくインタプリタによって逐次バイトコードが実行される。ほとんどの状況で、JITコンパイラによる方法はインタプリタよりもパフォーマンスの点で勝っている。

またマイクロソフト純正の.NET FrameworkではサポートされていないSIMDへの対応など、Mono独自の革新的な機能の取り込みも積極的に行われている。

== 歴史 ==
2000年12月にEcma Internationalにより[[.NET Framework]]ドキュメントが公開されると、Monoプロジェクトの創始者である[[ミゲル・デ・イカザ]]は.NET技術に興味を魅かれた。バイトコードインタプリタを調べてみると、彼はメタデータに関する仕様が存在しないことに気がついた。

2001年2月、彼は.NETメーリングリストにおいて不足している情報を公開するよう求め、同時に[[C Sharp|C#]]の習得のため、C#で書かれたC#コンパイラの開発に着手した。

2001年4月、Ecma Internationalは不足していたファイル形式を公開し、デ・イカザは世界最大のGNOMEの祭典であるGUADEC(2001年4月6日~4月8日)において彼の開発したC#コンパイラのデモンストレーションを行った(それは自分自身の解析が可能であった)。

同時期、GNOMEの事実上の開発母体であった[[Ximian]]社では、生産性を向上するためのツールを開発するための会議が内部的に行われていた。実現可能性の調査の結果、そのような技術は構築可能であるという結論に至り、Ximianは他のプロジェクトからスタッフを集め、Monoチームを結成した。しかしXimian内部だけで.NETと同等のものを作るには人材が不足していたため、Monoをオープンソースプロジェクトとした。これは2001年7月19日、オライリーカンファレンスによって発表された。

それから3年近く経った2004年6月30日、Mono 1.0がリリースされた。

* 2009年12月15日 Mono 2.6がリリースされた。Mono 2.6では、[[Windows Communication Foundation]]や[[Low Level Virtual Machine]]などをサポートした。
* Mono 2.8でC#4.0がサポートされた。
* Mono 2.8.1でSystem.Text.Encodingにおいて日本語(Shift_JIS)がサポートされた。

== プロジェクト名の由来 ==
monoはスペイン語で猿を意味するため、Monoのロゴには猿が描かれている。猿に関する名称は[[Ximian]]の他のプロジェクトにも見られる。
Mono FAQでは、名称の由来に関する質問に対して「我々は猿が好きなのです。」 (We like monkeys.) と回答している<ref>[http://www.mono-project.com/FAQ:_General "What does the name "Mono" mean?"] </ref>。


== 関連項目 ==
* [[MonoDevelop]]
* [[IKVM.NET]] - Java仮想マシンをMonoフレームワーク上で実現するサブプロジェクト。
* [[Xamarin]]

== 外部リンク ==
* http://www.mono-project.com/
* https://github.com/mono
* http://xamarin.com/

== 参考文献 ==
<references/>

{{stub}}
匿名利用者

案内メニュー