了解嵌入式平台设计

Understanding embedded platform design

我正在尝试了解不同的 Linux 内存设计选择。 我正在开发嵌入式 ARM/Linux 平台(初学者)。

固件加载到包含内核和 rootfs 的闪存中。 整个图像在启动期间加载到 RAM 中。

这种设计选择的优点是什么?还有其他选择吗? 它与 Beagle Bone Black 等评估板有何不同?

提前致谢

通常flash可以用来装boot程序,kernel image和rootfs。大多数 Linux 运行 从 RAM 而不是闪存,因为它通常更快,而 运行 从 RAM。因此,在引导过程中,U-Boot 将内核 tt 从闪存复制到 RAM 中。另一种选择是引导加载程序将压缩内核从闪存中提取到 SDRAM 中,然后内核挂载 rootfs。

大多数嵌入式系统使用 intramfs,因为内存是嵌入式系统的一个约束。请参阅此 link 以获取有关此 https://unix.stackexchange.com/questions/27309/how-do-i-have-linux-boot-with-a-rootfs-in-ram

的更多详细信息

除此之外,大多数发行版使用压缩的 ext2 文件系统映像,而 Debian 3.1 等其他发行版使用 cramfs 以便在内存有限的系统上启动。 cramfs 镜像不需要额外的 space 来解压缩。