在正式的Raspbian“乳白”图像(2012-07-15)中,有三个内核图像:
- kernel.img(6MB)
- kernel_cutdown.img(4MB)
- kernel_emergency.img(16MB)
我很好奇这些之间的技术区别是什么?何时更改默认值(kernel.img)可能会有所益处?
在正式的Raspbian“乳白”图像(2012-07-15)中,有三个内核图像:
我很好奇这些之间的技术区别是什么?何时更改默认值(kernel.img)可能会有所益处?
Answers:
我似乎找不到有关Raspbian内核的任何特定信息。但是,我可以根据我在Linux内核方面的经验提供信息。
传统上,当您为发行版编译内核时,您希望它能够涵盖对相当广泛的硬件的支持。例如,各种图形卡和无线卡以及诸如SATA控制器和文件系统支持之类的更简单的东西。然后,内核还将具有模块化支持,以便可以通过模块的加载来支持其他硬件。您将看到通过使用modprobe
或更传统的方式来完成此操作insmod
。模块加载通常在后台进行,例如,当您插入USB硬盘驱动器时,usbcore
模块将被加载。通常不知道的是,这种支持也可以内置在内核中,这增加了它的大小和在启动时加载的时间,但通常可以提高性能。
开发人员面临的问题是,是否应该将支持编译到内核中,作为模块提供还是完全排除在外。
标准内核kernel.img
将尝试并涵盖最可能的硬件组合。对于像Raspbian这样的发行版,它可能包括所有Raspberry Pi硬件以及运行的操作系统所需的其他部分。内核看起来很小(我已经构建了大于50MB的内核),因此我想即使使用基本内核,大多数支持也是模块化的。
该kernel_cutdown.img
会提供的最小的图像可能仍然允许系统是可用的。这可能包括基本文件系统和网络。但是外部外围设备支持的方式不多,因此不必再插入该USB无线适配器。有时,将在不完全模块化的情况下构建缩小图像(这可能是图像大小的一半)。
相反,这kernel_emergency.img
可能与削减相反。这个过大的映像将包含编译到内核中的广泛支持。该映像通常在难以识别的其他内核出现问题时使用,因为在几乎所有情况下都应提供可引导的安装。将其视为一种安全模式。
希望对您有所帮助。如果我发现有关Raspian图像的更多详细信息,请在此处添加。
kernel=kernel_cutdown.img