コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
未作成ページ
おまかせ表示
ヘルプ
MonoBook
検索
検索
ログイン
個人用ツール
ログイン
ログアウトした編集者のページ
もっと詳しく
投稿記録
トーク
「
Mono
」を編集中
ページ
議論
日本語
閲覧
編集
ソースを編集
履歴表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
編集
ソースを編集
履歴表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
2017年6月8日 (木) 09:22時点における
103.22.200.204
(
トーク
)
による版
(
→Mono関連のコマンド
)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
'''Mono'''(モノ)は、GNOMEプロジェクト創設者の[[ミゲル・デ・イカザ]]が開発した、Ecma標準に準じた[[.NET Framework]]互換の環境を実現するための[[オープンソース]]ソフトウェア群、またそのプロジェクト名である。 現在は[[Xamarin]]社が開発、販売、サポート業務を行っている。 [[共通言語基盤]] (CLI) の実装や[[C Sharp|C#]]の[[コンパイラ]]などが含まれる。 == 動作プラットフォーム == Monoは[[マルチプラットフォーム]]であり、[[Linux]]、[[FreeBSD]]、[[Mac OS X]]、[[Solaris]]、[[Windows]]で動作する。 その他にも、特定プラットフォーム向けに特化したサブプロジェクトも存在する。 なお、一般的なマルチプラットフォーム(いわゆる「[[Write Once, Run Anywhere]]」を目指す多くのプロジェクトとは異なり、Monoではビジネスロジック部分のみを共通化しようとする物が多く、インターフェイス(ビュー)に近い部分はそのプラットフォームに依存するような作りとなっている。これにより「[[Write Once, Run Anywhere]]」は実現できないが、そのプラットフォームが持つ特徴や性能を活かすことができる。 ; Mono公式 * [[MonoTouch]] - [[iPhone]]や[[iPad]]、[[iPod touch]]といった[[iOS]]での動作をサポートしている。 * [[MonoMac]] - [[MonoTouch]]の技術を応用し、Mac OS Xへのネイティブ対応を行う。 * [[Mono for Android]] - [[Android]]での動作をサポートしている。 ; サードパーティ製 * [[Unity]] * [[PlayStation Suite SDK]] == プロジェクトの目標 == [[マイクロソフト]]は[[FreeBSD]]、[[Windows]]、[[Mac OS X]]で動作する[[シェアードソースCLI]]という[[CLI]]の実装を公開しているが、マイクロソフトの[[シェアードソースライセンス]]は商用利用が禁止されているなど、コミュニティにとって十分とはいえない。MonoプロジェクトはPortable.NETプロジェクトとさまざまな点で共通した目標を掲げている。 Monoプロジェクトの公式発表ではないが、その主導者であり「C++はクソ、C言語最高」と言わんばかりにGObjectやGTK+などを推し進めていた[[ミゲル・デ・イカザ]]氏の言葉として「Cでプログラミングするには人生は短すぎる」という標語が掲げられている。 == Monoランタイム == Monoのランタイム([[Mono Runtime Environment]])は多くの[[プロセッサ]]で動作する[[JITコンパイラ]]を搭載している。[[JITコンパイラ]]は[[アプリケーション]]の実行中に[[共通中間言語]]([[CIL]]) コードを[[ネイティブコード]]に変換し、それらをキャッシュする。実行前にネイティブコードに変換し、キャッシュしておくことも可能である。 [[JITコンパイラ]]が対応する[[プロセッサ]]はx86、SPARC、PowerPC、ARM、System/390(32および64ビット)、AMD64、IA-64、64ビットモードSPARCである。それ以外のシステムでは、[[ネイティブコード]]に変換するのではなくインタプリタによって逐次[[バイトコード]]が実行される。ほとんどの状況で、JITコンパイラによる方法は[[インタプリタ]]よりも[[パフォーマンス]]の点で勝っている。 また[[マイクロソフト]]純正の[[.NET Framework]]ではサポートされていない[[SIMD]]への対応など、Mono独自の革新的な機能の取り込みも積極的に行われている。 == Monoライブラリ == MonoプロジェクトにはMono本体に加え、便利なライブラリやフレームワークが多数用意されている。 これらは純正[[.NET Framework]]でも利用できる。 また、一部は[[NuGet]]でも配布されており、[[Visual Studio]]などからも手軽に利用できるようになっている。 === 主なMonoライブラリ === {| class="wikitable sortable" |- ! 名称 !! [[NuGet]] !! 概要 |- | [[Mono.Addins]] || ○ || アドイン対応アプリを作るためのフレームワーク。 |- | [[Mono.Addins.Setup]] || ○ || |- | [[Mono.Cecil]] || ○ || [[CIL]]を解析するライブラリ。 |- | [[Mono.CSharp]] || ○ || |- | [[Mono.Linq.Expressions]] || ○ || |- | [[Mono.Options]] || ○ || [[コマンドライン引数]]を解析するライブラリ。いわゆる[[getopts]]の[[C Sharp|C#]]版。 |- | [[Mono.Reflection]] || ○ || |- | [[Mono.Zeroconf]] || ○ || |} == 歴史 == 2000年12月にEcma Internationalにより[[.NET Framework]]の[[ドキュメント]]が公開されると、Monoプロジェクトの創始者である[[ミゲル・デ・イカザ]]は.NET技術に興味を魅かれた。[[マネージドコード]]の[[インタプリタ]]を調べてみると、彼は[[メタデータ]]に関する仕様が存在しないことに気がついた。 2001年2月、彼は.NET Frameworkの[[メーリングリスト]]において不足している情報を公開するよう求め、同時に[[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はスペイン語で猿を意味するため、Monoのロゴには猿が描かれている。猿に関する名称は[[Ximian]]の他のプロジェクトにも見られる。 Mono FAQでは、名称の由来に関する質問に対して「我々は猿が好きなのです。」 (We like monkeys.) と回答している<ref>[http://www.mono-project.com/FAQ:_General "What does the name "Mono" mean?"] </ref>。 == インストール == === FreeBSD === # パッケージを入れる $ pkg install mono # 共有メモリを増やす $ echo kern.maxfiles=25000 >> /boot/loader.conf $ echo kern.ipc.semmni=40 >> /boot/loader.conf $ echo kern.ipc.semmns=300 >> /boot/loader.conf # プロセスの細かい情報を取れるようにする $ echo "proc /proc procfs rw 0 0" >> /etc/fstab # SSL証明書をぶちこむ $ mozroots --import --sync === macOS === [[macOS]]の場合はmono公式サイトからパッケージを拾ってきてインストーラーに従えばok。 また、[[Xamarin Studio]]を入れようとすると同時に入ってくる。 == Mono関連のコマンド == * [[xbuild]] * [[monodis]] * [[mcs]] * [[xsp]] * [[asp-state]] * [[dbsessmgr]] == 関連項目 == * [[MonoDevelop]] * [[IKVM.NET]] - Java仮想マシンをMonoフレームワーク上で実現するサブプロジェクト。 * [[Xamarin]] == 外部リンク == * http://www.mono-project.com/ * https://github.com/mono * http://xamarin.com/ == 参考文献 == {{reflist}} {{stub}} [[category:Mono]]
編集内容の要約:
MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MonoBook:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の確認用の質問に回答してください (
詳細
):
1たす1は?(全角で入力してください)
キャンセル
編集の仕方
(新しいウィンドウで開きます)
このページで使用されているテンプレート:
テンプレート:Reflist
(
編集
)
本文の横幅制限を有効化/無効化