【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

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

  • 2013-05-20
  • 本文字数:820 字

    阅读完需:约 3 分钟

通过支持运行 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

2013-05-20 10:452874
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 129.6 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

2023来袭,分享500道我收集的Java架构面试题

钟奕礼

Java 程序员 java面试 java编程

参加前端培训之后能做什么?

小谷哥

前端培训学习后程序员有什么好的方向吗

小谷哥

react源码分析:实现react时间分片

flyzz177

React

信息安全等级保护的5个级别分别是什么?最高级别是哪个?

行云管家

等保 等级保护

从今天起真正释放创造力 | Werner Vogels 在 re:Invent 2022带来多项开发者福音

亚马逊云科技 (Amazon Web Services)

亚马逊云科技

面试官:你先回去等通知吧!这个Java岗位我还有机会吗?

钟奕礼

Java java面试 java编程 程序员、

15年磨一剑,亚马逊云科技数据产品掌门人 Swami 揭秘云原生数据战略的三大关键要素

亚马逊云科技 (Amazon Web Services)

亚马逊云科技

Log4Shell 漏洞披露已近一年,它对我们还有影响吗?

SEAL安全

Log4Shell 12 月 PK 榜

收到7个offer,用同一个技术套路了多位面试官

钟奕礼

Java java程序员 java面试 java编程

大数据培训程序员就业前景如何

小谷哥

26个月89场Java岗面试,0至3年程序员的入职门槛到底是什么?

钟奕礼

Java 程序员 java面试 java编程

Industrial wifi6 Wireless AP/DR AP6018 S AIPQ6010 2T2R 2.4G&5G high power Radio AP

Cindy-wallys

IPQ6010 high power 2.4G&5G

cookie sessionStorage localStorage区别(详解)

达摩

缓存 Web Cookie LocalStorage sessionStorage

Wallys/DR9074E-Qualcomm Atheros QCN9074(QCN9024)/ 4x4 MU-MIMO Dual Band Wireless Module

Cindy-wallys

QCN9074 QCN9024

连阿里P8都赞不绝口的“分布式架构原理设计笔记”到底有多牛

小小怪下士

Java 程序员 分布式 架构设计

盘点 | 4类爆款小游戏开发引擎

FinFish

游戏引擎 小游戏 小游戏开发 微信小游戏 游戏开发引擎

如何通过Java将Word转换为PDF

Geek_249eec

Java PDF word

【iOS逆向与安全】iOS插件开发光速入门

小陈

挤破脑袋要进阿里、腾讯的java程序员,去B站不香吗?

钟奕礼

Java 程序员 java面试 java编程

双机互备是什么意思?双机互备就是双机热备吗?

行云管家

双机热备 双机互备

深入React源码揭开渲染更新流程的面纱

goClient1992

React

react源码分析:组件的创建和更新

flyzz177

React

react源码分析:深度理解React.Context

flyzz177

React

手写一个react,看透react运行机制

goClient1992

React

java程序员培训零基础怎么学

小谷哥

域内用户Hash获取方式总结

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

一个月面试了3家大厂Java岗,我发现这几个突破点

钟奕礼

Java 程序员 java面试 java编程

带你实现react源码的核心功能

goClient1992

React

大数据培训学习的技术基础有哪些

小谷哥

面试官:两个JVM的面试题就能证明,你连拿15K都不配

钟奕礼

Java 程序员 java面试 java编程

PNaCl:Google通过LLVM增强对Chrome中原生应用的支持_Google_Abel Avram_InfoQ精选文章