NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:452892
用户头像
臧秀涛 略懂技术的运营同学。

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

关注

评论

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

低代码平台选型的道与术

人称T客

涨薪15K,从小公司成功逆袭,拿到美团P2-3级offer(面经+心得)

Java架构师迁哥

“智慧旅游”:区块链能否驾驭文旅行业?

电微13828808271

智慧公安

私有依赖的打包与上传

blueju

JavaScript 大前端 npm

MySQL-技术专题-Lock入门到精通

洛神灬殇

MySQL lock

新纪元·新生态!聚焦前沿科技,拥抱万物智联——2021开源科技节重磅来袭!

两面翻转盒子案例(3d效果)

赫鲁小夫

4月日更

物联网设备天线设计与选型指南

不脱发的程序猿

物联网 4月日更 物联网设备天线 天线设计与选型指南 射频

WordPress中常用的8个函数

Sakura

4月日更

你的Parquet该升级了:IOException: totalValueCount==0问题定位之旅

华为云开发者联盟

sql spark ETL任务 Parquet totalValueCount

解决了这5大障碍,才能用好混合云!

浪潮云

混合云

四面字节斩获offer,二十不惑的年纪我的人生就这样第一次的走上了正轨,看到了前途希望与光明

钟奕礼

Java 编程 程序员 架构 面试

我,第一次做项目经理,干赔了

四猿外

站在巨人的肩膀上!淘宝网Java千亿级并发系统架构设计笔记

Java架构追梦

Java 架构 亿级并发 淘宝网

2021最新分享阿里P6面经及心得

比伯

Java 架构 面试 程序人生 计算机

“区块链+电子证照”,推动数字化经济建设

电微13828808271

区块链+ #区块链#

SARIF在应用过程中对深层次需求的实现

华为云开发者联盟

DevSecOps 元数据 SARIF 软件安全 规则

IDEA实用快捷建

华血

量化策略交易系统,马丁策略平台搭建

匪夷所思?双非本末的我是如何六面阿里 --最终斩获Java岗P7offer

钟奕礼

Java 编程 程序员 架构 面试

浅谈一个优秀的 Android SDK 需要具备哪些要点

神策技术社区

android 数据采集 sdk 神策数据

架构实战训练营

Nick~毓

架构实战营 模块一 作业

PB

架构实战营

我能斩获自己跳动offer,全靠在一周内肝完这426页阿里面试通关手册,

钟奕礼

Java 编程 程序员 架构 面试

架构学习模块一作业

架构实战营

MVVP:一种基于状态的架构模式的设计与实现

行者

字节跳动上亿级别秒杀系统优化,用这个方案可行吗?

Java架构师迁哥

HDFS的block块和副本机制

大数据技术指南

hadoop hdfs 4月日更

在微前端中,antd icon createFormIconfontCN 的本地化问题

blueju

大前端 antd umijs

Elasticsearch入门,看完又要会!慎点

比伯

Java 架构 面试 程序人生 架构师

辽宁重点人员管控系统搭建,指挥调度系统搭建

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