范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Linux之父终于被劝动用了30年的Linux内核C语言将升级至C11

  还在使用 89 年版 C 语言的 Linux 内核,现在终于要做出改变了。今天,Linux 开源社区宣布,未来会把内核 C 语言版本升级到 C11 ,预计 5.18 版之后生效 ,也就是今年 5 月。
  这个决定很突然,从发起问题到官方声明,不过才一个星期,要知道说服固执的 Linux 之父Linus Torvalds 可不是件容易的事。事情的原因,说起来还有那么一点偶然的因素。一个 bug 的连锁反应
  问题的起源是来自上周的一次 Linux 社区讨论。
  一位名叫 Jakob Koschel 的博士生,在研究阻止与内核链表 primitive 相关的预测执行漏洞时,发现了这样一个问题。
  Linux 内核广泛使用由 struct list_head 定义的双向链表 :structlist_head{ structlist_head*next,*prev; };
  这种结构通常嵌入到其他结构中。通过这种方式,可以使用任何相关的结构类型制作链表。
  除此之外,内核还提供大量可用于遍历和操作链表的函数和宏。list_for_each_entry () 就是其中之一,这是伪装成一种控制结构的宏。问题就出在这个宏上。假设内核包含如下结构:structfoo{ intfooness; structlist_headlist; };
  list 中的元素可用于创建 foo 结构的双向链表。假设有一个叫做 foo_list 的结构声明作为此类链表的头,使用以下代码可以遍历此链表:structfoo*iterator;  list_for_each_entry(iterator,&foo_list,list){ do_something_with(iterator); } /*Shouldnotuseiteratorhere*/
  list 参数告诉宏在 foo 结构中 list_head 结构的名称。这个循环将为列表中的每个元素执行一次,迭代器指向该元素。由此导致了 USB 子系统中的一个 bug:传递给该宏的迭代器在退出宏后还能被使用。
  这是一件危险的事情,所以 Koschel 提交了一个修复补丁,在循环后停止使用迭代器搞定了 bug。
  说服 Linus
  但是 Linus Torvalds 本人并不太喜欢这个补丁,也没有看到它与预测执行漏洞的关系。在 Koschel 详细解释后,Linus 承认这只是一个普通的 bug。
  然而事情并没有那么简单,Linus 不久后意识到了真正的根源:传递给链表遍历宏的迭代器,必须在循环本身之外的范围内声明。这种非预测性 bug 发生的原因是,C89 中没有"在循环中声明变量"。
  像 list_for_each_entry () 这样的宏,从根本上总是将最后一个 HEAD 入口泄漏到循环之外,仅仅是因为我们不能在循环本身中声明迭代器变量。
  如果可以编写一个可以声明自己的迭代器列表遍历宏,那么迭代器在循环之外将不可见,并且不会出现此类问题。但是,由于内核停留在 C89 标准上,因此无法在循环中声明变量。
  Linus 决定,那咱们还是升级吧,也许是时候转向 C99 标准了。虽然它也有 20 多年的历史,但至少比 C89 新,可以在循环中声明变量。
  既然 C89 如此陈旧,这么多年还没做出改变呢?Linus 说,那是因为我们在一些古老的 gcc 编译器版本中遇到了一些奇怪的问题,不能随便升级。
  但是,现在 Linux 内核已将 gcc 的最低要求提升至 5.1 版,因此过去那些奇怪的 bug 应该不会有了。
  而另一位核心开发者 Arnd Bergmann 认为,咱们完全可以升级到 C11 甚至更高版本。但如果升级到 C17 或 C2x,会破坏对 gcc-5/6/7 的支持,因此升级到 C11 更容易实现。
  最终,Torvalds 赞成这个想法:"好的,请提醒我,让我们在 5.18 合并窗口的早期尝试一下。"接下来迁移到 C11 可能会导致一些意想不到的 bug,但如果一切顺利,下一个 Linux 内核版本将正式转向 C11。
  参考链接:
  [1]https://lwn.net/SubscriberLink/885941/01fdc39df2ecc25f/
  [2]https://news.ycombinator.com/item?id=30459634

