我知道我可以使用“实时 CD”或“实时 USB”启动计算机,但如果没有外部存储器支持(例如硬盘),系统将数据存储在哪里?数据直接存储在 RAM 中吗?如果是这样,当 RAM 已满时,计算机会崩溃吗?
答案1
数据仅存储在可以包含它的位置,例如硬盘或可以在关机时存储内存的芯片,例如存储卡(SD,MMC,xD等)
在现场 CD 会话期间,如果检测到数据,它将存储到可以包含数据的任何设备,包括连接的 iPod(是的,我曾经遇到过这种情况)。它将使用内存 (RAM) 进行临时存储。
如果在关机时没有找到其他可写内存,则会话将不会被存储,因为 CD 是 ROM(只读存储器),其数据无法更改,除非使用 CD 刻录机中的可写 CD。
编辑 2:Jog 指出:虚拟硬盘也可以使用,它可以存在于易失性内存中,当它被填满时,您会收到标准的低磁盘空间警告。操作系统并不关心介质在断电时是否会丢失数据,只要它认为它正在写入磁盘即可。这就是从虚拟磁盘服务器启动的无盘 PC 的工作原理。
编辑:如果 RAM 已满会发生什么?操作系统有两种类型的内存。上部内存和下部内存。如今,下部内存不再是可见的内存,但该技术仍在使用。基本上,一小部分内存是为操作系统特定功能保留的,例如读取和写入上部内存部分。如果上部内存部分已满,则下部内存部分将开始释放内存(如果可用),或显示一条消息,表示没有足够的内存来完成任务。
由于存在 2 个内存段,因此,即使内存耗尽,系统也不会崩溃,除非编程错误导致下部内存段也没有足够的空间。
答案2
这操作系统不需要永久存储任何数据除非用户更改某些持久性设置,否则它们将存储在可写内存区域中。但 Live CD 上通常不允许使用持久性设置,因此基本上您无需将任何内容写入磁盘。系统启动所需的所有数据都已在引导介质(在本例中为某种只读内存)上可用。Live 会话将使用临时文件将临时数据存储在 RAM 上,覆盖文件系统覆盖一些系统文件夹
只读文件系统(例如 CD-ROM 上的文件系统)的缺点是无法保存任何当前工作数据。因此,只读文件系统通常与 RAM 磁盘形式的临时可写文件系统合并。通常,默认的 Linux 目录“/home”(包含用户的个人文件和配置文件)和“/var”(包含可变数据)保存在 ramdisk 中,因为系统会经常更新它们。Puppy Linux 和其他一些实时 CD 允许写入配置和添加的文件并在以后的会话中使用。
在现代 Live CD 中,只读文件系统使用 UnionFS、AuFS 或 EWF 等透明技术与 RAM 驱动器合并。像 syslinux 这样的引导加载程序可以从 USB 存储设备启动 ISO 文件。
许多小型 Linux 发行版,例如斯莱克斯,税利或者小狗Linux甚至可以将整个根文件系统加载到 RAM 磁盘上,以获得更流畅的体验。请参阅从 RAM 运行的 Linux 发行版列表
显然所有这些都需要更多内存,因此 Live CD 只有在 RAM 变得更大、更便宜之后才真正被广泛使用
“live CD” 一词的产生是因为,当典型 PC 的 RAM 足够大并且 52 倍速 CD 驱动器和 CD 刻录机在 PC 用户中广泛使用时,终于可以方便且实用地直接从 CD 启动内核并运行 X11、窗口管理器和 GUI 应用程序,而不会干扰硬盘上的操作系统。
以前,在没有任何可写介质的情况下运行 Live CD 的一个缺点是,您没有空间存放交换文件,如果您需要太多内存,这可能会造成问题。近年来,这不再是一个问题,因为有一项名为兹拉姆已合并到主线内核中,交换分区可以压缩存储在 RAM 中。许多 Linux 发行版,如鲁本图或者Fedora甚至默认启用 zram,因为与磁盘上的交换相比,它非常快。Chrome操作系统。Windows 10和苹果系统也有类似的页面文件压缩技术默认启用
但即使在使用 zram 之后,如果内存仍然不足,会发生什么情况?然后对象对象模型(内存不足)管理器将运行并终止具有高oom_badness()
分数
后来的 Linux 版本还引入了一项功能,称为卡斯帕-RW用于将系统设置和/或一些用户文件存储在物理或循环分区中。这主要用于直播 USB