グーグル、Native Clientをx86-64とARMにも
グーグルが2008年12月に発表したNative Clientは、Webブラウザ上でx86バイナリを実行することにより、高速なアプリケーション実行環境をWebブラウザ上に構築するための技術でした。
(この記事の元のタイトルと本文には間違いが含まれていたため、修正しました。「[訂正記事]グーグルのNative Client、CPUに依存しない互換性は将来のバージョンにて」をご覧ください。元のタイトルは「「グーグル、Native Clientをx86-64とARMにも、同一バイナリが主要なCPUで動作へ」でした)。
主要なCPUでNative Clientを実現
そのNative Clientをx86-64とARMに移植し、実行対象となるバイナリを変更せずに実行可能にしたことをグーグルは明らかにしました。
ブログ「Chromium Blog」に3月17日付けでポストされたエントリ「Native Client and Web Portability」には、以下のように書かれています。
Today, we’re happy to say that you can build and run Native Client binaries for all of the most popular processor architectures: x86-32, x86-64, and ARM.
これにより実質的に最新のPCやスマートフォンなどのデバイスすべてでNative Clientが実現可能になったとしています。しかもx86バイナリをx86-64やARMで実行しているにもかかわらず、97%の実行性能を実現したとのこと。
Native Client executables perform at 97% of the speed of an unmodified executable on both ARM and x86-64 processors.
Native Clientの実行形式では、ARMとx86-64プロセッサ上の無変更実行形式が、97%の性能を発揮しました。
グーグルはそれだけではなく、将来新たなアーキテクチャのプロセッサが登場したとしても、Native Client用バイナリを再コンパイルせずに実行できる「PNaCL」(Portable Native Client Executables)を、Low-Level Virtual Machine (LLVM) bitcodeによって実現するべく開発中であることも明らかにしています。
Webアプリケーションのプラットフォームにまた近づいた
Webブラウザをアプリケーションのプラットフォームにする、それもネイティブアプリケーションと同等以上の実行性能と機能を持つアプリケーションのプラットフォームに、というのがグーグルが目指しているものです。
そしてPNaCLがうまくいけば、WebブラウザはまるでOSのようにネイティブコードを実行するプラットフォームに、しかもクロスプラットフォームをサポートするという夢のようなプラットフォームになれるかもしれません。
このようにNaCLは技術的にはWebブラウザを飛躍させる優れた技術のように思えますが、グーグルの思惑通りに進むにはこの先に技術面だけではなく、標準化という大きなハードルがあります。
果たしてマイクロソフトやアップルといったOSを主要なビジネスとするWebブラウザベンダがこのNaCLにどう反応するのか、そうした局面が訪れるにはまだしばらく先のことではないかと思いますが、技術の進歩だけでなく標準化の面でどうなるのかについても楽しみになってきました。
(追記3/19:PNaCLについて、最初の文書は「いまのx86用バイナリコードを変更せずに実行する」技術として紹介しましたが、それを「LLVM bitcodによって実行する」の意味に書き換えました)