基于Native Client的编程框架
上面是一個(gè)瀏覽器的架構(gòu)圖,JS引擎+渲染引擎+外殼Shell+內(nèi)核 4部分構(gòu)成了瀏覽器的主體,傳統(tǒng)的插件(上圖左部)通過(guò)NPAPI與瀏覽器通信,Native Client(上圖右部)通過(guò)PPAPI與瀏覽器通信,只有瀏覽器內(nèi)核可以直接訪問(wèn)本地系統(tǒng)OS。
【Native Client】
Native Client是Chrome瀏覽器里面的一個(gè)沙箱,它允許在沙箱里面運(yùn)行本地碼程序,使得程序執(zhí)行速度接近系統(tǒng)的本地程序。同時(shí)它又制定了很多沙箱策略來(lái)限制本地程序安全的執(zhí)行。
【可信程序和不可信程序】
在Chrome瀏覽器里面共有兩種類型的程序存在,可信程序(上圖黑色邊框部分)和不可信程序(上圖藍(lán)色邊框部分)。可信程序認(rèn)為是安全的,能夠訪問(wèn)一切的本地資源;不可信程序由于存在安全隱患,將其放入沙箱之中,不能直接訪問(wèn)本地資源。而傳統(tǒng)的NPAPI插件是被作為可信程序,所以其存在安全隱患。
【基于Native Client的編程框架】
通常在Native Client中運(yùn)行的本地程序只是利用了CPU+內(nèi)存的執(zhí)行優(yōu)勢(shì),它只有一個(gè)newlib或者glibc庫(kù)可以調(diào)用,而我們?cè)贜ative Client搭建了一個(gè)編程框架,提供更多的支持(信號(hào)量、多線程等)給本地程序,使得本地程序計(jì)算能力增強(qiáng)。
編程框架本身是作為可信程序的,能夠訪問(wèn)一切本地資源。因此在這個(gè)新的模型中,本地程序可以跑自己的邏輯,同時(shí)需要訪問(wèn)本地資源時(shí),通過(guò)PPAPI接口調(diào)用就可以了。
總結(jié)
以上是生活随笔為你收集整理的基于Native Client的编程框架的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 所有JavaScript变量/对象都可以
- 下一篇: chrome源代码目录结构简介