基于Native Client的编程框架


上面是一个浏览器的架构图,JS引擎+渲染引擎+外壳Shell+内核 4部分构成了浏览器的主体,传统的插件(上图左部)通过NPAPI与浏览器通信,Native Client(上图右部)通过PPAPI与浏览器通信,只有浏览器内核可以直接访问本地系统OS。


【Native Client】

Native Client是Chrome浏览器里面的一个沙箱,它允许在沙箱里面运行本地码程序,使得程序执行速度接近系统的本地程序。同时它又制定了很多沙箱策略来限制本地程序安全的执行。

【可信程序和不可信程序】

在Chrome浏览器里面共有两种类型的程序存在,可信程序(上图黑色边框部分)和不可信程序(上图蓝色边框部分)。可信程序认为是安全的,能够访问一切的本地资源;不可信程序由于存在安全隐患,将其放入沙箱之中,不能直接访问本地资源。而传统的NPAPI插件是被作为可信程序,所以其存在安全隐患。

【基于Native Client的编程框架】

通常在Native Client中运行的本地程序只是利用了CPU+内存的执行优势,它只有一个newlib或者glibc库可以调用,而我们在Native Client搭建了一个编程框架,提供更多的支持(信号量、多线程等)给本地程序,使得本地程序计算能力增强。

编程框架本身是作为可信程序的,能够访问一切本地资源。因此在这个新的模型中,本地程序可以跑自己的逻辑,同时需要访问本地资源时,通过PPAPI接口调用就可以了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值