我有嵌入式Linux系统,它在fstab中定义了几个tmpfs挂载。其中一些安装涉及systemd。
客户问为什么不存在所有易失性“RAM FS”的东西。
问题:
引自man tmpfs。
The tmpfs [...] contents reside in virtual memory.
Virtual memory是一个很大的话题,你可以在网上浏览它。物理内存的来源可能是RAM(我不知道你是将不同的RAM模块作为不同的来源计算),还是来自swap或来自任何其他来源,如果你为它编写驱动程序。虚拟内存建立在其上。内存可以“动态”zswap压缩,并有更多的未来(如删除重复KSM等),所以它不像5MB的虚拟内存是5MB的物理内存。我想每个tmpfs mountpoint都有自己的虚拟内存地址空间,但我认为这取决于实现。The [tmpfs] consumes only as much physical memory and swap space as is required to store the current contents of the filesystem.
。size=bytes Specify an upper limit on the size of the filesystem.
。只有tmpfs中的资源多。您可以选择指定上限。我想tmpfs内核驱动程序在加载时也会消耗一些内存,但这可以忽略不计。/tmp
目录作为文件的临时位置(POSIX.1-2008)并使用像mktemp
这样的函数在那里创建文件和文件夹,所以实际上在PC上安装了一个或两个tmpfs。devtmpfs
(参见udevd)和其他人,他们不是tmpfs
并且是一个单独的主题。