Native Client

✍ dations ◷ 2025-12-04 16:21:13 #Google软件,自由软件,安全软件

Google Native Client(缩写为NaCl),是一个由谷歌所发起的开放源代码计划,采用BSD许可证。它采用沙盒技术,让Intel x86、ARM或MIPS子集的机器代码直接在沙盒上运行。它能够从浏览器直接运行程序机器代码,独立于用户的操作系统之外,使Web应用程序可以用接近于机器代码运作的速度来运行,同时兼顾安全性。其功能类似于微软的 ActiveX,但是ActiveX只支持视窗系统。

Google将这项功能合并在Chrome OS之下开发。它也可以被用来开发安全的浏览器外挂程序。

2017年5月31日,Google宣布放弃PNaCl转向WebAssembly。

NaCl使用Newlib作为它的C标准库,但它也支持GNU C 库。

它最初只支持x86平台,但目前也支持ARM平台与x86-64。

NaCl运用沙盒技术以防止外来(第三方)机器代码影响系统安全;特别是在x86平台上运用存储器区段,限制插件所能读写的存储器范围。

由于ARM与x86-64长模式不支持存储器区段,因此在这些平台上NaCl的存储器写入地址是由沙盒过滤。

NaCl运用机器代码验证器(Code Validator)来保证只有安全机器代码能在系统运行。由于x86/x86-64是复杂指令集,指令长度不一,透过控制流程可能隐藏非安全机器代码,从而使验证十分耗时。NaCl运用固定长度的16或32字节的指令束(Instruction Bundle),使机器代码验证器设计简单(只有约600行C语言)和高效率; 而运用指令束只是失去5%的运行效率。

NaCl支持单指令流多数据流指令(如SSE、3DNow!)及多线程接口,应用软件一般只需简单的修改便可以移植到NaCl平台;在2009年一个发布会上,NaCl开发人员示范一个为NaCl平台的移植而修改了20行源代码的H264解码器软件。

相关

  • 地质时代地质年代是用来描述地球历史事件的时间单位,通常在地质学和考古学中使用。地质年代共分为六个时间单位,从大到小依次是是宙/元(eon)、代(era)、纪(period)、世(epoch)、期(age)、时 (chron
  • 第二次意大利独立战争第二次意大利独立战争,也称为法奥战争、萨奥战争或是1859年意大利战争(法语:Campagne d'Italie de 1859),交战双方为法国-萨丁尼亚联军和奥地利帝国,这场战争在意大利的统一过程扮
  • 夏普莱斯卡尔·巴里·夏普莱斯(英语:K. Barry Sharpless,1941年4月28日-),美国化学家,前麻省理工学院化学系正教授,2001年诺贝尔化学奖得主。基于他对点击化学的突出贡献,汤森路透预测他将二
  • 衡平法院在普通法系中,衡平法(英语:equity)是指法院在判例法及成文法之外采用的一系列法律原则。衡平法起源于十三到十四世纪的英国。传统上,普通法对原告的救济措施较为受限,仅限于赔偿以
  • 接合子受精卵(zygote、合子)在发育生物学中用来描述生物的第一阶段,此时它只是一个单细胞。这个词也会被较为宽松地运用于经过最初几分裂后的细胞,虽然严格地讲这一阶段应称为卵裂球(分
  • 布宜诺斯艾利斯方尖碑布宜诺斯艾利斯方尖碑(西班牙语:Obelisco de Buenos Aires)是阿根廷布宜诺斯艾利斯的地标,位于科连特斯大道和七月九日大道交汇处的共和国广场,1936年为庆祝建城400周年而建,高67.
  • 老年护理管理老年护理管理(Geriatric care management,也称 Elder care management, Senior health care management,及 Professional care management)是规划和协调对患有身体和/或精神障碍
  • 日本筝日本筝,日语写为“箏”,偶尔写作“琴”(但是“琴”本是另外的乐器,指“和琴”),口语经常称为“こと”,是日本传统音乐中一项重要的乐器,一般认为源自于中国的古筝。著名的古典筝曲有
  • 曾祯曾祯,制作人,从事戏剧工作长达十八年,参与制作过之戏剧作品近三十部,擅长剧组运作之各项统筹执行工作、拍摄进度掌控、人力资源调度分配、剧本构思策划及撰写等,目前为瑞陞传播有
  • 南部麒次郎南部麒次郎(日语:なんぶ きじろう,1869年4月2日-1949年5月1日),日本知名的枪械设计师,被称为日本的勃朗宁,勋二等瑞宝章获得者、工学博士。生于肥前国(佐贺县)锅岛藩的武士家族,为当时