将堆栈和堆内存转储到文件,然后将其加载回 RAM?

Dump stack and heap memory to file, then load it back into RAM?

如问题所述。我确信这是可能的,但我找不到关于这个主题的信息。

我现在正在做这个实验,我的想法基本上是做以下场景:

  1. 开机linux(因为不喜欢windows)
  2. 做一些随机的事情
  3. 将堆栈和堆内存转储到 1 或 2 个文件
  4. 做一些其他随机的事情
  5. 将转储加载回内存

我想达到的效果基本上是休眠一个系统状态,但是保持系统运行,然后唤醒之前的状态。不确定在哪里可以使用它,但听起来很有趣。

编辑:我认为搜索 sysctl hibernate 源代码会有所帮助,但我什至似乎找不到。

更新: 到目前为止,我找到了以下信息:

继续搜索...

我认为这是我需要挖掘的地方: https://github.com/torvalds/linux/search?q=swsusp

此外,正如@Useless 在评论中所述,此处:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/power/hibernate.c?h=v5.14-rc6

EDIT: I thought searching for sysctl hibernate sources would help, but I can't even seem to find those

它需要在内核中完成,因为有大量内核和驱动程序状态,并且它需要访问所有 运行ning 进程。

您可以从power/hibernate.c开始。

如果您只是跳过 create_image() 中对 swsusp_arch_suspend() 的调用,您应该已经完成​​了大部分创建图像的过程,然后立即恢复。

您只需要弄清楚如何:

  1. 保持休眠状态,大概现在在恢复时被破坏
  2. 运行 restore/thaw 一半的代码,当你还没有被暂停时