运行 Linux 嵌入式设备上的内核所需的最小 RAM 量是多少?
What is the minimum amount of RAM required to run Linux kernel on an Embedded device?
嵌入式设备上 运行 Linux 内核所需的最小 RAM
数量是多少?在 Linux-0.11 for 80x86
中,加载内核数据结构和中断向量所需的最小 RAM 是 2MB
。
当前 Linux-3.18 内核所需的最小 RAM 是多少? x86
和 ARM
等不同的体系结构对启动所需的最小 RAM 有不同的要求吗?怎么算一样呢?
可以将其缩小到 ~600 KiB。查看英特尔的 Tom Zanussi 所做的工作。
Presentation from Tom and Wiki page about the topic.
更新。 Tom 发布了关于内核中不同子系统的内存使用的有趣 statistics。他在做项目的那段时间做了研究。
This site 建议:
A minimal uClinux configuration could be run from 4MB RAM, although
the recommendation we are giving to our customers is that they should design
in at least 16 MB's worth of RAM.
如果您使用的是 SDRAM,问题在于以合理的体积成本和可用性获得小于 16Mb 的部件,所以这可能不是问题?然而,对于 SRAM,这是一个很大且相对昂贵的部分。
eLinux.org 有一个关于嵌入式内核大小、如何确定它以及如何最小化它的 lot of information。
这取决于你如何定义Linux。如果您询问当前的操作系统,那么我们谈论的是超过 100MByte,最好是 1000MByte 的内存。
如果我们在谈论“Linux from Scratch”那么我们也在谈论你愿意承受多少痛苦。在 1990 年中期,我通过自己编译每个二进制文件构建了一个 Linux 系统,并在 386sx16、1.5MByte 的内存上使其成为 运行。虽然它有一个 40MByte 的硬盘驱动器,但它几乎是空的。我编译了我自己的内核 1.0.9,我自己的 libc5,我自己的基础工具,SVGAlib。该系统在某种程度上可用于使用文本模式和 SVGAlib 应用程序。将内存增加到 2MByte 确实有很大帮助。相信我,这个系统非常简单。今天所有组件至少需要两倍的内存,但那时还有 ulibc 而不是 libc 和 busybox。
在 8MByte 的内存下,我今天可以从头开始创建一个非常基本的系统。在 512MByte 的内存下,您可能拥有一个外观有点现代但速度较慢的桌面系统。
嵌入式设备上 运行 Linux 内核所需的最小 RAM
数量是多少?在 Linux-0.11 for 80x86
中,加载内核数据结构和中断向量所需的最小 RAM 是 2MB
。
当前 Linux-3.18 内核所需的最小 RAM 是多少? x86
和 ARM
等不同的体系结构对启动所需的最小 RAM 有不同的要求吗?怎么算一样呢?
可以将其缩小到 ~600 KiB。查看英特尔的 Tom Zanussi 所做的工作。 Presentation from Tom and Wiki page about the topic.
更新。 Tom 发布了关于内核中不同子系统的内存使用的有趣 statistics。他在做项目的那段时间做了研究。
This site 建议:
A minimal uClinux configuration could be run from 4MB RAM, although the recommendation we are giving to our customers is that they should design in at least 16 MB's worth of RAM.
如果您使用的是 SDRAM,问题在于以合理的体积成本和可用性获得小于 16Mb 的部件,所以这可能不是问题?然而,对于 SRAM,这是一个很大且相对昂贵的部分。
eLinux.org 有一个关于嵌入式内核大小、如何确定它以及如何最小化它的 lot of information。
这取决于你如何定义Linux。如果您询问当前的操作系统,那么我们谈论的是超过 100MByte,最好是 1000MByte 的内存。
如果我们在谈论“Linux from Scratch”那么我们也在谈论你愿意承受多少痛苦。在 1990 年中期,我通过自己编译每个二进制文件构建了一个 Linux 系统,并在 386sx16、1.5MByte 的内存上使其成为 运行。虽然它有一个 40MByte 的硬盘驱动器,但它几乎是空的。我编译了我自己的内核 1.0.9,我自己的 libc5,我自己的基础工具,SVGAlib。该系统在某种程度上可用于使用文本模式和 SVGAlib 应用程序。将内存增加到 2MByte 确实有很大帮助。相信我,这个系统非常简单。今天所有组件至少需要两倍的内存,但那时还有 ulibc 而不是 libc 和 busybox。
在 8MByte 的内存下,我今天可以从头开始创建一个非常基本的系统。在 512MByte 的内存下,您可能拥有一个外观有点现代但速度较慢的桌面系统。