NVIDIA 尝试使用 SPARK 语言取代部分 C 语言代码
知名编程语言 Ada 与 SPARK 所属公司 AdaCore 发布了一则关于 NVIDIA 的案例 ,案例显示:NVIDIA 的产品运行着许多经过正式验证的 SPARK 代码,NVIDIA 安全团队正尝试使用 SPARK 语言取代 C 语言,来实现一些对安全较为敏感的应用程序或组件。
SPARK 是一种编程语言和一组验证工具,旨在满足高保证软件开发的需求。SPARK 基于 Ada 语言,它既对 ada 语言进行子集化以删除无法验证的功能,又扩展了合约和方面的系统,进一步支持模块化、形式化验证。
SPARK 语言一般用于可预测和高度可靠操作的系统中的高完整性软件,它有助于开发需要高安全性或业务完整性的应用程序。
早在 2018 年, NVIDIA 就针对“从 C 转换为 SPARK”这一过程进行了概念验证 (POC) 练习,在三个月内将两个低级别的安全敏感应用从 C 转换为 SPARK 代码。在对投资回报进行评估后,该团队得出结论:随着新技术的增加(培训、实验、新工具等),应用程序安全性和验证效率也得到了提高,转换为 SPARK 代码的两个应用程序实现了安全稳健性的重大改进(有关评估结果的更多信息,请参阅 NVIDIA 的进攻性安全研究 D3FC0N 演讲)。
由于 POC 的结果证明从 C 转换为 SPARK 的可行性,SPARK 语言的使用在 NVIDIA 内迅速传播开来。现在已有超过 50 名受过专业培训的开发人员使用 SPARK 实现了许多组件,且许多 NVIDIA 产品现在都附带 SPARK 组件。
另外,SPARK 有一项很有趣的特性:它可以在代码中指定程序的需求,并使用相关的工具集来确保代码实现的功能与需求相匹配。NVIDIA 更多地使用 SPARK 来实现最关键的组件,确保它没有运行时错误,并确保它符合受信任根应用程序的规范。
此外,完整的案例研究涵盖了一些有趣的主题,比如与 C 相比,SPARK 的性能 “根本没有看到任何性能差异“。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
共建第二阶段 | openKylin 0.9版本公测活动正式开启!
大家好,openKylin是一个开放、多元的社区,所有人均可参与贡献,目前,openKylin 0.9公测版本已经发布,现邀请所有社区用户参与本次版本公测活动,与我们一起携手共建! 活动时间 2022年11月4日—2022年12月4日 活动规则 本次活动依然采取积分制,根据积分排名发放奖品,积分由openKylin社区QA SIG项目维护人员根据大家提交的issue数量、issue信息完整性、问题严重性、是否为已知问题等四方面进行评定,0.9版本已知问题可查看版本更新日志,请勿重复提交。 奖项设置 截至2022年12月4日,积分排名前十的小伙伴可获得openKylin精美礼包一份(多功能数据线+定制贴纸),此外: 若个人所得积分达500,可获得华为B6手环一个; 若个人所得积分达300,可获得罗技键盘K580一个。 参与方式 1.签署CLA 参与贡献前,请大家前往 https://cla.openkylin.top/页面,签署openKylin社区贡献者许可协议。我们所有的操作都需要建立在此基础上。签署完成后,即可参与版本公测。 2.参与公测 自由提交反馈 当你在使用系统的过程中,发...
- 下一篇
openKylin 小程序上线啦!带你探索更多玩法~
为方便openKylin社区用户更好的参与社区互动,社区平台组推出了openKylin小程序,整合了会议管理、活动管理和问题反馈等功能。 会议管理模块:SIG小组管理员可快速的创建会议,SIG成员可查看与预约会议,会议临近时可进行消息提醒,满足日常便捷开会诉求。 活动管理模块:可随时查看社区发布的线上或线下活动,并可在小程序上进行报名。 问题反馈模块:可一键提交问题或需求,并可查看问题处理进度,非常的高效便捷。 点开长按识别下方二维码进入openKylin小程序 1分钟,带你了解openKylin微信小程序所有功能 1.注册登录 以下是openKylin小程序的注册登录流程: 其中,微信授权登录小程序后会提示您与openKylin社区ID绑定,这样更方便的让您看到您在社区里的所有贡献成果以及获得的所有积分信息。 2.会议创建权限申请 1、openKylin SIG小组角色有3种:Owner、Maintainer、Contributor。 2、原则上只有SIG小组的Owner和Maintainer才有创建会议的权限。 3、首次创建会议时,需要先填写giee账号进行权限的申请,由运营人员在...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- MySQL8.0.19开启GTID主从同步CentOS8