デジタル人材の育成
竹迫 良範(株式会社リクルートマーケティングパートナーズ 専門役員 技術フェロー)
本プロジェクトでは、「底の抜けた」ハイパーバイザを用いた、非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アプリケーションが動作する時代が来ることになり、今後のアプリケーション開発環境に多大なインパクトをもたらすことが期待される。
先日Bash on Ubuntu on Windowsの発表があったが、本提案手法はそれとは異なる技術的アプローチを用いており、OS XでもLinuxバイナリ互換性を達成できるハイパーバイザフレームワークを開発することを目標としている。Intel VT-x対応のx86_64アーキテクチャを想定し、独自のELFローダーでsysenterシステムコールをフックし、底の抜けたハイパーバイザとやりとりする。従来このような技術はマルウェアの解析やセキュリティ分野のハックとして知られてきたが、バイナリエミュレーションの分野に応用することで高いバイナリ互換性を実現することができる。最初はLinuxのsystemdを動かすのが大変で、開発途中で技術的に困難な課題が発生するだろうが、提案者達は過去にいくつかの要素技術を開発しており、システムプログラミング能力も高いため、本プロジェクトを完遂できると信じている。