前言:
Initramfs是2.6内核的一个新特性。用于替换 Initrd. 今天试验了一下,研究其是否可以用作我们的根文件系统。
方法:
对比普通启动 (使用 cramfs根文件系统)与使用initramfs的区别。使用 cpu 的一个 3.25M free running的时钟进行计数(有了jiffes后使用jiffes)
测试数据:
1) 普通启动
内核大小: 1348524
文件系统大小: 4964352
Bl 装载 kernel 前: 26dac (49ms)
Bl 装载 kernel 后: 2454ad (733ms)
启动 init 前: ab 995a (3460ms) Jiffis统计:2.25/1.29
运行 profile: Jiffis统计: 3.34/1.31
2) initramfs 启动
内核大小: 5598728 (556E08)
Bl 装载 kernel 前: 26d0d (49ms)
Bl 装载 kernel 后: 5fa889 (1928ms)
内核刚启动: 50f 5a 9a (26121ms)
启动 init 前: 5b 9f 0e5(29560ms) Jiffis统计:(3.44, 1.26)
运行 profile: Jiffis统计:3.75,1.28
结论:
Initramfs 不可以用做根文件系统。 由于需要将整个文件系统拷贝到内存以及解压,启动时间太长。而使用cramfs 则只会按需拷贝。
另外,由于整个内核以及根文件系统全部在内存了。可用作系统升级方案。
参考: