微软向开源又迈进了一大步:Checked C

Posted 冯琪的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微软向开源又迈进了一大步:Checked C相关的知识,希望对你有一定的参考价值。

导读 微软开源了 Checked C ,这是一个 C 语言的扩展版本,可以用于解决 C 语言中的一系列安全相关的隐患。正如其名字所示,Checked C 为 C 语言增加了检查,这个检查可以帮助开发者检查常见的编程错误,比如缓存区侵占buffer overruns、内存访问越界、不正确的类型转换等。这些编程错误往往是造成许多重大安全漏洞的根本原因,比如破壳漏洞Shellshock、心脏出血漏洞Heartbleed、沙虫Sandworm等。

技术分享

Checked C 通过修改控制指针来解决这些问题,指针被程序员们用来定义他们的代码所操作的内存地址。当指针数量一多,指针控制就往往容易忙中出乱,项目越大跟踪它们就越困难,类似 Chromium、Firefox、Office、OpenSSL 以及其它的大型代码库在这方面都存在这样的问题,你可以从它们的变更日志中看到大量的这类问题修复。“Checked C 允许程序员更好的描述他们想要如何使用指针,以及指针应该指向的内存范围”,微软说,“这个信息可以用于在运行时环境中添加检测,以侦测错误的数据访问,而不是让错误悄悄的发生而无所察觉。”

技术分享

Checked C 也将允许开发者检测到他们以为 C 语言有、而实际却没有的功能误用。按编程界的说法来讲,这个叫做“边界检查bounds checking”的功能,用于检查变量/指针是否在它的范围之内赋值,C# 和 Rust 已经有这样的功能了,而且还不止于此。然而不幸的是,被广泛使用的 C 和 C++ 却没有这样的功能,微软希望只需要对现有的 C/C++ 程序做最小的改动,利用 Checked C 就可以得到安全方面的改善,这样会吸引大量的开发者开始使用 Checked C。

Checked C 项目已经放到了 GitHub 上。这并不是微软第一次对基本编程语言做出来自己的演绎,之前该公司的程序员们还创建了一个名为 TypeScript 的 javascript 的超集,并且它已经得到了广泛认可。

以上是关于微软向开源又迈进了一大步:Checked C的主要内容,如果未能解决你的问题,请参考以下文章

牛津计划折射微软开源领域“大步走”

免费报名挑战与机遇同在,大步迈进全真互联网时代

牛逼,微软又干了一件好事

枪向理想模块化迈进:柯尔特CM901模块化卡宾枪

开源灵活的操作系统推动机器人向智能化迈进

.NET 5 和 C#9 /F#5 一起到来, 向实现 .NET 统一迈出了一大步