linux - 了解嵌入式平台设计

标签 linux memory-management firmware

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

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

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

提前致谢

最佳答案

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

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

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

关于linux - 了解嵌入式平台设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33671970/

相关文章:

两个任务之间的同步

.net - GetIpAddrTable 的任何替代方案?

linux - 无法删除 postgresql 数据库

linux - Visual Studio 2017 crlf/lf

c - 在C中加密纯文本文件

c++ - 当我的程序终止时,我应该总是在 COM 指针上调用 Release 吗?

ios - 还有一个 - “Unrecognized Selector Sent to Instance” 问题

java - 链表可以存储不同的数据类型吗?

macos - Mac OS X(Intel)上的EFI控制台

linux - 如何在 bash 脚本中通过掩码更改字符串?