书接上回
1. 选用更高压缩率的压缩算法
对kernel,rootfs,应用程序的压缩算法可以选择压缩率更高的算法如xz,不同的压缩算法的压缩率不同,压缩后的文件大小也会有很大的差异
gzip、bzip2和xz都是用来压缩文件的工具,它们都是在Linux和其他Unix系统中经常使用的压缩工具。下面是这三个工具的比较
a. 压缩率:xz > bzip2 > gzip 这三个工具的压缩率是不同的,xz压缩率最高,而gzip压缩率最低。
b. 压缩速度:gzip > bzip2 > xz gzip的压缩速度最快,而xz的压缩速度最慢。
c. 解压速度:gzip > bzip2 > xz gzip的解压速度最快,而xz的解压速度最慢。
d. 使用内存:xz > bzip2 > gzip xz使用的内存最多,而gzip使用的内存最少。
2. 选用更小型的lib库
对内存空间更为敏感的嵌入式环境中可以选择小巧一点的C库,相对于glibc,musl、uclibc等C库更为小巧。关于c lib库,有机会后面再详细介绍一下。
3. 编译隔离
最典型的编译隔离就是Linux kernel的配置文件,通过make menuconfig可以配置内核的功能项开关。我们可以不选择那些我们用不着的功能,从而减少内核体积。
对于应用代码,需要分析不需要的特性,将这部分代码剪裁掉,建议使用类似Linux配置选项的方法,可以方便地进行剪裁。