Surviving a reboot is a very specific capability. With no hyperbole intended, who needs it?
Surviving a reboot is a very specific capability. With no hyperbole intended, who needs it?
https://archive.cs.st-andrews.ac.uk/papers/download/MBC+88.p...
In short imagine Java or C++ objects, but they can live in a soup in a persistent database.
Imagine if your programming assignments at school, were "open this database then write a client to talk to the object retrieved." That's what we actually had in PS-Algol in 86. Super cool!
AllegroCache still exists today. So at least Lisp people don't have to imagine that. I wonder if that is one of the reasons why CL people in the 1980s came up with UPDATE-INSTANCE-FOR-REDEFINED-CLASS.
You can also imagine it being useful in extremely low power solutions where battery life is critical. Space craft, etc
MacBooks and probably other laptops (?) already do this. You might lose a couple percent over a few days.
Linux most likely
Classic example of “but you can already do this by configuring X in this settings menu and then making sure to enable it before you leave and there’s just this other one trade off and yea it can be slow and clunky sometimes” vs a solution so native to the platform that it’s not even a thought in the user’s mind.
Aka the “Dropbox is just rsync” argument.
I don't know why Microsoft decided not to enable it by default. Maybe they thought the difference between sleep and hibernate is too much to grasp for common users. And sleep works a bit faster (although with modern NVME drivers I don't see as much difference as in the past when you had to write 8 or 16 GB of memory to HDD).
[0] https://en.m.wikipedia.org/wiki/VxWorks#Aerospace_and_defens...
Save/restore across shutdowns is much simpler when the code doesn’t change. When the code changes, you need some form of live patching (ala ksplice) in the mix as well.
There are also concerns when the system interacts with external systems. Suppose the system state was saved just before the million dollar transfer was performed, the transfer was performed, then the cat tripped over the power cord without that being persisted. When the system starts back up, the app may make another million dollar transfer thinking it was the first one.
With this I could do the same with a desktop computer without having to lose power.
macOS/iOS has adopted a model of giving apps an opportunity to persist their own state before being terminated (which may be eagerly to reduce memory pressure or power consumption, for example) and then have the application restore its own state in whatever way is appropriate.
Outside of containers, hibernation almost needs to be a system-wide operation, which makes it inappropriate for OS updates, restoring from crashes (which, I suppose is what Phantom OS is trying to resolve), or hardware changes.