Ubuntu 12.04 LTS Precise Pangolin で Dtrace for Linux

ZFS on Linuxのついでに、Solarisで使えるDtraceをUbuntu 12.04で使えるようにする手順です。
ZFS and DTrace running on Ubuntu Linuxの手順に沿ってインストールします。

Step1:準備

試したバージョン・いるもの

  • Ubuntu Desktop 12.04 64bit版をインストールした環境
  • gitがインストールされて無い場合は事前にインストール

素のままだとbuild-essensial,zlib1g-dev,bison,libc6-dev,libelf-dev,libdwaf-devあたりもインストールしておく必要があります

Step2:インストール

gitで使うディレクトリを作成し、cdで移動してgit cloneでdtrace4linuxのソースをいただいてきます。

$ git clone git://github.com/ShepBook/dtrace-for-linux.git

(gitの9416/tcpを通さない社内学内のproxy越えは”git clone http://github.com/ShepBook/dtrace-for-linux.git”とするといいかも)

出来てるdtrace-for-linuxのディレクトリに移動してmake allでビルドします。

$ cd dtrace-for-linux
$ sudo make all

エラーなく終了したらmake installでインストールします。Solarisと同じに/usr/sbin/dtraceにインストールされます。

$ sudo make install

DTrace の kernel module を make load で反映します。

$ sudo make load

これでインストール完了です。

Step3:お試し

とりあえず試しに…といった場合は

BEGIN {
trace("Hello, world!!!");
exit(0);
}

をhello.dに保存して、

$ sudo dtrace -s hello.d

すると、以下の感じに結果が表示されると思います。

dtrace: script 'hello.d' matched 1 probe
CPU     ID                    FUNCTION:NAME
  1      1                           :BEGIN   Hello, world!!!

あとは、Dtraceについて検索して出てきたページを参考にどうぞー。
そもそもLinuxでDtrace?だからなに?って感じですが、いいんです。いえあ!

ZFS on Linux FAQのライセンスどうなってるの?を翻訳して意訳してみた

 

ZFS on Linuxでお約束のように語られるLinuxカーネルとZFSの混ぜるな危険ライセンス問題。
ZFS on LinuxのFAQのライセンス問題についてを日本語にしてみた。翻訳意訳があってるかどうかは自信がないw
(そもそもこれがライセンス上問題ないのかどうかは知りません)

まず元の文章はこれな。

1.1 What about the licensing issue?
In a nutshell, the issue is that the Linux kernel which is licensed under the GNU General Public License is incompatible with ZFS which is licensed under the Sun CDDL. While both the GPL and CDDL are open source licenses their terms are such that it is impossible to simultaneously satisfy both licenses. This means that a single derived work of the Linux kernel and ZFS cannot be legally distributed.One way to resolve this issue is to implement ZFS in user space with FUSE where it is not considered a derived work of the kernel. This approach resolves the licensing issues but it has some technical drawbacks. There is another option though. The CDDL does not restrict modification and release of the ZFS source code which is publicly available as part of OpenSolaris. The ZFS code can be modified to build as a CDDL licensed kernel module which is not distributed as part of the Linux kernel. This makes a Native ZFS on Linux implementation possible if you are willing to download and build it yourself.

で、機械翻訳しておかしいとこを修正したのがこんな感じ

1.1ライセンスの問題についてはどうですか?
一言で言えば、この問題は、GNU General Public Licenseの下でライセンスされているLinuxカーネルと、Sun CDDLの下でライセンスされているZFSとライセンス上の互換性がないということです。
GPLとCDDLの両方ともオープンソースライセンスではあるものの、同時に両方のライセンス条件を満たすことは不可能です。これはLinuxカーネルとZFSをひとつの物として合法的に配布することができないことを意味します。問題解決の方法の一つとして、カーネルの派生物として見なされないようにFUSEを使用してユーザー空間でZFSを実装します。
このアプローチは、ライセンスの問題を解決しますがいくつかの技術的な欠点があります。
しかし、別のオプションがあります。
CDDLは、OpenSolarisの一部として公開されているZFSのソースコードの変更とリリースに制限がありません。
ZFSのコードは、CDDLライセンスのカーネルモジュールとしてビルドするように変更することができ、これはLinuxカーネルの一部として配布されていません。
あなたが自分の意思でダウンロードしビルドすれば、Native ZFS on Linuxが可能になります

そのままだとわかるようでわかんないから、日本国憲法を口語訳した、のまねして意訳してみる。
ZFS on Linuxの中の人のスタンスはこんな感じじゃなかろうか?カーネルの一部じゃなくカーネルモジュールを配ってるだけってとこがポイントなんですかね?
訳が間違ってたら教えてください。

1.1ライセンスってどうなってるのよ?
LinuxカーネルはGPLライセンスでZFSはSun CDDLライセンスでそれぞれのライセンスは互いに相容れるものじゃなく同時に両方のライセンス条件は満たせないので、LinuxカーネルとZFSを一緒くたして配れないよ。FUSEを使用してユーザー空間でZFSを実装すればライセンス上の問題は解決出来るんだけど、いくつか技術的に欠点があったりして…
駄菓子菓子!ZFSのソースの変更とリリースにCDDLライセンスは制限をかけていないのでカーネルモジュールとしてビルドするように変更して、それを自分でダウンロードてしビルドすれば、Native
ZFS on Linux出来ますよ。