当前位置:首页 >探索 >用了30年的Linux内核C语言将升级 虽然 Linux 内核在快速发展

用了30年的Linux内核C语言将升级 虽然 Linux 内核在快速发展

2024-06-30 20:22:15 [百科] 来源:避面尹邢网

用了30年的用年C语Linux内核C语言将升级

来源:OSC开源社区 作者:局长 时间:2022-02-28 11:21:37

根据 Linux 内核邮件列表的消息,社区近日讨论了是内核否要为内核采用现代 C 语言标准。

虽然 Linux 内核在快速发展,升级但它同时依赖着一些非常古老的用年C语工具,其中之一就是内核内核代码仍在使用 1989 年版本的 C 语言标准——此标准在 30 多年前内核项目启动之前就已经编写完成。从讨论结果来看,升级这一情况有望在 5.18 版本内核中改变。用年C语

用了30年的Linux内核C语言将升级 虽然 Linux 内核在快速发展

Jakob Koschel 在向 Linus Torvalds 递交的内核补丁 (https://lkml.org/lkml/2022/2/17/1032) 中修复了内核链表相关的预测执行漏洞。

用了30年的Linux内核C语言将升级 虽然 Linux 内核在快速发展

用了30年的升级Linux内核C语言将升级

用了30年的Linux内核C语言将升级 虽然 Linux 内核在快速发展

起因是 Jakob 发现了一个问题,Linux 内核广泛使用由 struct list_head 定义的用年C语双向链表:

struct list_head {

    struct list_head *next, *prev;

};

这种结构体通常被嵌入到其他结构体中,内核通过这种方式,升级开发者可以使用任何感兴趣的用年C语结构类型制作链表。除此之外,内核内核还提供了大量可用于遍历和操作链表的升级函数和宏。其中之一是 list_for_each_entry(),这是一个伪装成控制结构的宏。要了解如何使用此宏,请假设内核包含如下结构:

struct foo {

    int fooness;

    struct list_head list;

};

list 成员可用于创建 foo 结构体的双向链表,假设我们有一个叫做 foo_list 的结构声明作为此类链表的头,使用以下代码可以遍历此列表:

struct foo *iterator;

list_for_each_entry(iterator, &foo_list, list) {

    do_something_with(iterator);

}

/* Should not use iterator here */

list 参数告诉宏在 foo 结构中 list_head 结构体的名称。此循环将为列表中的每个元素执行一次,迭代器指向该元素。由此导致了 USB 子系统中的一个 bug:传递给该宏的迭代器在退出宏后还能被使用。

Koschel 通过重新编写有问题的代码,以在循环后停止使用迭代器来解决问题。

不过 Linus 却对补丁修复的问题表示不解,也没有看到它与预测执行漏洞的关系。Koschel 对此进行了进一步解释,对此 Linus 认为这只是一个普通的 bug。但不久之后 Linus 发现了问题的根源所在:传递给列表遍历宏的迭代器,必须在循环本身之外的范围内声明。

随后,Linus 认为也许可以采用更直接的修复如块级变量声明。但 C89 不支持,而 1999 年发布的 C99 标准支持。所以 Linux 内核也许是时候转向使用 C99 标准了。

Linus 说到,内核代码一直停留在 C89 的原因之一是编译器 gcc 的旧版本会出现奇怪的问题,导致初始化程序被破坏。不过现在内核要求的 GCC 最低版本已经提高到了 v5.1,那些 bug 可能不再相关了。

另一位密切关注架构编译器问题的内核开发者 Arnd Bergmann 提议直接升级到 C11 甚至 C2x,尽管他不确定 C11 是否会带来任何对内核有用的新内容。不过如果升级到 C17 或 C2x,会破坏对 gcc-5/6/7 的支持,因此升级到 C11 更容易实现,而且跨越太大内核社区未必接受。

Linus 赞成了这个想法,在 Bergmann 确认应该可以这样做之后,Linus 宣布将在下一个内核版本 v5.18 中尝试使用 C11 标准。如果一切顺利,下一个内核版本使用的 C 语言标准有望升级到 C11。

分享:
    文章标签: Linux

    相关推荐

    • 2023 年京东史上最强 618来袭

      在今日举行的 2023 年京东 618 商家大会上,京东宣布今年 618 恰逢京东创业 20 周年,同时也将是史上助力商家增长投入最多、举措最强的 618。

      2023-04-20
    • 安全研究专家报告Google Home严重漏洞获107500 美元赏金

      12 月 30 日消息,安全研究专家马特・昆茨(Matt Kunze)去年向谷歌报告了 Google Home 的严重漏洞,近期获得了谷歌 107500 美元(约 74.9 万元人民币)的高额赏金。

      谷歌 2022-12-30
    • 一加10 Pro和OPPO Find X5 Pro开放升级基于Android13的ColorOS13

      ColorOS 官方今日宣布,OPPO Find X5 和 Find X5 Pro 现已开启 ColorOS 13.0 × Android 13 正式版升级,同时一加 10 Pro 5G 也已开启 ColorOS 13.0 × Android 13 正式版升级。

      OPPO 一加手机 ColorOS 2022-09-23
    • 苹果为 Apple Watch Ultra 发布 watchOS 9.0.1 系统

      苹果今天发布了watchOS 9.0.1,这是对9月首次亮相的watchOS 9操作系统的微小更新。watchOS 9.0.1可用于Apple Watch Ultra,对于即将收到‌Apple Watch Ultra‌的用户来说,这将是第一天的更新。

      苹果 Apple Watch 2022-09-23
    • 苹果推送iOS 16.0.2正式版:修复多个BUG

      9月23日消息:在iOS 16发布后,预装搭载的IPhone 14系列出现了多个问题,例如第三方应用的相机抖动、复制粘贴时频繁请求用户批准的弹窗等。在今日凌晨,苹果推送了iOS 16.0.2正式版更新,内部版本号20A380,这些问题都已修复。

      苹果 iOS 16 2022-09-23

    本周热门

    • 微软推出wsl –install快速安装指令,简化安装,只需一条命令即可安装1微软推出wsl –install快速安装指令,简化安装,只需一条命令即可安装 2021/07/31
    • Windows 10 默认关闭TLS 1.0/1.1协议2Windows 10 默认关闭TLS 1.0/1.1协议 2022/09/16
    • 王者荣耀升级防沉迷措施:限制未成年游戏时间、氪金上限3王者荣耀升级防沉迷措施:限制未成年游戏时间、氪金上限 2021/09/01
    • 笔记本CPU莫名锁频率0.39GHz?可能是过热和快速启动问题4笔记本CPU莫名锁频率0.39GHz?可能是过热和快速启动问题 2022/07/19
    • 人工智能技术在网络安全中的作用5人工智能技术在网络安全中的作用 2020/07/01
    • iOS 微信发布 8.0.24 测试版6iOS 微信发布 8.0.24 测试版 2022/06/10
    • 5G时代新短信到来,如何避免垃圾短信穿上新马甲?75G时代新短信到来,如何避免垃圾短信穿上新马甲? 2020/04/17
    • 安卓 11 来了:realme X50 Pro 5G 推送 realme UI 2.0 正式版8安卓 11 来了:realme X50 Pro 5G 推送 realme UI 2.0 正式版 2020/12/31

    本月热门

    • 微软推出wsl –install快速安装指令,简化安装,只需一条命令即可安装1微软推出wsl –install快速安装指令,简化安装,只需一条命令即可安装 2021/07/31
    • 笔记本CPU莫名锁频率0.39GHz?可能是过热和快速启动问题2笔记本CPU莫名锁频率0.39GHz?可能是过热和快速启动问题 2022/07/19
    • 中通开通默认隐私面单服务:隐藏寄件人/收件人电话号码3中通开通默认隐私面单服务:隐藏寄件人/收件人电话号码 2021/12/10
    • Microsoft Edge 弹窗要求定期导入其他浏览器数据4Microsoft Edge 弹窗要求定期导入其他浏览器数据 2022/02/24
    • Windows 10 默认关闭TLS 1.0/1.1协议5Windows 10 默认关闭TLS 1.0/1.1协议 2022/09/16
    • Windows Server 2012 R2/2019/2022受累积更新影响,出现严重问题6Windows Server 2012 R2/2019/2022受累积更新影响,出现严重问题 2022/01/14
    • QQ账号需“绑定手机号”才能继续使用7QQ账号需“绑定手机号”才能继续使用 2021/08/16
    • 2023 年京东史上最强 618来袭82023 年京东史上最强 618来袭 2023/04/20
    科技 安全 论坛 卡饭教程 手机版

    Copyright2014-2020© 卡饭网  沪ICP备2020031077号-2

    卡饭网提供的所有的资源均来自互联网,如有内容侵犯您的版权或其他利益,请及时向我们提出删除。联系邮箱:kf2020@kafan.cn

    (责任编辑:时尚)

      推荐文章
      热点阅读