Native Client

(重定向自Google Native Client

Google Native Client(縮寫為NaCl),是一个由谷歌所發起的開放原始碼計劃,採用BSD许可证。它採用沙盒技術,讓Intel x86ARMMIPS子集的機器碼直接在沙盒上運行。它能夠從瀏覽器直接運行程式機器碼,獨立於使用者的作業系統之外,使Web應用程式可以用接近於機器碼運作的速度來執行,同時兼顧安全性。其功能類似於微軟ActiveX,但是ActiveX只支援視窗系統。

Google Native Client
Google Chrome icon (2011).svg
開發者Google,以及其他開發者
穩定版本
SDK: Pepper 45 (2015年7月10日,​4年前​(2015-07-10), Client:
Windows, macOS, Linux83.0.4103.116(2020年6月22日,​15天前​(2020-06-22[1]
Android83.0.4103.112(2020年6月18日,​19天前​(2020-06-18[2][3]
iOS83.0.4103.88(2020年5月28日,​40天前​(2020-05-28[4]
預覽版本
0.5
(2011年7月28日,​8年前​(2011-07-28
源代码库 編輯維基數據鏈接
编程语言C語言C++
操作系统Cross-platform: Microsoft Windows, Linux, Mac OS, Chrome OS
类型利用沙盒技術,讓機器碼瀏覽器上運行
许可协议New BSD license
网站code.google.com/p/nativeclient

Google將這項功能合併在Chrome OS之下開發。它也可以被用來開發安全的瀏覽器外掛程式。

2017年5月31日,Google宣布放棄PNaCl轉向WebAssembly[6]

技術內容编辑

NaCl使用Newlib作為它的C標準函式庫,但它也支援GNU C 函式庫

它最初只支援x86平台,但目前也支援ARM平台與x86-64

沙盒技術编辑

NaCl運用沙盒技术以防止外來(第三方)機器碼影響系統安全;特別是在x86平台上運用記憶體區段,限制外掛程式所能讀寫的記憶體范围。[7]

由於ARM與x86-64長模式不支援記憶體區段,因此在這些平台上NaCl的記憶體寫入地址是由沙盒過濾。[8]

機器碼驗證器编辑

NaCl運用機器碼驗證器(Code Validator)来保證只有安全機器碼能在系統執行。由於x86/x86-64是複雜指令集指令長度不一,透過控制流程可能隱藏非安全機器碼,從而使驗證十分耗時。NaCl運用固定長度的16或32位元組的指令束(Instruction Bundle),使機器碼驗證器設計簡單(只有約600行C語言)和高效率;[7] [9] 而運用指令束只是失去5%的執行效率。

應用軟件的移植编辑

NaCl支援單指令流多數據流指令(如SSE3DNow!)及多執行緒介面,應用軟件一般只需簡單的修改便可以移植到NaCl平台;在2009年一個發布會上,NaCl開發人員示範一個為NaCl平台的移植而修改了20行原始碼的H264解碼器軟件。[10]

參考資料编辑

  1. ^ Stable Channel Update for Desktop. Chrome Releases. Blogger. 2020-06-22 [2020-06-22]. 
  2. ^ Chrome for Android Update. Chrome Releases blog. Blogger. 2020-06-18 [2020-06-18]. 
  3. ^ Google Chrome. OmahaProxy CSV Viewer. Chromium team. 
  4. ^ Chrome - web browser by Google. iTunes Preview. 2020-05-28 [2020-05-28]. 
  5. ^ Chrome Revision 213999
  6. ^ Goodbye PNaCl, Hello WebAssembly!. Chromium Blog. [2017-05-31] (美国英语). 
  7. ^ 7.0 7.1 Native Client: A Sandbox for Portable, Untrusted x86 Native Code
  8. ^ Adapting Software Fault Isolation to Contemporary CPU Architectures 互联网档案馆存檔,存档日期2011-07-23.
  9. ^ Index of /trunk/src/native_client/src/trusted/validator/x86 Archive.is存檔,存档日期2012-07-20
  10. ^ Native CPU Performance in the Browser with Google Native Client

外部連結编辑