遇见数据集

A First Look at Reusable Linux Kernel Patches

收藏
Zenodo2026-03-31 更新2026-05-26 收录
官方服务:

资源简介:

Project summary As Linux is a popular operating system, bugs in Linux kernels can affect many users. Many bugs in Linux kernels are common vulnerabilities and exposures and can cause disastrous consequences. In the Linux ecosystem, the programmers of the mainline Linux repair many bugs, and the programmers of downstream kernels (e.g., ubuntu) typically port patches from the mainline Linux. This process often takes months and even years. Due to the delay, hackers can take the fixed bugs of a kernel as a reference to find unfixed bugs on other kernels. Once they find such bugs, they can do malicious staffs. With the evolution of the Linux ecosystem, the source files of downstream kernels are quite different from those of the mainline kernel. As a result, a patch from the mainline Linux can be infeasible for a downstream Linux.To support the timely need, we propose an approach called RePatch that detects reusable patches of a kernel from the bug-fixing commits of other kernels. These patches fixed bugs in other kernels, but their buggy code lines are still identical to a kernel being checked. They are reusable to the kernel since they can repair its unfixed bugs. As RePatch is accurate, it is less interesting to explore its precision and recall. Instead, with its support, we conduct a compressive study to understand reusable patches in the Linux ecosystem. Dataset Kernel Git Branch Head mainline git@github.com:torvalds/linux.git n/a 9b2ffa6 amazon git@github.com:amazonlinux/linux.git 6.11.y 4bbf902 android git@github.com:aosp-mirror/kernel_common.git 15(6.6) cc7aff1 fedora https://gitlab.com/cki-project/kernel-ark.git 6.12 9b2ffa6 raspberrypi git@github.com:raspberrypi/linux.git 6.6.y 811ff70 suse git@github.com:SUSE/kernel.git SLE15-SP7 c37dd6 ubuntu git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/unstable 5.14 386f0f6 To rebuild the dataset, please check out the given branch and reset it to the given head Id. Result The comparison of the latest files The file directory contains the comparison results of the latest files. The file name indicates the compared kernels. For instance, linux_amazon_dif.txt records the different files between the mainline Linux and the Amazon kernel. The result contains four types of files: linux:D:\project\approach\compilelink\data\repo\linux\arch\arc\include\asm\cachetype.h Only the mainline Linux has cachetype.h. amazon:D:\project\approach\compilelink\data\repo\amazon\arch\alpha\include\asm\xchg.h Only the Amazon kernel has xchg.h modification:D:\project\approach\compilelink\data\repo\linux\drivers\interconnect\qcom\icc-rpmh.h Both kernels have icc-rpmh.h, but its code lines are different. same:D:\project\approach\compilelink\data\repo\linux\include\linux\proc_ns.h Both kernels have proc_ns.h, and its code lines are identical. The identified reusable patches The patch directory contains the resuable patches. The file names indicate the compared kernels. For instance, linux_amazon_diffcommit lists the reusable patches between the mainline kernel and the Amazon kernel. It has the following item: linux//0d442ce:1.00 1.00 2024-09-10:erofs: mark experimental fscache backend deprecated According to the above item, we extract a reusable patch from the mainline kernel. The commid id is 0d442ce. The two ones indicate that all the fixed lines appear in the latest code of the mainline kernel and all the buggy code lines appear in the latest code of the Amazon kernel. The remaining text lists the commit date and the commit message.

提供机构:
Zenodo
创建时间:
2026-03-31
二维码
社区交流群
二维码
科研交流群
商业服务