SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Mono 2.0がDebian GNU/Linuxのために提供するもの

  • このエントリーをはてなブックマークに追加

 最新の.NET互換性を望むDebianユーザー向けに、Mono 2.0以降のプラットフォームをどの程度まで利用できるかを考察します。

  • このエントリーをはてなブックマークに追加

はじめに

 Debian GNU/LinuxとMonoは、オープンソースソフトウェアの2つのリーダーです。Debianは、フリー/オープンソースソフトウェアの精神を最もよく表現するものとして知られる社会契約を持ったLinuxディストリビューションです。一方のMonoは、.NETのためのオープンソース開発プラットフォームです。ここで考えてみたいのは、Monoは.NETを利用したいDebianユーザーに何を提供しなければならないかということです。

 本稿では、DebianユーザーがMono 2.0以降のプラットフォームをどこまで利用できるのかを調べるため、この2つの製品の相性を見ていくことにします。まずMonoの全体像を把握し、次にDebianパッケージを調べて、最新の.NET互換性に関するコマンドと情報を明らかにします。

Monoについて: 仮想マシンとマネージコード

 仮想マシンとマネージコードという概念は古くからあるものですが、ここ10年ほどで復権してきました。この概念を復権させたのはJavaであり、その後、.NETによって復権が後押しされました。JavaにおいてはJava仮想マシン(JVM)とバイトコード、.NETにおいては共通言語ランタイム(CLR)とマネージコードという形でこの概念が実現されています。マネージコードはCPU上で直接実行されるのではなく、仮想マシン(VM)上で実行されます。VMはCPUとそのマシンコードの間にある中間レイヤであり、CPUと同じような働きをします。実質的にVMはCPUの代わりとなるもので、バイトコードはマシンコードの代わりとなるものです。このアプローチは主として移植性を確保するために使われています。互換性の問題がすべてVMレベルで解決されれば、バイトコードプログラムはVMが存在するすべてのプラットフォームで動作することになります。そうなれば、セキュリティとメモリ管理の観点からもメリットがあります。

 .NET CLRで動作するプログラムは共通中間言語(CIL)という言語で書かれています。MonoランタイムはCLRのオープンソース実装なので、CILで書かれたコードを実行できます。そのため、Monoが動作するすべてのCPUとオペレーティングシステムが、.NET Visual Studioコンパイラで生成されたあらゆるCILバイナリコードに開かれます。

DebianでMonoを使用する

 Monoを使用するためには、まずMonoランタイムをインストールする必要があります。MonoランタイムはCIL実行可能ファイルを実行するための仮想実行環境を提供します。aptユーティリティでインストールする最初のDebianパッケージはmono-jitです。

apt-get install mono-jit

 この後で/usr/binの下を調べると、Mono Linux実行可能ファイルであるCILプログラム用インタプリタが見つかります。ここから先はMonoのバージョン2.0をダウンロードしてインストールするために、Debian GNU/Linuxの「不安定(unstable)」バージョンを使用します。不安定バージョンというのは誤解を招きやすい呼称です。これは最新のパッケージが含まれている完全に機能するDebianリリースを指すものだからです。

 .NET実行可能ファイルは.exeファイルですが、他の.exeファイルと違って、CLRなしに単独で実行することはできません。Monoを使用すれば、次のような簡単なコマンドで実行できます。

mono program_name.exe

 Monoが新たなWindowsエミュレータでないことは明らかです。MonoはCILで書かれて.NETコンパイラで生成されたWindows Portable Executable(PE)プログラムしか実行できません。

gendarmeとその他のMonoツール

 mono-tools-develとmono-tools-guiという2つのパッケージには、MonoとCLRプラットフォームの構造を説明するのに役立つ有益なツールが含まれています。

  • mono-tools-devel
  • create-native-map
  • gendarme
  • mono-tools-gui
  • gasnview
  • ilcontrast
  • gui-compare(とても興味深いツールです)

 これらのツールの中で、gendarmeは特に注目に値するツールです。gendarmeを使用するとCILコードを直接検査して、コンパイラが見つけられない問題点を突き止めることができます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
DebianでのMono言語コンパイラ

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Roberto Giorgetti(Roberto Giorgetti)

イタリアに拠点を置くITマネージャ、テクニカルライター。主にビジネス分野と工業分野でオープンソースの開発に従事。核工学の学位を持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3586 2009/03/11 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング