OSSに関するこれまでの取り組みSELinuxSELinuxに於いて各アプリケーションの振舞はセキュリティコンテクストというラベル情報により制御されます。つまり、プロセスが実行されると、カーネルがそのセキュリティコンテキストに相当する適切なSID(Security ID)をプロセスに付け、アクセス制御を行う為にそのSIDを使います。SIDの変更(いわゆるセキュリティコンテクストの遷移)に関しては当時のSELinuxではexecveの実行のみで変更が可能でした。その為にSamba 3のようなマルチスレッドアプリケーションについてはアプリケーション自身による防御が失敗すると、OSでの対策は不可能。その穴を埋める為に、setuid的なSELinuxの拡張を開発し、論文を執筆してJapan Linux Conferenceで発表しました。 Mini Kernel DumpMini Kernel Dumpというカーネルクラッシュダンプ取得の仕組みを開発していました。クラッシュダンプとは、OS(カーネル)が故障した瞬間の物理メモリの情報を吐き出して保存する仕組みです。クラッシュダンプが故障したマシンの状態を正確に反映するので、それを解析すれば、ほぼ確実に原因の究明ができます(注意:アプリケーションの情報を吐き出すのはコアダンプです)。従来のクラッシュダンプ取得の仕組みが抱えていた信頼性の限界を打破する為に、Mini Kernel Dumpはシステム異常が発生した際に保護領域で動作するダンプ取得専用のカーネルに制御を移し、破綻したホストカーネルの資源と無関係にダンプの取得を行います。2005年のLinux Kernel Dump SummitでMini Kernel Dumpを紹介しました。 Linux Kernel Dump Test Toolダンプ取得の確率と精度を測る為に人為的に故障を発生させるLinux Kernel Dump Test Tool (LKDTT)というテストツールを作成しました。そこでLKDTTを利用して、カーネルクラッシュダンプのツールを調査して評価しました。予想通りにMini Kernel Dumpやkdumpのようなkexecを使ったツールの優位性が明らかになりました。上記の調査の結果を論文の形で纏めてOttawa Linux Symposium 2006へ投稿しました。尚、kexec/kdumpリブート後のデバイスの再初期化の問題をどのように解決するかについて議論する為にBOFも提案しました。幸運にも論文もBOFの提案もともに採用されたので、当年のOttawa Linux Symposiumで論文の発表をして、それと別に前述のBOFも主催しました。その直後にOSDL Japan Linux SymposiumでOttawa Linux Symposiumでの議論について報告することになりました。 KdumpKdumpが本家のカーネルに取り込まれたことをきっかけに、mkdumpのより優れたところをkdumpへ移植し、kdumpのコミュニティに入りました。前述のBOFでの議論を踏まえてデバイスの再初期化の問題に取り掛かり、Linux Storage & Filesystem 2007で解決案を出しました。尚、旧OSDL・Linux Foundationにおいて「Kdump Test Project」の管理者を務めました。このプロジェクトの過程で発見したバグについてバグリポートを出し、最後にkdumpが正常に動かないデバイスのブラックリストを作りました。デバイスのブラックリストに基づいて、Linuxのデバイスドライバの欠陥とその解決方法について論文を執筆し、LinuxConf Europe 2007で発表しました。Kdumpのプレスリリースの執筆に参加する等、PR的な活動も味わいました。 Linux Containers新しいコンテナ技術の講師を務め、貢献者になろうと努力しているところです。コンテナは軽量仮想化システムで、全てのゲストが一つのカーネルを共用します。言い換えれば、ハイパーバイザ系の技術はHWを仮想化の対象とするのに対して、コンテナはOSを対象とします。
|