Linux 内核裁剪的自动化方法 (2).doc

上传人:鲁** 文档编号:544439011 上传时间:2023-05-24 格式:DOC 页数:19 大小:43KB
返回 下载 相关 举报
Linux 内核裁剪的自动化方法 (2).doc_第1页
第1页 / 共19页
Linux 内核裁剪的自动化方法 (2).doc_第2页
第2页 / 共19页
Linux 内核裁剪的自动化方法 (2).doc_第3页
第3页 / 共19页
Linux 内核裁剪的自动化方法 (2).doc_第4页
第4页 / 共19页
Linux 内核裁剪的自动化方法 (2).doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《Linux 内核裁剪的自动化方法 (2).doc》由会员分享,可在线阅读,更多相关《Linux 内核裁剪的自动化方法 (2).doc(19页珍藏版)》请在金锄头文库上搜索。

1、Linux 内核裁剪的自动化方法Linux 内核裁剪的自动化方法随着广泛地获得使用并被移植到不同的平台,Linux 内核源代码正在越来越大,比如, Linux 2.6.28 中, 文件数有 25282 个,大小有350M。 对于某一个平台,真正需要的的文件其实不到 10%, 为了提高研发效率,我们应当删除或者暂时删除那些永远也不会用到的文件, 比如,可以使内核的文件数缩减到5000, 从而节约拷贝、查找等的时间,提高研发效率。 本文提出一种高效、干净的进行内核裁剪的办法。以往,我们是通过手工删除某些目录来完成这个任务的。 手工删除的缺点有:1.花时间,每次裁剪都要花 1 2 天, 才能将文件数

2、目删除到 5000 以下。2.不够干净。 内核代码的 Makefile 以及 Kconfig 配置文件彼此的依赖性比较大, 即使某个目录下的功能不被使用,直接删除也会导致编译出错, 从而, 不得不修改相应的 Makefile 以及 Kconfig 才能使编译通过。 这留下一下隐患。3.恢复困难。 根据2)的描述,在我们对外发布完整版本而需要将以前删除、修改的文件复原时,需要使用比较工具,仔细地比对,才能完整恢复, 这也非常花时间。 在经历了手工操作的痛苦之后,我们提出了一种自动化的方法。具体为:1.只删除文件,不删除目录,保留 Makefile 及 Kconfig2.使用时,只需要填充一个配置

3、表,其中,可以指定:1.删除某个文件, 比如:drivers/macintosh/adbhid.c2.删除某个目录下的匹配文件, 比如:include/asm-arm/hardware/*.h3.删除某个目录及其子目录下的匹配文件,比如:drivers/block/#.c4.删除某个目录及其子目录下的适合删除文件, 比如:arch/alpha/#3.脚本会根据配置表,将相关的文件移动到一备份目录,并保持原有的目录结构4.需要恢复时,只需要将备份目录下的文件拷贝到原来的目录,既可。 优点如下:1.配置文件一次指定,可反复使用, 对同一内核,不需要更改就可以再次运行。对不同内核,只要稍作修改(内核

4、的目录结构不怎么变化),既可复用。2.配置文件指定后,裁剪及备份内核的操作可以在几秒内完成,大大提高的效率。3.由于我们只删除 *.c, *.h, *.txt 等文件,而不删除编译相关的配置文件,裁剪后的内核特别干净,不会影响编译。打外部 patch 也特别容易。4.需要对外发布版本时,可以直接运行 restore.sh 脚本,瞬间完成。5.由于操作的可反复性,我们可以不断优化裁剪列表,得到最小内核。最大程度地提高研发效率。 以下为例子配置文件:# README #here to specify which files(unused in your project) to move#you c

5、an specify a relative directory with file name followed#you can specify # *.c to mean all c files below the dir # #.c to mean all c files below the dir and subdir# # to mean all files of known type below the dir and subdir# # Example:# drivers/macintosh/adbhid.c# drivers/dio/*.c# drivers/block/#.c#

6、drivers/dio/#*kernel version: 2.6.25# arch/#arch/alpha/#arch/avr32/#arch/blackfin/#arch/cris/#arch/frv/#arch/h8300/#arch/ia64/#arch/m32r/#arch/m68k/#arch/m68knommu/#arch/mips/#arch/mn10300/#arch/parisc/#arch/powerpc/#arch/ppc/#arch/s390/#arch/sh/#arch/sparc/#arch/sparc64/#arch/v850/#arch/x86/#arch/x

7、tensa/# arch/arm#arch/arm/mach-s3c2442/#arch/arm/mach-imx/#arch/arm/mach-s3c2440/#arch/arm/mach-omap2/#arch/arm/mach-clps711x/#arch/arm/mach-s3c2443/#arch/arm/plat-iop/#arch/arm/mach-davinci/#arch/arm/mach-ixp2000/#arch/arm/mach-iop13xx/#arch/arm/mach-integrator/#arch/arm/mach-iop33x/#arch/arm/plat-

8、s3c24xx/#arch/arm/plat-s3c/#arch/arm/plat-omap/#arch/arm/mach-sa1100/#arch/arm/mach-omap1/#arch/arm/mach-aaec2000/#arch/arm/mach-ixp23xx/#arch/arm/mach-mx3/#arch/arm/mach-l7200/#arch/arm/mach-ixp4xx/#arch/arm/mach-at91/#arch/arm/mach-clps7500/#arch/arm/mach-rpc/#arch/arm/mach-s3c2400/#arch/arm/plat-

9、mxc/#arch/arm/mach-iop32x/#arch/arm/mach-footbridge/#arch/arm/mach-h720x/#arch/arm/mach-ep93xx/#arch/arm/mach-ebsa110/#arch/arm/mach-realview/#arch/arm/mach-s3c2412/#arch/arm/mach-ns9xxx/#arch/arm/mach-orion/#arch/arm/mach-shark/#arch/arm/mach-netx/#arch/arm/mach-pnx4008/#arch/arm/mach-s3c2410/#arch

10、/arm/mach-lh7a40x/#arch/arm/mach-ks8695/#arch/arm/mach-versatile/#arch/arm/mach-msm/# Documetation#Documentation/# drivers #drivers/acorn/#drivers/acpi/#drivers/amba/#drivers/ata/#drivers/atm/#drivers/auxdisplay/#drivers/cdrom/#drivers/dca/#drivers/dio/#drivers/edac/#drivers/eisa/#drivers/ide/#drive

11、rs/ieee1394/#drivers/infiniband/#drivers/isdn/#drivers/macintosh/#drivers/mca/#drivers/md/#drivers/memstick/#drivers/nubus/#drivers/of/#drivers/parisc/#drivers/parport/#drivers/pci/#drivers/pcmcia/#drivers/pnp/#drivers/ps3/#drivers/rapidio/#drivers/s390/#drivers/sbus/#drivers/sh/#drivers/sn/#drivers/ssb/#drivers/telephony/#drivers/thermal/#drivers/xen/#drivers/zorro/# drivers/char #

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号