通过一个简单的小例子,讲述一下Linux的patch原理。
假设有个系统源码,位于mm/slab.c
[root@os1 tmp]# ls mmslab.c[root@os1 tmp]# cp -r mm newmm[root@os1 tmp]# vim newmm/slab.c #试着手动更新一下系统源码
ZXXXXXX /*手动添加这一行*//* * linux/mm/slab.c * Written by Mark Hemment, 1996/97. * (markhe@www.zhukun.net) * * kmem_cache_destroy() + some cleanup - 1999 Andrea Arcangeli * * Major cleanup, different bufctl logic, per-cpu arrays * (c) 2000 Manfred Spraul……
提取patch
[root@os1 tmp]# diff -u mm/slab.c newmm/slab.c > t.patch
看看patch里都有什么
[root@os1 tmp]# more t.patch
--- mm/slab.c2013-11-04 23:28:25.646753453 +0800+++ newmm/slab.c2013-11-04 23:38:50.355752475 +0800@@ -1,3 +1,4 @@+ZXXXXXX /* * linux/mm/slab.c * Written by Mark Hemment, 1996/97.
更新一下patch吧
[root@os1 mm]# cd mm[root@os1 mm]# patch -p1 < ../t.patchpatching file slab.c[root@os1 mm]# more slab.c #看看原始文件发生了什么变化
ZXXXXXX/* * linux/mm/slab.c * Written by Mark Hemment, 1996/97. * (markhe@www.zhukun.net) * * kmem_cache_destroy() + some cleanup - 1999 Andrea Arcangeli * * Major cleanup, different bufctl logic, per-cpu arrays *(c) 2000 Manfred Spraul
原文件竟然被更新了耶!
原文地址:Linux的patch原理, 感谢原作者分享。 都成为命途中美丽的点缀,看天,看雪,安安静静,不言不语都是好风景。