1.什么是PNaCl
PNaCl(Portable Native Client)的简称,是由Google(一个伟大的公司,呵呵)提出的一种可以在浏览器中执行native code的一种技术。该技术到前身是google提出的NaCl(Native Client), NaCl较之PNaCl缺乏移植性,NaCl对于每种架构,需要单独编译完成才能运行,但是PNaCl却不许要,PNaCl使用LLVM中到bitcode的概念,先将C/C++源代码编译成一种中间码(bitCode),然后可以通过一个translate的工具翻译成不同平台的可执行文件。
NaCl与PNaCl的共同点就是跨操作系统。这种跨操作系统是由于浏览器来完成到。
2.PNaCl如何运行
传统的web应用,浏览器内核来解析html,css,javascript然后渲染出页面,对于PNaCl 应用,在浏览器中,会多一个NaCl 模块,通过这个模块来运行C/C++,那么这个模块怎么和js等通信呢?聪明到google工程师开发出了nacl模块与网页通信到API了,那么如何保证运行到C/C++代码到安全呢,chrome是通过一种沙箱机制来防护的。
3. 如何做PNaCl开发呢?
1.先得下个SDK,google提供了该SDK,下载地址如下
https://developers.google.com/native-client/dev/sdk/download
下载下来后是个.zip包(名字是naclsdk.zip):
2.解压后
通过unzip nacl_sdk.zip解压
解压后有个naclsdk文件,该文件为SDK下载管理器
3.下载特定版本pepper
建议选择最新到下载,因为Google的SDK更新很快,一般只保留最新到几个版本,(不过chrome浏览器运行向下兼容到)
4. 下载
下载使用./naclsdk install pepper_31
因为比较大加之,GFW的存在,使得浏览Google网页都很慢,各位要有耐心,下载完成会在当前目录有个Pepper_31目录,最后设置环境变量NACL_SDK_ROOT到pepper_31即可体验了。
感兴趣到可以到google官网了解
https://developers.google.com/native-client/dev/