Linus 亲自动手,阻止内核开发者用空格替换制表符
在最近的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文件中加入更多的随机制表符,尽管他不想让事情变得不必要地丑陋。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开放签电子签章第一季度总结和第二季度目标
.................,这个总结和目标貌似来的稍微晚一些。 一、接下来说说正题,以下是第一季度产品的完成度: 二、从产品版本号上来说,工具版从1.0更新至1.2版本,企业版本从1.2版本更新至2.0版本(升级7个版本)。这三月对团队每个人来说是蜕变和升级,又重新回归了不定时的加班和随时待命状态。(版本号如何定义,后面产品经理可以单独介绍一篇。) 三、说说第二季度产品的工作目标: 开源工具版更新迭代目标 1.开源工具版目前构建电子签章系统基础能力已足够,接下来的目标以优化用户体验为主。具体增加哪些核心能力以开源用户提出的需求为主;(命运的齿轮交给各大开源用户,有需求可以投稿) 开放签企业版更新迭代目标 上线签署意愿校验功能,包括密码校验、短信/邮箱校验以及人脸识别校验,并支持后台可配置; 优化企业版本的地化部署繁杂问题,主要解决前端域名配置、访问地址配置等问题,支持使用单一域名; 上线平台自定义信息和服务配置功能,包括系统标题、短信模版编号、实名认证开关、邮箱服务以及数字证书规则; 上线3-5个常用合同模版控件,例如单选框、多选框、下拉列表等; 上线企业版整体授权机制管理机制...
- 下一篇
Ben Skeggs 加入英伟达,继续开发 Nouveau
Ben Skeggs 是开源 Nouveau 驱动程序的长期维护者,此前曾受雇于红帽公司。他从 2008 年起就开始担任 Nouveau 的维护者,并在很大程度上主导了内核驱动程序部分,在红帽工作期间一直是 Nouveau 内核驱动程序的第一贡献者。 但在 2023 年 9 月,Ben Skeggs 在邮件列表宣布从红帽辞职,并退出 Nouveau 开发。然而在缺席 Nouveau 驱动程序开发活动几个月后,Ben Skeggs 突然发布了一组庞大的补丁系列,共包含 156 个补丁,主要与 Nouveau GSP 固件启用工作的后续相关。 该系列补丁的重点是替换 NVKM 和 Nouveau DRM 驱动程序之间的 ioctl-like interface,利用更直接的调用来减少驱动程序的开销和调用链的复杂性。在此过程中,还进行了大量代码清理。这 156 个补丁影响了约一万行代码。 值得一提的是,Ben Skeggs 是用一个新的邮件地址提交的这一系列补丁,而这一地址隶属于英伟达公司。这意味着,Ben Skeggs 现在或就职于英伟达,并在以官方身份继续开发 Nouveau 驱动程序。...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- 设置Eclipse缩进为4个空格,增强代码规范
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装