1. 程式人生 > >ARChon 分析之三:Native Client

ARChon 分析之三:Native Client

這篇文章主要是分析ARChon如何實現跨平臺。

Archon 如何實現跨平臺?

拉程式碼下來會發現幾乎沒有文件,核心的程式碼都被編譯成 so 庫。官方提供了幾篇文章。

這幾篇都是科普如何操作的文章,看完之後知道了 Chrome 基於 Native Client 做了跨平臺.

什麼是 Native Client ?

Native Client是一個沙箱,用於在瀏覽器中高效。 安全地執行已編譯的C和C ++程式碼,與使用者的作業系統無關。 Portable Native Client擴充套件了該技術的架構獨立性。 允許開發人員編譯其程式碼一次,以便在任何網站和任何具有提前(AOT)轉換的架構上執行。 簡而言之,Native Client將本機程式碼的效能和低階控制帶到現代Web瀏覽器。 而不會犧牲Web的安全性和可移植性

Native Client有兩種版本。

  • Portable Native Client(PNaCl):發音為’pinnacle’,PNaCl執行單個行動式(pexe)可執行檔案,並且在大多數Chrome實現中都可用。 Chrome內建的翻譯器將pexe轉換為客戶端硬體的本機程式碼。在執行任何程式碼之前,而不是在執行程式碼時,將翻譯整個模組。 PNaCl模組可以從任何Web伺服器託管。

  • Native Client(NaCl):也稱為傳統或非Portable Native Client,NaCl執行依賴於架構的(nexe)模組,這些模組打包到應用程式中。在執行時,瀏覽器根據客戶端的體系結構決定載入哪個nexe通過Chrome Web Store(CWS)安裝的Apps和Extensions可以使用NaCl模組而無需其他提示。也可以在開發期間從chrome://擴充套件或命令列安裝NaCl應用程式,但是,這不是推薦的分發機制。

如何編寫 Native Client的程式?

// TODO