デジタル人材の育成

未踏IT人材発掘・育成事業:2016年度採択プロジェクト概要(佐伯PJ)

1.担当プロジェクトマネージャー

竹迫 良範(株式会社リクルートマーケティングパートナーズ 専門役員 技術フェロー)

2.採択者氏名

  • 佐伯 学哉(東京大学大学院)
  • 西脇 友一(東京大学大学院)

3.採択金額

  • 2,304,000円

4.テーマ名

  • ハイパーバイザ技術を用いたクロスOSなLinuxバイナリ互換プラットフォームの構築

5.関連Webサイト

  • https://github.com/linux-noah/

6.申請テーマ概要

本プロジェクトでは、「底の抜けた」ハイパーバイザを用いた、非Linux OS上で動作し、Linuxとバイナリ互換性を持つ全く新しいPOSIXサブシステムを開発し、次世代のLinuxバイナリ互換プラットフォームとしての普及を目指す。
本システムはWindowsのアプリケーションであるCygwinのように、ネイティブアプリケーションとしてPOSIX互換レイヤを実装するものではなく、ハイパーバイザモジュールとその上で動作する薄いカーネルおよびホストOSで動くネイティブプロセスからなるLinuxサブシステムとして実装するものである。例えばWindows OS上で本システムを実現する場合では、ハイパーバイザのカーネル空間に本システムの薄いカーネルが載り、ELFアプリケーションはPEフォーマットにマッピングされることなく直接ユーザー空間にロード、実行される。ELFアプリケーションが発行する各種システムコールはハイパーバイザの機構によって本システムに届けられ、本システムはそれをLinuxシステムとして必要な処理を行った後、ハイパーバイザコールおよびホストプロセスを用いてホストOSのAPIへとマッピングすることで、非Linux OSにおけるLinuxバイナリ互換性を達成する。
さらに本システムでは、apt-getなどの慣れ親しんだパッケージマネージャを非Linux OS上へ導入できるようにする。バイナリ互換性と外部パッケージマネージャの利用により、低コストで本システムの実用性を飛躍的に高めることができる。
本システム自体は特定のカーネルやOSに依存しないアーキテクチャであるが、WindowsについてはMicrosoftによるUbuntuのbashのネイティブ対応が公式アナウンスされており、FreeBSDについては本アーキテクチャとは異なるLinuxエミュレーション機能が既に備わっているため、本プロジェクトでは第一の対象OSとしてOS Xを据える。つまり、本プロジェクトの成果により、OS X、Windows、FreeBSD、そして当然Linuxという4つの主要なOS上でLinuxアプリケーションが動作する時代が来ることになり、今後のアプリケーション開発環境に多大なインパクトをもたらすことが期待される。

7.採択理由

先日Bash on Ubuntu on Windowsの発表があったが、本提案手法はそれとは異なる技術的アプローチを用いており、OS XでもLinuxバイナリ互換性を達成できるハイパーバイザフレームワークを開発することを目標としている。Intel VT-x対応のx86_64アーキテクチャを想定し、独自のELFローダーでsysenterシステムコールをフックし、底の抜けたハイパーバイザとやりとりする。従来このような技術はマルウェアの解析やセキュリティ分野のハックとして知られてきたが、バイナリエミュレーションの分野に応用することで高いバイナリ互換性を実現することができる。最初はLinuxのsystemdを動かすのが大変で、開発途中で技術的に困難な課題が発生するだろうが、提案者達は過去にいくつかの要素技術を開発しており、システムプログラミング能力も高いため、本プロジェクトを完遂できると信じている。