BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース PNaCl: GoogleがLLVMを介してChromeにネイティブサポートを更に追加

PNaCl: GoogleがLLVMを介してChromeにネイティブサポートを更に追加

原文(投稿日:2013/05/18)へのリンク

Googleは、ChromeにLLVMのビットコードを走らせることでChromeにおけるネイティブアプリケーションのサポートを広げている。

Googleは、引き続きChromeでネイティブアプリケーションを走らせることを推し進めており、 予期された PNaClすなわち Portable NaCl - ‘pinnacle’と読む、をGoogle I/O 2013で発表した。 PNaClのツールチェーンは変則的である。C/C++アプリケーションを各ターゲットのハードウェアプラットフォーム向けにコンパイルするのではなく、開発者は、1つのLLVMビットコードを生成する必要がある。このビットコードがあらゆるChrome クライアントにロードされ、ネイティブコードに翻訳され、検証され、ローカルに実行される。

現在、PNaCl は、32-bit x86, 64-bit x86, ARM用のChrome 29 でサポートされている。クライアントは、あらゆるウェブページ上でネイティブモジュールを走らせることができる。 – それらをChrome Web Store用のアプリにパッケージ化する必要はない。 –それが完全にリリースされる時には。PNaCl モジュールは再コンパイル無しで将来のアーキテクチャ上で走らせることができる。もっと面白いのが現在サポートされている言語は、C/C++のみであるが、 PNaCl モジュールは理論的にどんな言語で書かれていてもLLVM ビットコードにコンパイルできる。たとえば、ActionScript, Ada, D, Fortran, Haskell, Javaバイトコード, Objective-C, Python, Ruby, Rust, Scala 、C# などの言語を使って、最低限の調整、あるいは全くの調整なしで、広範囲のレガシーそして新しいアプリをChromeで走らせることができる。

PNaCl は、2010年に4人のGoogleエンジニアによって提案された(PDF)。著者たちが実現しようとしている構想が以下である。

  • ISA中立なフォーマットを提供し、コンパイルされたモジュールはソースコードからの再コンパイル無しで多種多様なターゲットプラットフォームをサポートする。
  • NaCl開発者がポータブルな実行モジュールをビルド、テスト、デプロイするのを簡単にする。
  • 当初、 x86-32, x86-64、ARM 命令セットをサポートし、将来他の人気のあるCPUをサポートするのを容易にする。
  • ネイティブクライアントのセキュリティとパフォーマンス特性を維持する。

PNaCl は、元々のNaClサンドボックスメカニズムを尚使っているので、以下のグラフが示すように翻訳されたビットコードを走らせているときは、セキュリティを強いる。

PNaCl ツールチェーンは、 Windows, Mac, Linuxで動き、SDKは、プロジェクトのウェブサイトから入手できる。

この記事に星をつける

おすすめ度
スタイル

BT