AtariVCS复古主机与AntstreamArcade达成游戏合作外媒报道称,雅达利刚刚与第三方AntstreamArcade达成了合作,为定于2019年末2020年初发布的AtariVCS复古游戏主机提供了坚实的后盾。此前,许多人担心Atari微软将SSD默认加密切换到BitLocker软件加密去年,微软发布了有关固态硬盘驱动器(SSD)新漏洞的安全公告,该漏洞会影响SSD上基于硬件的加密。该漏洞是由荷兰拉德堡德大学的荷兰安全研究人员CarloMeijer和Bernard微软将关闭Windows开发人员反馈UserVoice论坛将使用反馈中心据外媒MSPoweruser报道,微软使用UserVoice已有很长一段时间了,该公司已使用反馈来改进添加各种功能。但是,随着Windows10的发布,微软已经逐渐将反馈移至反馈中三星LinktoWindows功能即将向其他Galaxy手机开放在GalaxyNote10系列新品发布会上,三星宣布了一项名为ldquoLinktoWindowsrdquo的独占功能。该功能可在没有蓝牙或者额外下载的情况下,具备类似于ldquo苹果分享墨西哥AppleAntara开业盛况现场人潮涌动位于墨西哥城的AppleAntara旗舰店于今天正式对外开业,将会为波拉卡诺(Polacano)地区成千上万的用户提供各项服务。该AppleAntara旗舰店位于墨西哥波拉卡诺区的Google图片搜索栏目发生变动按条件查找所需的照片变得困难Google图片的起源故事有点不寻常,无论您是否相信,它可以追溯到2000年2月格莱美颁奖典礼上詹妮弗middot洛佩兹(JenniferLopez)穿着的标志性绿色连衣裙。事件发一种难以被WindowsDefender检测到的恶意软件正在快速传播微软和思科Talos表示,一种新的,难以被反病毒软件发现的恶意软件正在积极开发中,目前正在欧洲和美国的数千台计算机中传播。该恶意软件被微软称为Nodersok,或被CiscoTalSurfacePro6Book2锁频0。4GHz的修复补丁已在测试稍后发布在收到今年8月的固件更新之后,SurfacePro6和SurfaceBook2两款设备强制CPU锁频至0。4GHz,且无法恢复。随后微软承认这个问题并表示将会很快发布修复补丁。今天谷歌宣布Android10预装YouTube音乐取代GooglePlay音乐谷歌今天宣布,YouTube音乐将预安装在所有Android9和Android10新设备上,并且明确表示,谷歌自己的Pixel系列产品将预装YouTube音乐。谷歌表示,在预装Yo刺客信条系列游戏总销量超1。4亿份刺客信条系列游戏已经推出超过10年,但在育碧的精心运营下依然表现出蓬勃生命力。分析师DanielAhmad拿到的一份媒体文档显示,刺客信条游戏全球累计总销量突破了1。4亿份,玩家数苹果发布iOS13。1。1更新修复第三方键盘APP安全等问题今日,苹果发布了iOS13。1。1iPadOS13。1。1更新,对13。1版的诸多bug进行修复。具体来看,iOS13。1。1主要对以下几个方面的问题进行了修复修复了可能导致iPh
谷歌宣布为Chat应用网页版和PWA版推出黑暗模式IT之家8月22日消息谷歌于8月20日宣布,自家的GoogleChat聊天应用网页版PWA版将推出黑暗模式,开启后可以获得与移动App类似的体验,有助于减缓眼睛疲劳。GoogleC有钱了,Linux5。10LTS维护时间延长至2026年底IT之家5月10日消息Linux5。10LTS原本只计划被维护到2022年底,然而最新的公告显示,该版本的维护时间将会延长至2026年底。IT之家此前报道,Linux内核主要维护者华为鸿蒙HarmonyOS2。0开启第二轮公测新增七款机型,快来看看有没有你IT之家5月9日消息华为HarmonyOS官网显示,鸿蒙系统第二轮公测开启,新增七款机型华为nova6nova65Gnova75Gnova7Pro5Gnova8nova8ProMa通知被禁用也不怕,谷歌Chrome浏览器将拥有更好的网页同步功能IT之家5月16日消息在最新的谷歌ChromeCanary浏览器中,出现了一项新的实验功能,名为SendTabtoSelf2。0,该功能可将帮页面或链接更高效地发送到其他设备。IT谷歌Chrome浏览器正在测试加强版历史记录可记忆用户的书签选项卡组浏览历史等IT之家4月17日消息谷歌Chrome浏览器Canary通道推出了一项新功能,该功能名叫Memories,可记录用户的历史操作。与当前的历史记录功能不同,Memories功能不光可最后1天腾讯QQ超级会员5折10元月腾讯QQ超级会员与QQ黄钻豪华版现已开启5折大促,超级会员折后10元月,黄钻折后7。5元月,今晚0点(7月12日2359)活动结束天猫腾讯QQ超级会员年卡此商品不支持退换货,请谨慎腾讯QQPC版9。3。6内测版发布图片查看更便捷感谢IT之家网友yfme的线索投递!IT之家7月9日消息据IT之家网友反馈,腾讯QQPC版内测版本7月8日迎来了V9。3。6内测版更新,针对查看图片方面进行了多项优化与改进。新版本微信电脑版3。2。1版本发布新增视频号入口IT之家3月23日消息微信于3月22日更新了电脑版的3。2。1版本,增添视频号的观看和直播功能,可以让主播使用PC发起直播,提供更为专业的设置。直播功能不仅支持电脑画面,而且支持苹统信UOS专用设备操作系统V20正式发布高安全高稳定支持灵活定制IT之家5月13日消息据统信官方发布,今日,统信操作系统家族的重要一员统信专用设备操作系统V20正式发布!IT之家获悉,官方介绍,统信专用设备操作系统V20(UnionTechOS统信UOS珍藏版安装套件限时特价,2人拼团只需36。9元,不限购IT之家4月26日消息今天统信官方表示,拼团大作战即将打响,2021年牛年统信UOS个人版系统安装套件,拼团交个朋友走心价36。9元。IT之家获悉,统信表示,珍藏版数量有限,4月2视频调色软件达芬奇17Beta2更新50多项改进IT之家11月21日消息根据BlackmagicDesign的消息,DaVinciResolve17Beta2已经发布,添加了众多改进,包括提升了Windows系统下从网络磁盘安装