程序和文件究竟保存在非持久性实时系统中的哪个位置?

最近,我需要使用实时系统测试各种内核启动选项,并且必须安装一个程序来检查每次启动时的系统信息(我没有可用的USB驱动器,而CD当时是更可靠的选择)。

经过一些安装,我开始怀疑,程序实际上是“保存”的,因为CD没有持久区域,也可以创建没有的USB驱动器。 此外,还可以使用非持久性实时系统下载文件或制作屏幕截图,并将其临时保存在用户目录中。

这些文件实际保存在哪里? 它们是否已加载到RAM中,因此实时系统的最大可用内存实际上是机器的RAM容量? 安装的程序是存储在CPU缓存中还是完全存储在其他地方? 或者该信息是否可能写在CD介质的空白区域? 它显然不能是未分配的硬盘空间,因为实时系统也可以完全加密,甚至完全没有安装硬盘。

它说不持久。 所以他们不会在重新启动之间“坚持”(继续存在)。 会发生什么是RAM的一部分用作RAM磁盘。 实质上,RAM的一部分用于模拟磁盘。 这就是真的。 这就是为什么你可以在LiveCD会话期间在/ home / ubuntu上创建文件的原因。 他们只是在重启后无法生存(=持久)。

我没有LiveCD方便,但下次尝试在终端输入df -h并查找/ mount点。 看看设备。 它很可能就像tmpfs 。 (这个class轮应该给你感兴趣的行: df -h | grep \/$

一些关于RAM磁盘的阅读。

Ubuntu ISO附带的实时系统是一个名为filesystem.squashfs的压缩文件中的Ubuntu安装。 该文件具有SquashFS 1的文件系统,可与CD和DVD的ISO文件系统相媲美,可以安装和使用。 2

该文件位于CD的/casper/目录中。 您甚至可以以挂载ISO文件的方式安装此文件。

在引导期间,此文件将被装入并加载到内存中,以用作实时系统。 但是整个文件不会立即加载,而只是按需加载所需的部分/程序。

Live System可以在持久文件的帮助下创建/更改媒体文件 。 Ubuntu中使用的持久文件名为casper-rw ,包含可写的ext3ext4等文件系统。 在可引导USB中,它位于驱动器的根目录中。

casper-rw持久性文件作为覆盖文件系统联合安装 ,这意味着只读filesystem.squashfs casper-rw和读/写casper-rw都安装在/ 。 更改或创建的任何文件都保存在casper-rw可写文件系统中。 从而有效地创造了Live CD可写的错觉,实际上它们并非如此。

所以,回答你的问题 –

这些文件实际保存在哪里?

答案如上。

它们是否已加载到RAM中,因此实时系统的最大可用内存实际上是机器的RAM容量?

我想,通过memory你指的是太空。 您的问题是“因此,实时系统的最大可用空间实际上是机器的RAM容量”?

实时系统的最大可用存储空间大小是持久文件(如果有)+交换空间(如果已存在)+ RAM(它需要在重启之前用作存储)

安装的程序是存储在CPU缓存中还是完全存储在其他地方?

如果您在没有持久文件的 Live系统中安装程序,那么这些程序将在您的内存中。 如果你重启,一切都会丢失。 但是,如果您正在使用casper-rw持久性文件,那些将保存在该文件中,并在下次重新启动后可用( 假设您没有删除该文件

或者该信息是否可能写在CD介质的空白区域?

不,它不会写在CD Medium上。 正如之前的回答所解释的那样。

希望你能得到答案。


笔记:

  1. SquashFS – 它是一个只读文件系统,允许您压缩整个文件系统或单个目录,将它们写入其他设备/分区或普通文件,然后直接安装(如果是设备)或使用环回设备(如果这是一个文件)。 资源

  2. 您可以使用sudo mount ./filesystem.squashfs /mnt -o loopsudo mount ./filesystem.squashfs /mnt -o loop安装它

  3. 联合安装是一种将多个目录组合成一个似乎包含其组合内容的方法。 资源