fbpx
维基百科

Native Client

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

Google Native Client
開發者Google,以及其他開發者
目前版本
源代码库
  • chromium.googlesource.com/native_client/src/native_client.git
编程语言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. ^ https://developer.chrome.com/native-client/sdk/release-notes#chrome-pepper-49.
  2. ^ Stable Channel Update for Desktop. 2023年4月4日 [2023年4月4日] (英語). 
  3. ^ Chrome for Android Update. 2023年4月4日 [2023年4月4日] (英語). 
  4. ^ Chrome Stable for iOS Update. 2023年4月4日 [2023年4月4日] (英語). 
  5. ^ . [2015-01-07]. (原始内容存档于2021-03-08). 
  6. ^ Goodbye PNaCl, Hello WebAssembly!. Chromium Blog. [2017-05-31]. (原始内容于2017-05-30) (美国英语). 
  7. ^ 7.0 7.1 Native Client: A Sandbox for Portable, Untrusted x86 Native Code
  8. ^ Adapting Software Fault Isolation to Contemporary CPU Architectures (PDF). [2011-09-12]. (原始内容 (PDF)于2011-07-23). 
  9. ^ Index of /trunk/src/native_client/src/trusted/validator/x86. [2011-09-12]. (原始内容存档于2012-07-20). 
  10. ^ Native CPU Performance in the Browser with Google Native Client (PDF). [2011-09-16]. (原始内容 (PDF)于2019-02-17). 

外部連結

  • (英文) NaCl計劃官網(页面存档备份,存于互联网档案馆
  • (英文) YouTube上的Google I/O 2009 Native Code for Compute Intensive Web Apps - Google I/O 2009技術專題討論
  • (英文) YouTube上的Google I/O 2012 Life of a Native Client Instruction - Google I/O 2012技術專題討論

native, client, google, 縮寫為nacl, 是一个由谷歌所發起的開放原始碼計劃, 採用bsd许可证, 它採用沙盒技術, 讓intel, arm或mips子集的機器碼直接在沙盒上運行, 它能夠從瀏覽器直接運行程式機器碼, 獨立於使用者的作業系統之外, 使web應用程式可以用接近於機器碼運作的速度來執行, 同時兼顧安全性, 其功能類似於微軟的, activex, 但是activex只支援視窗系統, google, 開發者google, 以及其他開發者目前版本49, 源代码库chromium, go. Google Native Client 縮寫為NaCl 是一个由谷歌所發起的開放原始碼計劃 採用BSD许可证 它採用沙盒技術 讓Intel x86 ARM或MIPS子集的機器碼直接在沙盒上運行 它能夠從瀏覽器直接運行程式機器碼 獨立於使用者的作業系統之外 使Web應用程式可以用接近於機器碼運作的速度來執行 同時兼顧安全性 其功能類似於微軟的 ActiveX 但是ActiveX只支援視窗系統 Google Native Client開發者Google 以及其他開發者目前版本49 1 源代码库chromium wbr googlesource wbr com wbr native wbr client wbr src wbr native wbr client wbr git编程语言C語言 C 操作系统Cross platform Microsoft Windows Linux Mac OS Chrome OS类型利用沙盒技術 讓機器碼在瀏覽器上運行许可协议New BSD license网站code wbr google wbr com wbr p wbr nativeclient自由软件主题 Google將這項功能合併在Chrome OS之下開發 它也可以被用來開發安全的瀏覽器外掛程式 2017年5月31日 Google宣布放棄PNaCl轉向WebAssembly 6 目录 1 技術內容 1 1 沙盒技術 1 2 機器碼驗證器 2 應用軟件的移植 3 參考資料 4 外部連結技術內容 编辑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支援單指令流多數據流指令 如SSE 3DNow 及多執行緒介面 應用軟件一般只需簡單的修改便可以移植到NaCl平台 在2009年一個發布會上 NaCl開發人員示範一個為NaCl平台的移植而修改了20行原始碼的H264解碼器軟件 10 參考資料 编辑 https developer chrome com native client sdk release notes chrome pepper 49 Stable Channel Update for Desktop 2023年4月4日 2023年4月4日 英語 引文格式1维护 未识别语文类型 link Chrome for Android Update 2023年4月4日 2023年4月4日 英語 引文格式1维护 未识别语文类型 link Chrome Stable for iOS Update 2023年4月4日 2023年4月4日 英語 引文格式1维护 未识别语文类型 link Chrome Revision 213999 2015 01 07 原始内容存档于2021 03 08 Goodbye PNaCl Hello WebAssembly Chromium Blog 2017 05 31 原始内容存档于2017 05 30 美国英语 7 0 7 1 Native Client A Sandbox for Portable Untrusted x86 Native Code Adapting Software Fault Isolation to Contemporary CPU Architectures PDF 2011 09 12 原始内容存档 PDF 于2011 07 23 Index of trunk src native client src trusted validator x86 2011 09 12 原始内容存档于2012 07 20 Native CPU Performance in the Browser with Google Native Client PDF 2011 09 16 原始内容存档 PDF 于2019 02 17 外部連結 编辑 英文 NaCl計劃官網 页面存档备份 存于互联网档案馆 英文 YouTube上的Google I O 2009 Native Code for Compute Intensive Web Apps Google I O 2009技術專題討論 英文 YouTube上的Google I O 2012 Life of a Native Client Instruction Google I O 2012技術專題討論 取自 https zh wikipedia org w index php title Native Client amp oldid 74370747, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。