Native Client

✍ dations ◷ 2025-11-27 09:54:51 #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解码器软件。

相关

  • 三磷酸尿苷三磷酸尿苷(英语:uridine triphosphate, UTP)是一种嘧啶核苷酸,由碱基、尿嘧啶与核糖组成,另外还接有一个三磷酸于5'位置。UTP主要是作为RNA合成(转录)时的原料。UTP可用作能量来源
  • 冲力说冲力说(theory of impetus)是六世纪时埃及亚历山大港的一个学者约翰·斐劳波诺斯提出的。他否认天体由神灵推动的自然观。他认为造物主创世之初就赋予天体一种“冲力”。这是
  • 百日无孩百日无孩运动,是1991年在中华人民共和国山东省冠县、莘县发生的计划生育运动。有报道称运动从1991年5月1日开始,持续至8月10日,旨在遏制当地的出生人口。政策主张当地妇女无论
  • 圆顶龙圆顶龙属(学名:Camarasaurus)是蜥脚下目恐龙的一属,是种四足的植食性恐龙。它们是北美洲最常见的大型蜥脚类恐龙,但成年体型只有约18米长及体重18公吨。它们生活于晚侏罗世时期,距
  • 犀鸟目犀鸟目(学名:Bucerotiformes)是鸟类分类中的一个目,包括犀鸟、地犀鸟、戴胜及林戴胜等物种,过去曾将此目物种归于佛法僧目中,但有愈来愈多的证明建议应独立分类。本目除了有常见的
  • 二乙二酸-1,4-苯醌酯二乙二酸-1,4-苯醌酯也称为“二乙二酸四羟基-1,4-苯醌酯”、“二草酸四羟基-1,4-苯醌酯”或“二草酸四羟基对苯醌酯”等,是一种有机碳氧化物,其分子式为C10O10。每分子该化合
  • 荷兰首相荷兰首相(Minister-president van Nederland)荷兰王国构成国荷兰的政府首脑,但同时因荷兰在王国内人口和面积的压倒优势而兼仼整个王国的首脑,由1848年宪法修订后创立,首相正式名
  • 德语选举团德语选举团是比利时欧洲议会的三个选区之一。它首先通过职位选出一名欧洲议会议员。这是欧洲议会规模最小的选区,在2004年大选中只有49914名选民。不过比利时德语社群目前无
  • 库米儿库米儿(Čumil,意为守望者、“观察者”)又名“工作中的男人”(Man at Work)是斯洛伐克首都布拉迪斯拉发最著名的雕塑之一,也是市中心最著名的景点之一。这是由Viktor Hulík创作的
  • 水莲雾水莲雾又名水蒲桃(学名:)、水雾莲、番鬼葡萄、番鬼佬葡萄等,为桃金娘科蒲桃属下的一个种。