Build-A-Minimal-Linux-Kernel
Leave out the unnecessary kernel module and features to make a minimal kernel as possible as one can
Reason for thus a project
When I am to set up a diskless linux server on my local network, I notice that the linux kernel in general distrubtion is about 4.7M. When the PXE download the kernel for the diskless enveriment, the tftpd speed is only thundreds Kbyte/s, so I immediately realize that if I can build a more minimal kernel, the bootup time of the diskless server maybe decrease a lot. I search which features are not necessory for boot a linux on a network filesystem(NFS), and I get many useful instructions. However, it fails to bootup when I finish the compiling. Unfortunately, I could get no sense which configuration casue the problem. The bootup procedure can give little or even no information.
To do
I write a shell batch with these steps: 1. compare the minimal configuration file(with which, the corresponding kernel cannot bootup) and the normal config file(just from a distrubtion). 2.separate both the two configuration file with same sections, replace each fraction of the normal config file with the 'fatal' one. 3.comiple and test the kernel in QEMU, if it success to boot, try to replace more following that in step2. '-curses' '-std:mon' are some usefull option when testing the kernel with QEMU.
Results
My final successful diskless linux kernel is 2.7M.
For others, some one make up a 744KB kernel. (http://linuxman.blog.ccidnet.com/blog-htm-do-showone-uid-60710-type-blog-itemid-293122.html)

本文详细介绍了如何通过去除不必要的内核模块和特性,构建一个尽可能小的Linux内核,以减少无盘服务器的启动时间。通过对比最小配置文件与正常配置文件,并在QEMU中进行测试,最终成功构建了一个2.7MB的精简内核,显著提高了无盘服务器的启动效率。
2613

被折叠的 条评论
为什么被折叠?



