PNaCl:Google通过LLVM增强对Chrome中原生应用的支持

过支持运行LLVM位码(bitcode),Google增强了对Chrome中原生应用的支持。

Google I/O 2013大会上,Google宣布了预期加入的PNaCl(Portable NaCl,读作“pinnacle”),继续推进对Chrome中原生应用的支持。PNaCl修改了原来的工具链,与之前为每种目标平台编译C/C++应用不同,现在开发者只需生成一份LLVM位码,之后位码可以由任一Chrome客户端加载,在本地转换为原生代码、验证和执行。

目前,x86-32、x86-64和ARM架构上的Chrome 29已支持PNaCl。在PNaCl完整发布之后,Chrome客户端能够在任意页面上运行原生模块,而无需将其打包为面向Chrome Web Store的应用。此外,PNaCl模块无需重新编译即可在未来的架构上运行。更为有趣的是,尽管目前只支持C/C++,理论上PNaCl模块可以以任何能够编译为LLVM位码的语言编写,包括ActionScript、Ada、D、Fortran、Haskell、Java字节码、Objective-C、Python、Ruby、Rust、Scala和C#等,拓宽了可以在Chrome中运行的遗留的和较新的原生应用的使用范围,这些应用只需要很小的调整,甚至无需调整。

2010年,4位Google工程师组成的一个团队在内部提出了PnaCl(PDF),几位作者想象的是这样一种解决方案:

  • 为编译的NaCl模块提供一种独立于指令集体系结构(ISA)的格式,无需重新编译即可支持多种目标平台。
  • 便于NaCl开发者构建、测试和部署可移植的执行模块。
  • 首先要支持x86-32、x86-64和ARM指令集,但要很容易支持未来其他流行的通用处理器。
  • 能够保持原生客户端所拥有的安全和性能属性。

PNaCl仍然使用原来的NaCl沙盒机制,以保证运行翻译位码时的安全性。具体逻辑如下图所示,客户端从服务器请求位码,然后针对自己的架构将其转换为原生的可执行代码。翻译可能在本地进行(在另一个NaCI沙盒内),也可能通过另一个实体远程执行。

PnaCl开发工具链支持Windows、Mac和Linux,SDK可以从项目网站下载

查看英文原文:PNaCl: Google Adds More Native Support to Chrome via LLVM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
分析您的网页的性能,并获得有关如何优化它们的具体建议。 与PageSpeed Insights相同,但是使用PNaCl而不是NaCl。 注意: 1.这个扩展是实验性的。 2. UI使用的是与当前(不赞成使用的)PageSpeed Insights扩展名不同的开源代码。 3.如果您使用的是基于ARM的计算机,则这是您现在唯一的PageSpeed Insights选择。 [注:如果您发现任何错误,请在https://github.com/songlibo/pagespeed-chrome-extension/issues提交问题] 更新: 修复问题/ 29,标记数据uri进行缓存。同时在浏览器动作弹出窗口显示一个按钮,以在线打开PageSpeed Insights。 2017-04-26 v0.0.1.7解决问题/ 6,当扩展更新时会断。还要添加一个链接到选项页面。 2017-04-25 v0.0.1.6修复localStorage问题/ 26,忽略扩展文件问题/ 8。默认使用有损压缩的图像(选项恢复到无损),添加选项压缩图像使用Guetzli(警告:使用大量的内存,并非​​常慢)。 2017-03-02 v0.0.1.5修复问题/ 22,24.修正选项的语言选择,显示阿拉伯语和希伯来语的RTL,以及保存/加载结果。 2016-11-30 v0.0.1.4修复问题/ 21 FileError没有被定义。 2016-11-09 v0.0.1.3修复问题/ 20。优化的图像不起作用。 2016-02-19在运行PageSpeed之前检测NaCl插件。如果NaCl不可用,则PageSpeed将无法启动,并提供更好的消息来安装或启用该插件。 2015-12-25更新github上的问题链接,以便您可以提交错误和请求功能。 2015-10-01添加缺少的指南(点击图标弹出)。 2014-02-21添加加载进度 - 首次安装或更新时,PNaCl的加载非常慢。之后应该快。 支持语言:English

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值