阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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

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

关注

评论

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

《采访融云CTO杨攀:融云七年发展史》(采访提纲)

后台技术汇

调查采访能力考核

Java入门第一课

ベ布小禅

4月日更

Redis-Sentinel 深入浅出原理和实战

leonsh

redis redis sentinel

二阶单位圆

山@支

为什么我们的生活越来越快?

石云升

读书笔记 28天写作 4月日更

绝了!阿里面试官跟我死磕MySQL,结果我却拿了个高薪offer

码农之家

Java 程序员 面试 MySQL 高可用 刷题笔记

手机自带的多功能百宝箱,没人用真的太可惜了。

彭宏豪95

iphone 效率 工具 苹果 4月日更

计算机原理学习笔记 Day3

穿过生命散发芬芳

计算机原理 4月日更

Nginx源码编译安装与运行

马里奥

nginx 安装 笔记

Vue cli项目 修改运行命令和端口号

空城机

Vue 大前端 4月日更 vue cli

逐行解读Spring- 没人比我更懂循环依赖

学Java关注我

Java 编程 架构 编程语言 技术宅

清理SpringBoot应用无用的metrics指标

远鹏

Java springboot metrics micrometer

荣耀,单刷苹果大boss

脑极体

洛谷 || 混合牛奶 Mixing Milk(贪心算法)

Bob

算法 刷题 4月日更

变易世界,简易战略,不易华为

脑极体

第二周作业

Geek_2e7dd7

架构实战营

产品 0 期 - 第八周作业

vipyinzhiwei

Zabbix 产品周期

耳东@Erdong

zabbix 4月日更 lifecycle

想靠接私活月入5W?建议根据这几个开源的SpringBoot项目(含小程序)模仿一下~

Java架构师迁哥

哭了!从腾讯辞职后找不到工作,投了20多家简历,却只面过一家

Java架构师迁哥

应用宝SDK接入记录

风翱

sdk 4月日更 应用宝

lombok编译报错:java: 找不到符号

李印

IntelliJ IDEA lombok

年度盛会 | Atlassian Team 2021 全球大会重磅嘉宾介绍

Atlassian

Agile Zoom Atlassian Slack

如何横扫大厂Offer?这份“1000道Java后端面试速成笔记”程序员(银四)必备

比伯

Java 程序员 程序人生 软件架构 java编程

重读《重构2》- 提取函数

顿晓

4月日更 提取函数

Java线程讲解,这次没有人学不会了吧!!!

霖~

深度图解Redis Cluster原理

leonsh

redis Gossip redis cluster

【基金系列】10年理财规划师经验分享:不想当韭菜就看一下这些内容

小Q

学习 基金会 理财 基金

方寸之间,书写天地

小天同学

个人总结 4月日更 1 周年盛典 我和写作平台的故事 InfoQ 写作平台 1 周年

领域驱动设计(DDD):领域和子域

xcbeyond

领域驱动设计 DDD 4月日更

Rust:关于闭包的一点研究

Microwood

rust 闭包 closure

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