【译文】 Linus Torvalds 在 Linux Kconfig 中故意将缩进的使用复杂化
原文中文,约1600字,阅读约需4分钟。
📝
内容提要
Linux内核6.9-rc4发布,调整了bcachefs和缓解了Spectre式本地分支历史注入数据泄漏。Linus Torvalds修改了配置文件,以防劣质解析器。
🔎
延伸解读
Kconfig 缩进规则与解析器要求
Kconfig 语言使用缩进来划分配置块,类似于 Python 和 YAML。Linus Torvalds 将空格缩进改为制表符缩进,并强调解析器必须能正确处理制表符作为空白。这提醒工具开发者,解析内核 Kconfig 文件时不能假设缩进总是空格,而应遵循语言规范,支持制表符和空格的混合使用。
对解析工具生态的影响
Torvalds 的修改被视为对解析工具适应性的考验,旨在淘汰无法处理制表符的劣质工具。这可能会促使工具作者改进其解析器,以正确读取内核配置文件。对于依赖这些工具的开发者来说,可能需要更新或更换工具,以确保与最新内核的兼容性。
与 Postel 定律的关联
文章将 Torvalds 的做法与 Postel 定律(接受要自由,发送要保守)联系起来。Torvalds 在发送端故意使用复杂的缩进,以测试接收端(解析器)的宽容度。这体现了在开源项目中,通过实际代码变更来推动工具改进的策略,而非直接批评。
❓
Q&A
Linux内核6.9-rc4的主要更新内容是什么?
Linux内核6.9-rc4包含对bcachefs的调整和对Spectre式数据泄漏的缓解措施。
Linus Torvalds为什么要修改Kconfig中的缩进方式?
Torvalds修改缩进方式是为了防止劣质解析器,并迫使解析工具改进。
Kconfig语言在Linux内核中有什么作用?
Kconfig语言用于控制内核构建系统,通过缩进划分配置区块。
Torvalds的修改对解析工具有什么影响?
此修改旨在测试解析工具的适应性,淘汰无法正确处理缩进的工具。
Linus Torvalds在处理邮件时有什么变化?
Torvalds在2018年休息了一段时间,以帮助更好地控制邮件中的情绪。
Torvalds对解析器的期望是什么?
Torvalds希望解析器能够正确解析内核Kconfig文件,尤其是处理制表符。
🏷️