在最近的 Linux 6.9-rc4 版本中,Linus Torvalds 采取了一个特别的方法来应对那些不能正确处理制表符(tabs)的 Kconfig 解析器。
Kconfig 是 Linux 内核配置系统的一部分,用于定义内核的可配置选项。
事件起因是有一个等待被合并的内核补丁引起了 Linus 注意,该补丁目的是将内核跟踪(kernel tracing)Kconfig 文件中的一个制表符替换为一个空格字符。这个替换导致某些第三方的内核配置解析工具在处理制表符时出现了问题。
Linus Torvalds 决定亲自动手,为那些不能处理制表符的 Kconfig 解析器编写了一个补丁 —— 他故意在处理页面大小的通用 Kconfig 文件中加入了一些制表符,以此来干扰任何不能正确处理这些制表符的解析器。
Linus 在补丁中写道,之前的一个提交【Commit d96c36004e31 ("tracing: Fix FTRACE_RECORD_RECURSION_SIZE Kconfig entry")】移除了一个隐藏的制表符,因为它在某些第三方的内核配置解析工具中导致了问题。
他指出,如果一个工具不能将制表符作为空白字符解析,那么它就不应该用来解析内核的 Kconfig 文件。因为制表符在 Kconfig 文件中是至关重要的。
Linus 强调,如果解析器不能正确处理制表符,那么它们也不应该能够处理页面大小的配置。
Linus 还提到,制表符与空格的混淆在 Unix 系统中是一个历史遗留问题,例如 'make' 工具在这方面就存在问题。但他明确表示,这并不意味着这是可以接受的。
他还说道,如果发现更多这种愚蠢的工具,他可能会在 Kconfig 文件中加入更多的随机制表符,尽管他不想让事情变得不必要地丑陋。
原文转自:开源中国
原文链接:Linus 亲自动手,阻止内核开发者用空格替换制表符
看到有个评论很有意思:
看到问题,不去解决问题,而是解决不能解决问题的程序,是吧?
于是那些应用学会到处拉屎XD
不懂,但是大概是处理代码不规范的意思。
Popular Ranking
Popular Events
在最近的 Linux 6.9-rc4 版本中,Linus Torvalds 采取了一个特别的方法来应对那些不能正确处理制表符(tabs)的 Kconfig 解析器。
事件起因是有一个等待被合并的内核补丁引起了 Linus 注意,该补丁目的是将内核跟踪(kernel tracing)Kconfig 文件中的一个制表符替换为一个空格字符。这个替换导致某些第三方的内核配置解析工具在处理制表符时出现了问题。
Linus Torvalds 决定亲自动手,为那些不能处理制表符的 Kconfig 解析器编写了一个补丁 —— 他故意在处理页面大小的通用 Kconfig 文件中加入了一些制表符,以此来干扰任何不能正确处理这些制表符的解析器。
Linus 在补丁中写道,之前的一个提交【Commit d96c36004e31 ("tracing: Fix FTRACE_RECORD_RECURSION_SIZE Kconfig entry")】移除了一个隐藏的制表符,因为它在某些第三方的内核配置解析工具中导致了问题。
他指出,如果一个工具不能将制表符作为空白字符解析,那么它就不应该用来解析内核的 Kconfig 文件。因为制表符在 Kconfig 文件中是至关重要的。
Linus 强调,如果解析器不能正确处理制表符,那么它们也不应该能够处理页面大小的配置。
Linus 还提到,制表符与空格的混淆在 Unix 系统中是一个历史遗留问题,例如 'make' 工具在这方面就存在问题。但他明确表示,这并不意味着这是可以接受的。
他还说道,如果发现更多这种愚蠢的工具,他可能会在 Kconfig 文件中加入更多的随机制表符,尽管他不想让事情变得不必要地丑陋。
原文转自:开源中国
原文链接:Linus 亲自动手,阻止内核开发者用空格替换制表符