LWN:5.18 开发周期数据分析!

华为OD机试真题 2026.11.4. 新系统 【河流水系流量评估】 华为OD机试真题 新系统【河流水系流量评估】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【河流水系流量评估】多语言题解。 阅读详情

关注了就能看到更多这么棒的文章哦~

Statistics from the 5.18 development cycle

By Jonathan Corbet
May 23, 2022
DeepL assisted translation
https://lwn.net/Articles/895800/

5.18 版内核在经历了 9 周的开发周期后于 5 月 22 日发布。这说明又到了该看看这次 release 背后的一些统计数据的时候了,这是近期最繁忙的一次 release。请继续阅读来了解 5.18 内核中的代码都来自哪里,以及是如何进入 mainline 的。

在 5.18 开发周期中,有 2024 名开发者提交了 14954 个 non-merge changeset,其中 289 人是首次给内核提供代码贡献。这些数字都不是历史最高值,尽管开发者的数量已经很接近迄今为止的最高值了(5.13 版本时的 2062)。这个版本中内核增加了 756,00 行代码。

对 5.18 贡献最大的人是:

Most active 5.18 developers
By changesets
Krzysztof Kozlowski2141.4%
Matthew Wilcox1641.1%
Christoph Hellwig1541.0%
Geert Uytterhoeven1400.9%
Ville Syrjälä1350.9%
Jonathan Cameron1190.8%
Andy Shevchenko1180.8%
Lorenzo Bianconi1170.8%
Vladimir Oltean1110.7%
Hans de Goede1100.7%
Martin Kaiser1100.7%
Colin Ian King1040.7%
Sean Christopherson1000.7%
Jakub Kicinski1000.7%
Christophe JAILLET890.6%
Michael Straube870.6%
Jani Nikula860.6%
Trond Myklebust810.5%
Eric Dumazet800.5%
Christophe Leroy800.5%
By changed lines
Leo Li22767619.4%
Qingqing Zhuo19775716.9%
Ian Rogers720086.1%
Alan Kao158141.3%
Ming Qian121761.0%
Linus Walleij88810.8%
Krzysztof Kozlowski88440.8%
Dimitris Michailidis87910.7%
Christoph Hellwig71650.6%
Matt Roper71140.6%
Jakub Kicinski70400.6%
Jacob Keller68770.6%
Geert Uytterhoeven60390.5%
Ranjani Sridharan57680.5%
Evan Quan52320.4%
Guodong Liu49440.4%
Mauro Carvalho Chehab48160.4%
Vladimir Oltean47760.4%
Brett Creeley46600.4%
Adrian Hunter46510.4%

Krzysztof Kozlowski 是为 5.18 贡献最多 patch 的开发者。他的工作主要是对 device-tree 的更新。Matthew Wilcox 成功地合并了另一组 folio patch。Christoph Hellwig 继续对 block 和文件系统层进行大规模重构。Geert Uytterhoeven 为 Renesas 的 pin-control 代码进行了大量的改进,Ville Syrjälä 在英特尔 i915 图形驱动上做了大量工作。

在 "changed lines" 这一列中,Leo Li 仅用 5 个 patch 就为 AMD 图形驱动增加了超过 20 万行的寄存器定义,然后 Qingqing Zhuo 又添加了近 20 万行。Ian Rogers 对 perf 工具进行了一些改进,Alan Kao 贡献了一个删除 nds32 架构的 patch,Ming Qian 贡献了若干 Amphion media driver。

给所有 patch 进行过最多的 test 和 review 的人员是:

Test and review credits in 5.18
Tested-by
Daniel Wheeler15511.7%
Damien Le Moal775.8%
Konrad Jankowski544.1%
David Howells534.0%
Mike Marshall534.0%
Gurucharan382.9%
Marc Zyngier322.4%
Vladimir Murzin322.4%
Randy Dunlap211.6%
Jiri Olsa171.3%
Julian Grahsl161.2%
Yihang Li151.1%
Reviewed-by
Rob Herring2172.7%
Christoph Hellwig2042.6%
Andy Shevchenko1431.1%
AngeloGioacchino Del Regno1101.4%
Stephen Boyd1031.3%
Pierre-Louis Bossart1031.3%
Alex Deucher981.2%
Krzysztof Kozlowski961.2%
Hans de Goede911.1%
Péter Ujfalusi881.1%
Jani Nikula861.1%
Himanshu Madhani851.1%

