记一次linux内核裁剪总结
一、背景
? 在linux内核构建过程中,根据实际应用场景,小生构建了一个大约5.7M大小的linux内核zImage 镜像。发现其稍微有点大了,想着将其裁剪和缩小,于是乎对linux内核进行裁剪。
? 本篇文章主要记录一下关于fs 项部分是如何配置和处理的。
二、裁剪过程记录
(2-1)思路描述
linux内核在编译、构建过程中,对于fs文件系统目录下放置的各类文件系统会根据.config 文件中内容进行编译,那么可以根据实际项目和应用场景将一些没有使用到的文件系统清除掉,让其不再链接进内核镜像中。
(2-2)具体步骤
Step-1、编译构建出宿主机上的linux内核图形配置界面:
Step-2、进入到【File system】选项下,将不需要的文件系统取消掉
从以上图片可知,大概能知道4.1.15版本的Linux内核目前支持的文件系统情况,把不要的文件系统对应下的选项取消掉。小生根据自己的应用场景,配置选项方案如下:
【1】保留Enable POSIX file locking API 选项。
【2】保留Pseudo Filesystems 选项。
【3】保留Network File Systems 选项。
因小生需要通过nfs挂载文件系统,所以开启了Enable POSIX file locking API 和Network File Systems ,需要内核支持/proc 虚拟文件系统、Sysctrl 以及Tmpfs 虚拟文件系统。故保留了Pseudo Filesystems ,并在该选项下对其子项进行了配置:
Step-3、编译构建linux内核
至此,关于fs文件系统项就配置完成。
三、总结
? 根据本次linux内核编译配置操作:只配置linux支持nfs网络文件系统、/proc虚拟文件系统、支持Sysctl、Tmpfs虚拟内存文件系统。取消掉没有使用到的文件系统的支持。最后构建出的linux内核镜像从5.7M降到了4.5M大小。经测试,linux内核启动、运行正常!
? 关于linux内核裁剪,可从以下两点入手:
(1)如果在图形配置界面中,那么可以找到每个选项对应的【帮助】菜单来确定是否要保留该项选择、或者选择是否以模块方式构建该部分内容。
(2)根据实际linux内核运用场景和软件需求,关闭一些使用不到的linux内核特性、文件系统、支持库、第三方软件包等。
|