Native Client

✍ dations ◷ 2025-11-24 05:58:03 #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解码器软件。

相关

  • 立克次氏体等立克次体(学名:Rickettsia),或者称立克次氏体,是一类细菌,但许多特征和病毒一样,如不能在培养基上培养,可以通过瓷滤器过滤,只能在动物细胞内寄生繁殖等。直径只有0.3-1μm,小于绝大
  • 大型强子对撞机坐标:46°14′N 06°03′E / 46.233°N 6.050°E / 46.233; 6.050大型强子对撞机(英语:Large Hadron Collider,缩写:LHC)是一座位于瑞士日内瓦近郊欧洲核子研究组织的对撞型粒子加
  • 麻赫穆德·喀什噶里麻赫穆德·喀什噶里(维吾尔语:.mw-parser-output .font-uig{font-family:"UKIJ Tuz","UKIJ Nasq","UKIJ Basma","UKIJ_Mac Basma","UKIJ Zilwa","UKIJ Esliye","UKIJ Tuz Basm
  • 糖原生成糖原生成(英语:Glycogenesis)是指生物体中糖原合成的过程,其中葡萄糖分子被添加到糖原链上以用于储存。在肝脏进行完科里循环后的休息时期,此过程被启动起来;胰岛素也可以启动这一
  • 两栖动物两栖动物(学名:Amphibia)是两栖纲生物的通称,又名两生动物,包括所有生没有卵壳的卵,拥有四肢的脊椎动物(蚓螈的四肢已退化)。两栖动物的皮肤裸露,表面没有鳞片、毛发等覆盖,但是可以分
  • 皮埃蒙特大西洋美国皮埃蒙特大西洋城市带(英文:Piedmont Atlantic Megaregion,缩写:PAM)是美国11个城市群中的其中一个,位于美国东南部,人口约为1,761万人。皮埃蒙特大西洋城市带位于美国东南部,并
  • 线性判别分析线性判别分析 (LDA)是对费舍尔的线性鉴别方法的归纳,这种方法使用统计学,模式识别和机器学习方法,试图找到两类物体或事件的特征的一个线性组合,以能够特征化或区分它们。所得的
  • 阿敏哲哲阿敏哲哲,塔山前卫都督兼第二代哈达国国主扈尔干之女,清太祖努尔哈赤之福晋,后世文献所称侧妃。她是努尔哈赤继母、清显祖次夫人恳哲的侄女,恳哲对嫡夫人厄墨气所出的淑勒贝勒努
  • 世界跳跃日世界跳跃日是一个发生在世界协调时2006年7月20日11时39分13秒的一个活动。在这个时间,这个活动计划让西半球的6亿人同时一起跳。他们宣称这可以移动地球现有的轨道,并解决温室
  • 大山郁夫大山郁夫(1880年9月20日-1955年11月30日)是一位日本政治人物。1880年出生于兵库县赤穗郡若狭野村(现相生市)。早稻田大学毕业后留校任教,1917年加入朝日新闻社,第二年因为白虹贯日