日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

漫谈Google的Native Client(NaCl)技术

發布時間:2024/4/15 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 漫谈Google的Native Client(NaCl)技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Native Client簡介

Native Client是Google在瀏覽器領域推出的一個開源技術,它允許在瀏覽器內編譯Web應用程序,并執行原生的編譯好的代碼。Native Client有以下幾個優勢(參考Google官方英文介紹):

  • 為Web提供更多的圖形,音頻以及其他功能:可以直接在web上執行了原生的2D,3D圖形渲染程序(對Web游戲很有用),播放音視頻,響應鼠標鍵盤事件,多線程執行代碼等等,而這一切,不需要瀏覽器安裝任何插件。
  • 良好的可移植性:一個Web程序,只需要開發一份代碼,即可以在所有平臺(包括Windows,linux,Mac等)運行。
  • 高安全性:安裝不被信任的桌面程序一級瀏覽器插件,可能帶來很高的安全風險(如程序攜帶木馬,病毒)。而Native client使用了雙層沙盒(sandbox)設計來保護用戶的本地資源。Native Client的架構可以保證web要應用的安全性,并且取得和原聲代碼相同或相近的性能。
  • 方便從桌面遷移:很多開發廠商之前花了大力氣開發桌面程序,隨著云計算的到來,越來越多的程序會被移植到互聯網上,由于NaCl支持直接執行C/C++/Java等代碼,Native Client技術可以簡化移植過程,減少移植成本。
  • 高性能:Native Client可以讓web應用已接近桌面程序的性能運行,這就為在瀏覽器內運行性能苛刻的程序提供了基礎,如大型3D游戲。

Native Client技術概要

有人說,Native Client技術是抄襲ActiveX的,個人不以為然,ActiveX主要是基于COM的,是操作系統提供一套可重用的接口給web應用,而NaCl則是獨立于操作系統的。說實話,感覺這技術更像是抄襲Adobe的Alchemy技術,Achemy技術主要目的是解決Flash的低性能,這和Native Client是接近的,并且,這兩種技術都采用了LLVM技術,具體可以看這篇文章http://yjrl.iteye.com/blog/320665。

LLVM?是 Low Level Virtual Machine 的簡稱,這個庫提供了與編譯器相關的支持,能夠進行程序語言的編譯期優化、鏈接優化、在線編譯優化、代碼生成。簡而言之,可以作為多種語言編譯器的后端來使用。而基于LLVM ,開源社區開發出了Clang,一個C++ 編寫、基于 LLVM、發布于 LLVM BSD 許可證下的 C/C++/Objective C/Objective C++ 編譯器,其目標(之一)就是超越 GCC。

Google 的Native Client的關鍵技術就是PNaCl(Portable Native Client Executables),而PNaCl實現的一個關鍵就是LLVM。下面是整個PNaCl結構示意圖:?


在PNaCl中,開發者通過一些前端編譯器將C/C++/Fortan源代碼用對應的編譯器前端編譯成LLVM的中間字節碼,并且進行優化以及鏈接(這一整套流程可以在Google提供的SDK中完成)。之后,服務器將鏈接好的字節碼進行分發,在客戶端,通過LLVM的后端將字節碼翻譯成本地的二進制對象文件,并且和本地的相關庫鏈接,最終執行完成(這些功能應該是集成在瀏覽器中的)。

另外,為了保證安全性,NaCl采用了沙盒技術,具體可以看這篇論文:《Native Client: A Sandbox for Portable, Untrusted x86 Native Code》。

參考:

http://www.lingcc.com/2010/06/02/10955/

http://nativeclient.googlecode.com/svn/data/site/pnacl.pdf

總結

以上是生活随笔為你收集整理的漫谈Google的Native Client(NaCl)技术的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。