Daniel Wheeler 继续提供了最多的 test 工作,他在许多 AMD 图形驱动 patch 中都加上了自己的 Tested-by tag。值得注意的是,Wheeler 不定期地发布对已经完成的测试的总结。Damien Le Moal 测试了许多 folio patch。Konrad Jankowski 在定期测试英特尔的网络驱动 patch。

关于 review 这一列,Rob Herring 在经常 review 那些 device-tree 的 patch。Christoph Hellwig 则 review 了许多 block 和文件系统子系统中的 patch–也 review 了一些 folio patch。Andy Shevchenko 则 review 了许多 driver patch,主要是在 I2C、GPIO 和 pin-control 子系统中。

过去我们这些数字经常持怀疑态度,因为它们并没有完全捕捉到到社区中发生的所有 test 和 review 工作,而且很容易被人利用。肯定还有很多工作没有反映出来,但是毫无疑问这些名单上的 test 人员和 review 人员肯定是不会错的。也许这反映了开发人员和他们的雇主(尤为重要)对这些活动的价值有了更多的了解。

对于 bug report 方面的情况就留给读者来判断了:

Top bug-report credits for 5.18
kernel test robot23219.3%
Zeal Robot766.3%
Syzbot726.0%
Abaci625.2%
Dan Carpenter292.4%
Hulk Robot272.2%
Stephen Rothwell262.2%
Igor Zhbanov191.6%
Randy Dunlap121.0%
Rob Herring90.7%

如今,bug report 显然是 robot 的工作了。但请注意,虽然有 2249 个(这是到目前为止的数字) 5.18 patch 被 backport 到 5.17 稳定版的更新中了,但只有 1075 个 patch 包含 Reported-by tag。这表明,有一半以上的 fix 并没有使用这些 tag。也就是说可能有不少 bug report 都没有记录好该感谢谁报出了这个问题。

在这个开发周期中贡献最积极的雇主是:

Most active 5.18 employers
By changesets
Intel170811.4%
(Unknown)11557.7%
Red Hat9586.4%
Google8865.9%
(None)8185.5%
AMD7815.2%
Linaro5603.7%
Huawei Technologies4713.1%
Facebook4463.0%
NVIDIA3962.6%
(Consultant)3632.4%
SUSE3442.3%
IBM3342.2%
Oracle3252.2%
Arm2942.0%
Renesas Electronics2621.8%
MediaTek2491.7%
NXP Semiconductors2361.6%
Canonical2271.5%
Microchip Technology2011.3%
By lines changed
AMD46764239.9%
Intel1070819.1%
Google1038018.8%
(Unknown)496694.2%
Linaro296312.5%
Red Hat288072.5%
(None)279892.4%
NXP Semiconductors214181.8%
NVIDIA192031.6%
MediaTek189801.6%
Facebook160361.4%
Andes Technology158141.3%
(Consultant)143141.2%
Huawei Technologies134831.1%
IBM119601.0%
Microchip Technology118531.0%
Renesas Electronics114271.0%
SUSE101280.9%
Canonical89840.8%
Fungible87910.7%

像往常一样,这里没有什么特别的意外惊喜。

Patch flow and signed tags

【图太大,读者自己去LWN 上看吧 https://lwn.net/Articles/895911/】

