Google、x64やARM向けの「Native Client」を開発 35
「マルチプラットフォームなActiveX」が現実に近づく 部門より
Googeは以前から「Native Client」と呼ばれる、ブラウザ上でx86のネイティブコードを実行できる技術を開発していたが、そのx86-64/ARM版も開発していることが発表された(The Chromium Blogの記事)。
ネイティブコードは速度の面で優れているが、自由度が高いため悪意のあるプログラムを作成できるという危険性もある。そのためNative Clientでは、Software Fault Isolation(SFI)と呼ばれる機構を用い、サンドボックス化された環境内でバイナリを実行することでセキュリティを高めている。これによりパフォーマンス低下が発生するものの、Googleはこれに対し独自の技術を開発、パフォーマンス低下を最小限(ARMで3%、x86-64で10%程度)に抑えることに成功したという(論文PDF)。
また、いまのところx86版のNative Client向けに作成されたコードをx86-64やARM版のNative Clientで動作させることはできないが、これを改善するため「Portable Native Client Executables(PNaCl)」という技術の開発も進めているという。PNaClではLow-Level Virtual Machine(LLVM)で用いられる中間コードを使用した「ポータブル」なバイナリでプログラムを配布し、実行時に各CPUのネイティブコードに変換するというもの。これにより、Native Clientの高速性とセキュリティを保ちつつ、単一のバイナリで複数のプラットフォームに対応できるという(GoogleによるPNaClのドキュメント[PDF])。
よく分からん (スコア:0)
「ブラウザ上で」の部分に何か意味はあるのか?
Re: (スコア:0)
結局 JIT コンパイル方式になるのね (スコア:0)
Re:結局 JIT コンパイル方式になるのね (スコア:1)
Re: (スコア:0)
Re:結局 JIT コンパイル方式になるのね (スコア:1)
同意。ネイティブなら意義はあったかもしれんが、中間言語使うならJava使えばいいじゃん、と。
1を聞いて0を知れ!
Re: (スコア:0)
中間言語に何かロマンを感じるタイプ?
Re:結局 JIT コンパイル方式になるのね (スコア:1)
むしろ私は、中間言語よりもネイティブにロマンを感じるタイプですが。
1を聞いて0を知れ!
Re: (スコア:0)
せっかくだから Dalvik VM でいいのに。
Re: (スコア:0)
素直に (スコア:0)
>いまのところx86版のNative Client向けに作成されたコードをx86-64やARM版のNative Clientで動作させることはできないが、
>これを改善するため「Portable Native Client Executables(PNaCl)」という技術の開発も進めているという。
Javaにしとけ
やっぱり (スコア:0)
これの利点って何なのでしょうね。
Nativeで動くといっても、デバイス直接触ったり出来るわけではないでしょうし。
日本なら、「車輪の再開発」といわれるのがオチでしょうが
選択の幅が広がるのは良いことですね。
けど、クライアントのブラウザ上で速度が必要な処理…。
FPSとか音声・動画像処理?
思いついたのは、分散コンピューティングをブラウザ上でやる。
空いてるクライアントで、webページにアクセスするだけで、参加できるとか。
あっでもJavaでもできなくないな。
「理想の」DRM(Re:やっぱり (スコア:2, 興味深い)
動画CodecとかDRMにつきものの暗号化・復号化って年々重くなっていますよ。
この手のものは、x86_64で高速な機械ならまだしも普通のパソコンや組み込み用途でJavaなどで実装するのは些か無謀だと思います。ARMやia32を入れてるのは明らかにゲーム機や携帯電話などの組み込み市場を意識してる訳で。
それだったらプラグインにすればいーやん…となりがちですが、プラグインにするとクライアントの機械にコードを残すハメになる。
システム構成によっては再起動すら必要になる。
プラグインをワンタイムで失効させる事も不可能ではないですが、上記のビジネスリスクを考えるとワンタイムのコード実行のフレームワークを新たに作る方がベターと考えたのでしょう。
プラグインの形でフレームワークを配布しておけば、アプリ自体をネットから読み込んで実行して完全に捨ててしまうワンタイム実行が可能になる。
# 当然、Javaや.NETの市場を食い荒らそうという意図もあるでしょうが。
ネットから読み込んだネィティブコードをワンタイム実行させて、処理が終わったら自動的に破棄する。
ある意味理想的なDRMになるように思いますが。
但し、個人的にはそういう個人がプログラムコードやコンテンツを所持して保管も二次利用もできない環境などクソ喰らえ。と思いますが
Re: (スコア:0)
Java等の安全なVMでは、Cのようななんでもありの言語を実行することができませんから新規に作るしかないわけです。
わからん (スコア:0)
> ポータブルなコードを実行時にJITでネイティブコード
なんでこんな何番煎じか判らんようなことを今更するのか誰か教えて。
素直にJavaか.NETではなぜいけないのか?
GoogleはNIH症候群にかかってる。自社で使えばシェアが一定まで
取れてしまうことから誰も止められないという状態にしか見えない。
Re:わからん (スコア:4, 興味深い)
多くの同一意見が書かれてますがここに。
対抗馬はJavaではなくてActiveXなのでは。
そして何故開発するのかと言えば技術のコントロールを自分のものにするためであり、
Googleは別に自社で使うために開発してるだけで、
気前がいいからオープンソースにしてるだけで、
なんか外野が「車輪の再発明」とか「シェアがどうこう」言ってるのは見当違いのような。
それにその名の通り「ネイティブ」なのが速さが重要であって、
参考文献Android NDKを使用してJava言語とC言語で速度比較をする [techfirm.co.jp]
Re:わからん (スコア:1)
まあ、ChromeOS の JVM が JIT コンパイラを持っていないという話かもしれませんが。
Re:わからん (スコア:1, すばらしい洞察)
Re:わからん (スコア:1)
現状、DalvikはJIT無いですね。
NativeCode使いたければNDKを使うしかないかな。
Re: (スコア:0)
Re: (スコア:0)
このNative Client使えばWindows APIとかハードウェアを
直接叩けるってことか。プロセッサだけじゃなくて対象OS毎に
準備するなんてGoogleもマゾいねw
Re: (スコア:0)
Re: (スコア:0)
>なんか外野が「車輪の再発明」とか「シェアがどうこう」言ってるのは見当違いのような。
Googleの検索以外の大半の労力はMS, 最近ではApple, Firefox, Linuxから客を引っぺがす為に割かれてるのは明らかだよ。
良いとか悪いとかはさておき。
個人的にはブラウザなんて狭苦しい窓枠に拘泥するアプリ、サービスは嫌いだな。使いにくいにもほどがある。
こういう頑張り方はあまり歓迎しない。
Re: (スコア:0)
グーグルはOSのシェアなんて気にしてないと思う。
ブラウザのシェアもいらないんじゃない?
クロームは、競争と進化を止めていたブラウザとJavascriptの速度を
活性化させるのが第一目的っぽいし。
OSは、グーグルが提供するサービスを必要十分に満たして、隅々まで
インフラとして機能すれば、どこの会社のでも良いけど、グーグルの
サービスに支配的な圧力をかける可能性がある場合は、「客に具体的な
例を示すた
Re: (スコア:0)
>> ポータブルなコードを実行時にJITでネイティブコード
どちらかというと、C/C++のコードをブラウザ上で、という側面のほうが重要ではないでしょうか。
ffmpegとか、音声認識とか。
Re: (スコア:0)
つ C++/CLI
なんで (スコア:0)
みんなJavaと比較してるの?これの対向ってActiveXじゃないの?
触りもしないであーだこーだ言うのはまあ許せるとしても、最近のアンチgoogleの
脊髄反射っぷりは某信者真っ青の思考停止っぷりですなぁw
無理やりjavaを絡めるならjava appletだと思うが今のappletが使い物に
ならない理由を考えればnative clientが「無意味」であるという結論にはならんと思うが
Re: (スコア:0)
NaCl Java ActiveX
速度 ○ × ○
安全性 ◎ ○ ×
移植性 ○ ○ ×
豊富API ◎ × ◎
Re: (スコア:0)
NaClってネイティブ動作だけどサンドボックス内部で動くから、システム内部にアクセスできるわけじゃないですよね。
多分、GUIも実現できないんじゃないのかな?
API豊富の◎はせいぜい○では、とマジレス。
Re: (スコア:0)
表示方面はWebGLとかで高速化してるんだから、制御側もそれに追いつこうとするのは必然でしょう。
早すぎたんだ (スコア:0)
トランスメタが作っていたクルーソーが発展していれば、
・並列動作対応
・セキュアな環境
・実行速度
の全てが解決できたかもしれないのにな……。
Re:早すぎたんだ (スコア:4, おもしろおかしい)
> ・実行速度
ん?
そこはOSFのANDFが以前通った道だ>PNaCl (スコア:0)
Re: (スコア:0)
退化してねこれ (スコア:0)
ぐぐるって社内の技術者が作ったおもしろそうなものとりあえず出す習慣があって
本気なのかどうなのか分かりかねる