Mono (ソフトウェア)
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| Mono | |
|---|---|
| 開発元 | ノベル |
| 最新版 | 2.4 / 2009年3月30日 |
| 対応OS | クロスプラットフォーム |
| 種別 | プラットフォーム |
| ライセンス | GPL、LGPL、MIT(デュアル) |
| 公式サイト | www.mono-project.com |
Monoは、ノベルの主導で開発されている、Ecma標準に準じた.NET Framework互換の環境を実現するためのオープンソースソフトウェア群、またそのプロジェクト名である。共通言語基盤 (CLI) の実装やC#のコンパイラなどが含まれる。Monoはマルチプラットフォームであり、Linux、FreeBSD、UNIX、Mac OS X、Solaris、Windowsで動作する。
マイクロソフトはFreeBSD、Windows、Mac OS Xで動作するシェアードソースCLIというCLIの実装を公開しているが、マイクロソフトのシェアードソースライセンスは商用利用が禁止されているなど、コミュニティにとって十分とはいえない。MonoプロジェクトはPortable.NETプロジェクトとさまざまな点で共通した目標を掲げている。
Monoランタイムは多くのプロセッサで動作するJITコンパイラを搭載している。JITコンパイラはアプリケーションの実行中に共通中間言語 (CIL) コードをネイティブコードに変換し、それらをキャッシュする。実行前にネイティブコードに変換し、キャッシュしておくことも可能である。JITコンパイラが対応するプロセッサはx86、SPARC、PowerPC、ARM、S/390(32および64ビット)、x86-64、IA-64、64ビットモードSPARCである。それ以外のシステムでは、ネイティブコードに変換するのではなくインタプリタによって逐次バイトコードが実行される。ほとんどの状況で、JITコンパイラによる方法はインタプリタよりもパフォーマンスの点で勝っている。
目次 |
[編集] 歴史
2000年12月に.NETドキュメントが公開されると、Monoプロジェクトの創始者であるMiguel de Icazaは.NET技術に興味を魅かれた。バイトコードインタプリタを調べてみると、彼はメタデータに関する仕様が存在しないことに気がついた。2001年2月、彼は.NETメーリングリストにおいて不足している情報を公開するよう求め、同時にC#の習得のため、C#で書かれたC#コンパイラの開発に着手した。2001年4月、Ecma Internationalは不足していたファイル形式を公開し、de IcazaはGUADEC(2001年4月6日~8日)において彼の開発したコンパイラのデモンストレーションを行った(それは自分自身の解析が可能であった)。
Ximian(ノベルに買収される前のMonoの開発者)では、生産性を向上するためのツールを開発するための会議が内部的に行われていた。実現可能性の調査の結果、そのような技術は構築可能であるという結論に至り、Ximianは他のプロジェクトからスタッフを集め、Monoチームを結成した。しかしXimian内部だけで.NETと同等のものを作るには人材が不足していたため、Monoをオープンソースプロジェクトとした。これは2001年7月19日、オライリーカンファレンスによって発表された。
3年近く経った2004年6月30日、Mono 1.0がリリースされた。
monoはスペイン語で猿を意味するため、Monoのロゴには猿が描かれている。猿に関する名称はXimianの他のプロジェクトにも見られる。 Mono FAQでは、名称の由来に関する質問に対して「我々は猿が好きなのです。」 (We like monkeys.) と回答している[1]。
[編集] 現状
Monoの最新のバージョンは2009年4月現在、2.4である。[2]。
[編集] Monoコンポーネント
Monoは大きく分けて3種類のコンポーネントから構成される。
- 中核コンポーネント
- Mono/Linux/GNOME 開発スタック
- マイクロソフト互換スタック
中核コンポーネントにはC#コンパイラ、仮想機械、基本クラスライブラリが含まれる。これらはEcma-334[3]およびEcma-335[4]の標準に基づいており、これによってMonoを標準準拠のオープンソースなCLI仮想機械たらしめている。
Mono/Linux/GNOME開発スタックは、従来のGNOMEや他のフリーなライブラリをアプリケーション開発に活用するためのツール群である。
これに含まれるものとしては、GUI開発のためのGtk#、Geckoレンダリングエンジンを利用するためのMozillaライブラリ、 Unix統合ライブラリ、データベース接続ライブラリ、セキュリティスタック、XMLスキーマ言語RelaxNGなどがある。 Gtk#によって、MonoアプリケーションをGNOMEデスクトップにネイティブアプリケーションとして統合することができる。データベースライブラリはMySQL、SQLite、PostgreSQL、Firebird、Open Database Connectivity (ODBC)、Microsoft SQL Server (MSSQL)、Oracle、オブジェクトリレーショナルデータベースdb4oなど、多くのデータベースに接続することができる。
マイクロソフト互換スタックは、Windowsの.NETアプリケーションを他のオペレーティングシステムで利用するための機能を提供する。例えば、ADO.NET、ASP.NET、Windows.Formsなどの実装が含まれる。
[編集] 出典
- ^ "What does the name "Mono" mean?" (英語)
- ^ "Mono 2.4 Release Notes" (英語)
- ^ ECMA-334 ドキュメント (C# 言語仕様) (英語)
- ^ ECMA-335 ドキュメント (CLI) (英語)
[編集] 関連項目
[編集] 外部リンク
|
||||||||||||||||||||
|
|||||||||||||||||
|
||||||||||||||||