上边这个难以辨认的图表展示了 patch 进入 mainline 内核的路径。每个矩形框代表一个 Git 仓库,箭头则展示了 patch 从一个仓库到另一个仓库的移动过程。这张图是由 gitdm 这一组 git 分析工具(可从 git://git.lwn.net/gitdm.git 获得)中的 treeplot 来生成的,它可以展示代码在维护者社区中移动的总体情况。

这张图仍然相对比较平坦;大多数维护者直接向 Linus Torvalds 推送他们的修改。然而,中间途径的仓库所的作用在稳步增长,其中最大的那几个中间库分别是负责处理 networking、graphics、system-on-chip 和字符驱动子系统的。该图展示了我们当前的系统是如何使内核开发进程扩展到目前的规模的,而且很可能还会继续超越当前的规模。

每个箭头的颜色表示了这个仓库是否在被推送到下一级仓库的 patch 上使用了 signed tag;红线就表示没有这种 tag。在 tag 上使用 GPG 签名的话就可以让收到请求的维护者来验证这个 pull request 是真的由它代表的人来创建的。如果所有的 pull request 都包含 signed tag,那么攻击者就很难欺骗维护者去从恶意的分支拉取数据了。

正如多年来在 LWN 记录的那样,普遍使用 signed tag 的进展一直在缓慢推进。但最近,Torvalds 变得更加坚持了,明确要求那些顽固不化的维护者要加入到这个计划中来。最终结果是在 5.18 版本中,只有 714 个 patch 不是来自 signed tag 的,其中 565 个是由 Torvalds 直接合入的,根本没有通过别的 Git 仓库来到达。因此,在这个树状结构的最顶层,转换来使用 signed tag 的工作几乎已经完成了,仅仅是在开始采用这种做法 11 年后。不过,一些中层的维护者显然仍未要求在 pull request 上使用 signed tag,所以这个过程中仍有一些漏洞。

Older bugs

许多应用于 5.18 的 patch 都是用来修复 bug 的,这些 bug 有多老?对这个问题有一个近似回答的方法,就是看看有多少出现在 stable update 中的 fix 是在 5.18 中才首次出现的。一个 bug fix 肯定是不会 backport 到最早出现该 bug 的版本的。5.18 的情况如下:

ReleaseBackports
5.17 (Mar 2022)2,249
5.15 (Oct 2021)1,762
5.10 (Dec 2020)1,185
5.4 (Nov 2019)756
4.19 (Oct 2018)532
4.14 (Nov 2017)422
4.9 (Dec 2016)331

从上面可以看出,有 331 个 fix(到目前为止)已经从 5.18 一路移植到了 5 年多前发布的 4.9 内核。换句话说,经过五年多的密集 fix(4.9 的 stable update 已经添加了将近 22000 个 fix),我们仍然平均每天还在对 4.9 要修复差不多 5 个 bug。我们也需要到内核的生命终止之前才会修完所有 bug 吧。

总而言之,内核开发仍然犹如一个高速运转的机器。其中有很多 bug 正在被修复,毫无疑问,更多的 bug 正在被引入。最终我们得到的成果就是当前咱们在使用的 kernel 了。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

9606deae50151e61b2c6ebe35c55547d.png

Drupal远程代码执行漏洞(CVE-2018-7600)实战复现:从检测到写入WebShell的全过程 本文详细解析了Drupal远程代码执行漏洞(CVE-2018-7600)的实战复现过程,从环境搭建、漏洞检测到WebShell写入的全流程。该高危漏洞影响Drupal 6.x至8.x版本,允许攻击者未经授权执行任意代码。文章提供了多种POC构造方法和高级利用技巧,帮助安全研究人员深入理解漏洞原理并掌握验证技术。 阅读详情

相关推荐

Java Web 图书管理系统的制作指南

实现对图书信息的增删改查(CRUD)操作。支持用户登录与权限管理。图书借阅与归还功能。系统管理员可以管理用户信息和图书库存。

Xiaoxin的博客 1629

Openvswitch手册(9): Flow

这一节我们将flow table flow table主要由ovs-ofctl命令操作 ovs-ofctl可以走和openflow controller一样的协议: ssl:ip[:port]: The specified SSL port (default: 6633) on the host at the given ip, which must be expressed as ...

weixin_34375054的博客 428

解决在封装自定义IP时加入ila,或者其他ip核时出错的情况

在查阅很多资料后,明白了这个应该是软件bug,但是最终还是解决了问题 我们只需要删除

weixin_42553916的博客 3604

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 222

Linux内存管理(17):percpu 分配器——基本原理

随着 SMP(对称多处理器架构)的发展,在享受处理器更快的执行效率的同时,也为数据同步带来了更大的挑战,因为在 SMP 架构中,程序确实是在并发执行,从单 CPU 只需要考虑调度风险,到SMP 中还需要考虑多 CPU 中同时执行的风险,而且在单 CPU 下乱序执行也会在 SMP 架构中带来,从而也衍生了一些新的同步机制,例如:内存屏障、percpu 机制等等。

私房菜 1249

大模型之Spring AI实战系列(一):基础认知篇 - 开启智能应用开发之旅

Spring AI 是一个轻量级开源框架,旨在简化 AI 模型在企业级 Java 应用中的集成与管理。它提供了跨多个 AI 服务提供商的便携式 API,支持聊天、文本转图像、嵌入式模型等多种功能,并兼容主流的 AI 模型提供商如 OpenAI、Google 等。Spring AI 的核心功能包括结构化输出、向量数据库支持、工具/函数调用、可观察性、文档摄取 ETL 框架、AI 模型评估等。

寻道AI,探索AI无限可能! 6359

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 328

使用epiDisplay包中的logistic

其中的logistic.display函数可以用于获取逻辑回归模型的汇总统计信息,包括自变量的优势比和置信区间,以及回归系数的Wald检验的p值。最后,我们使用print函数打印出汇总统计信息。使用epiDisplay包中的logistic.display函数获取逻辑回归模型的汇总统计信息(包括自变量的初始和调整后的优势比及置信区间,回归系数的Wald检验的p值)- R语言。通过使用logistic.display函数,我们可以方便地获取逻辑回归模型的重要统计信息,并对自变量的影响进行解释和推断。

CyberJolt的博客 608

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 149

基于Jeecgboot3.9.0的vue3版本前后端分离的flowable流程管理平台

基于Jeecgboot3.9.0的vue3版本前后端分离的flowable流程管理平台

宁波阿成的博客 900

AUTOSAR知识点 之 XCP (三):XCP功能描述

记录一下XCP使用时候的功能包含命令时序、错误码表、事件描述以及对规范的记录。XCP的图示如下从上图就可以看出数据流的流向CAN-CANIF-XCP,发送反之。XCP的状态机如下。

梦想技术家 3074

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 115

【PySide6拓展】初识QChart图表

在 PySide6 中,QtCharts模块提供了一系列强大的类,用于创建和管理图表。QChart是这个模块的核心类,它可以帮助开发者轻松地实现数据的可视化。本篇文章将介绍如何使用 PySide6 的QtCharts模块,并通过一个简单的示例教你如何快速引入QChart。QChart折线图柱状图饼图区域图它能够直观地呈现数据,同时支持交互功能,如缩放、拖拽和工具提示等。通过引入QChart,我们可以轻松实现数据的可视化,提升应用的交互性和用户体验。结合其他QtCharts。

m0_62599305的博客 820

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 193

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LeetCode Hot 100 二叉树专题(二)3 题(Java)

本篇文章共 3 题:543. 二叉树的直径、102. 二叉树的层序遍历、108. 将有序数组转换为二叉搜索树。 每道题都统一按「① 题目分析 & 解题思路 → ② 常见解法(附代码)及讲解 → ③ 知识点总结」的顺序组织;代码使用 Java 编写,节点定义沿用 LeetCode 默认的 TreeNode。

2401_88612756的博客 364

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Decorator

TaskDecorator 是异步场景下"跨线程传递上下文"的标准方案,主要用于传递 MDC、用户信息、数据源路由等上下文数据,核心价值是让异步任务的日志链路不中断、业务上下文不丢失。TaskDecorator 是 Spring 提供的一个钩子接口,用于在异步任务执行前对 Runnable 进行包装,常用于跨线程传递上下文。如果你在项目中遇到具体的异步上下文传递问题,可以把代码贴出来,我帮你给出最合适的 Decorator 方案 👍。✅ 核心能力:在线程切换时,把"父线程的上下文"搬到"子线程"

wlwork66的博客 102

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

JDK 下载安装:装完 Java 提示「不是内部或外部命令」?环境变量没配

JDK 是写 Java 程序必须装的东西。它包含运行 Java 的虚拟机(JRE)和编译 Java 的编译器(javac)——装了它,能跑、.java文件能编译成可执行程序。免费,学习和小规模生产都不花钱。

科小怪的博客 625

数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南

Oracle 提供了ORA_ROWSCN伪列(System Change Number),记录最后修改行的 SCN,类似 PostgreSQL 的xmin。实践中通常仍使用 version 字段方案,逻辑与 MySQL 完全相同。-- Oracle:通过 ORA_ROWSCN 实现乐观锁-- 更新时比对 SCN// 自定义注解// AOP 切面@Aspect@Component@Slf4jtry {

yjc_1111的专栏 396

C++ 多态详解:作用、原理与实战用法

多态是C++面向对象的核心特性,通过虚函数实现运行期动态绑定,使同一接口在不同对象上表现出不同行为。其核心作用包括统一接口、提升可扩展性、降低耦合、支持运行时分派与批量处理。实现依赖虚函数表(vtable)和虚指针(vptr),需注意虚析构函数、对象切片等陷阱。相比编译期多态(模板),运行期多态灵活性高但有调用开销。合理结合两者,可兼顾代码的灵活性与性能,是构建可扩展、低耦合系统的关键。

2402_85743155的博客 376

java框架大全

java框架大全

qq_39326137的博客 183

Java 多态 学习笔记

多态是面向对象编程的重要特性,指同一操作作用于不同对象时产生不同行为。其核心在于“父类引用指向子类对象”,结合方法重写实现运行时动态绑定。多态使代码更灵活、可扩展,如用Person p = new Student();统一处理各类人员注册,无需修改调用逻辑。但多态无法直接调用子类特有方法,需通过instanceof判断并强制转换。编译时看左边(类型),运行时看右边(实际对象),实现解耦与维护便利。

AA_AA114514的博客 349

SecureRandom做随机源,这个Java随机字符串工具类有3个方法

本文分享一款JDK17环境下的Java随机字符串工具类,内置3个开箱即用的方法,全部采用SecureRandom加密安全随机源,不存在弱随机、可预测、取模偏差等问题。工具类支持默认62字符集随机串、纯数字随机串、自定义字符集随机串三种生成模式,支持Unicode码点级别的字符集处理,兼容Emoji等增补字符,边界处理严格,异常信息明确,适合验证码、邀请码、盐值、随机口令、短链码等场景,源码可直接复制使用。

Java后端 | AI智能体应用实战派 | 电脑技能行家 294

Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

【代码】Java实现批量线段相交检测(跨积判定+扫描线优化与踩坑复盘)

m0_64476639的博客 319

Agent 状态栏在上下文中的具体位置

Agent状态栏以user角色消息形式追加至上下文末尾,而非修改system消息,避免破坏KVCache。此举仅为API技术实现,内容由框架自动生成,非真实用户输入,通过<agent_status>标签标识,确保模型获取最新状态且不影响缓存。该设计遵循“动态信息追加、静态信息固定”原则,实现高效、低延迟的状态传递。

lj1109053360的专栏 71

ubuntu安装hadoop系统

本文详细介绍了基于VMware克隆虚拟机搭建三节点Hadoop分布式集群的全过程:使用同一Ubuntu镜像克隆出master、worker1、worker2三台虚拟机,依次配置主机名、固定IP(如192.168.82.10/11/12)、SSH服务及免密登录,确保节点间网络互通。随后安装Java,下载配置Hadoop并分发至各节点,最终初始化启动集群,验证其存储与计算功能,实现高效的大数据环境部署。

qq_43592674的博客 320

Spring事务和事务传播机制

3. 可重复读(REPEATABLE READ): 事务不会读到其他事务对已有数据的修改, 即使其他事务已提交. 也就可以确保同⼀事务多次查询的结果⼀致, 但是其他事务新插⼊的数据, 是可以感知到的. 这也就引发了幻读问题. 可重复读, 是 MySQL 的默认事务隔离级别.p1事务可以认为是⽗事务, 嵌套事务是⼦事务. ⽗事务出现异常, ⼦事务也会回滚, ⼦事务出现异常, 如果不进⾏处理, 也会导致⽗事务回滚.

txxzjmzlh的博客 203
上一篇: LWN:LWN 在招聘!
下一篇: LWN:关于内存管理部分开发流程的变动!
LinuxNews搬运工
博客等级 码龄7年 438粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值