Google Native Clientとは? わかりやすく解説

Weblio 辞書 > コンピュータ > IT用語辞典 > Google Native Clientの意味・解説 

Google Native Client

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/11/09 00:36 UTC 版)

Google Native Client
開発元 Google
最新版
Pepper 45 / 2015年6月10日 (8年前) (2015-06-10)
リポジトリ
プログラミング
言語
C++
対応OS Microsoft Windows, macOS, Linux, Chrome OS, Android
サポート状況 終了
種別 ネイティブコードを安全に、しかし効率的に実行することを目標としたサンドボックスフレームワーク
ライセンス BSDライセンス
公式サイト developers.google.com/native-client/
テンプレートを表示

Google Native Client(ネイティブクライアント、食塩を意識してNaClと略される)は、ネイティブコードを安全に、しかし効率的に実行することを目標とした、サンドボックスを中心としたフレームワークである。当初はその名の通りネイティブコード版のみであったが、その後の情勢などにより、現在はプロセッサアーキテクチャ非依存の Portable Native Client (PNaCl) もあり、それについても述べる。

WebAssemblyの普及に伴いそちらにリソースを集中するため開発を終了し、2019年にChromeから削除されることを発表[1]。2023年に削除された[2]

概要

NaCl、PNaClともx86ARMに対応したものが公開されている。ウェブブラウザ上のウェブアプリケーションをネイティブアプリケーションに近い速度[3]で実行することなどを主な目標とした、安全にネイティブコードを実行できるシステムである。PC版およびChrome OSGoogle Chrome 14からはChromeウェブストアで配布されているアプリケーションを実行する場合に限りデフォルトで有効になっており、それ以外の場合はchrome://flags/で有効にする必要がある[3][4]Google Chrome 29からPNaClが導入され、Google Chrome 31(デスクトップ版のみ)からは、PNaCl がデフォルトで有効になっており、NaClとは異なりAdobe FlashのようにChromeウェブストア以外の一般のウェブページ内に埋め込みでも使用できる[5]

NaClのARMへの実装は、2010年3月にリリースされた[6]x86-64もサポートされている。しかし、NaClはCPU依存であり、それぞれホストの命令セットへコンパイルされたバイナリしか使用できない。Portable Native Client (PNaCl) では、LLVM中間言語コードを採用することでこの問題を解決しており、CPU非依存でアプリケーションを動作させられる[7]。PNaCl向けに書かれたアプリケーションをEmscriptenを使い、汎用のJavaScriptとして動作させるための、pepper.js英語版もGoogleは開発している。

標準CライブラリとしてNewlibを使用しているが、NaClはポートされたGNU Cライブラリ(glibc)も使用可能である[8]。今のところ、PNaClはglibcは未対応。標準CライブラリではPOSIXスレッドも使用可能であるが[9]、プロセスはサポートしていない。

Google Chrome 14 (release 0.5) から、Native Clientは安定版のABIを持っていて、将来のバージョンでの上位互換性を保証している[10]。同様に、PNaClの方はGoogle Chrome 31以降、上位互換性を保証している[11]

NaCl、PNaClはGoogleによってオープンソースプロジェクト(BSDスタイルのライセンス)として開発が進められていた[12]

サンドボックス

NaClはARMとx86-64でのサンドボックス化のため、ソフトウェアによるフォールト分離を利用している[13]。x86-32での実装は、サンドボックスのメモリ空間を規制するなど一部用途以外ではx86のセグメンテーション機能を用いない[14]。システムコールの呼び出しなどの危険な命令の実行を防ぐためには、コード検証機を利用する。また、安全な命令の中に隠された危険な命令へジャンプすることを防ぐため、Native Clientでのインダイレクトジャンプは32バイトブロックの先頭へのみ許されるほか、ジャンプ先ブロックが不定なジャンプは許可されない[14]。これらの制約のため、C言語で書かれたプログラムは Native Client 上で動作するためにはカスタマイズされたGNU toolchain、特にgccbinutilsで再コンパイルすることが必要になる。

Pepper API

Pepper APIはNative Clientアプリケーションを作成するために使えるクロスプラットフォームAPIで、PPAPI (Pepper Plug-in API) とも呼ばれる。ネットスケープのNPAPIがベースとなっており、ブラウザを超えた機能に安全にアクセスすることができる[9]

名前の由来は、Native Clientの略がNaClで、塩化ナトリウム(食塩)の化学記号であることから、調味料・香料としてセットにされる塩コショウの胡椒 (Pepper) から来ている[9]

以下はPPAPI環境下で使用できる機能。

  • JavaScriptインターフェース
  • リモートファイルローダ
  • ローカルファイルIO
  • 2Dグラフィックス
  • 3Dグラフィックス (OpenGL ES 2.0)
  • オーディオ再生
  • WebSocket
  • 各種入力(マウス、キーボード、ゲームパッド等)
  • ゲーム向け支援機能(マウスカーソルロック、フルスクリーン等)
  • etc ...

Mozilla の反応

JavaScript の生みの親であり、Mozilla CTO の ブレンダン・アイク は、ECMAScript 6 で十分であると述べ、NativeClient の必要性を退けている[15]Mozillaバイスプレジデントである Jay Sullivan は NativeClient を指して「これらのネイティブアプリはウェブページのブラックボックスでしかなく、(中略)我々はHTMLを信じており、我々が集中したいと考えるものだ」("These native apps are just little black boxes in a webpage. [...] We really believe in HTML, and this is where we want to focus.")と述べた[16]

関連項目

参照

  1. ^ WebAssembly Migration Guide (P)NaCl Deprecation Announcements
  2. ^ 株式会社インプレス (2023年11月1日). “「Google Chrome 119」が正式公開 ~Android版は「Android 7.0 Nougat」対応を終了/セキュリティ関連の修正は全15件”. 窓の杜. 2023年11月9日閲覧。
  3. ^ a b Native Client: A Technology for Running Native Code on the Web
  4. ^ How to Test-Run Web Applications
  5. ^ Chrome 31 Beta: Android Application Shortcuts, requestAutocomplete(), and PNaCl
  6. ^ Google's Native Client goes ARM and beyond”. The H (2010年3月18日). 2010年5月19日閲覧。
  7. ^ PNaCl: Portable Native Client Executables
  8. ^ NativeClient: Plash Wiki
  9. ^ a b c Native Client Technical Overview
  10. ^ Official NaCl Release Notes
  11. ^ Stability of the PNaCl bitcode ABI
  12. ^ Google Native Client on Google Code
  13. ^ David Sehr, Robert Muth, Cliff L. Biffle, Victor Khimenko, Egor Pasko, Bennet Yee, Karl Schimpf, Brad Chen (2010年). “Adapting Software Fault Isolation to Contemporary CPU Architectures”. 19th USENIX Security Symposium. 2011年7月31日閲覧。
  14. ^ a b Bennet Yee, David Sehr, Greg Dardyk, Brad Chen, Robert Muth, Tavis Ormandy, Shiki Okasaka, Neha Narula, Nicholas Fullagar (2009年). “Native Client: A Sandbox for Portable, Untrusted x86 Native Code”. IEEE Symposium on Security and Privacy (Oakland'09). 2011年7月31日閲覧。
  15. ^ JavaScript founder dismisses Google Native Client, pushes ECMAScript 6
  16. ^ Mozilla: Our browser will not run native code

外部リンク


「Google Native Client」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Google Native Client」の関連用語

Google Native Clientのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Google Native Clientのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【Google Native Client】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのGoogle Native Client (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS