Live data from Hacker News

Phantom OS: Persistent Operating System

github.com

41–50 of 69 posts

Re: Phantom OS: Persistent Operating System

#41
post #36

I like the ideas in Phantom, even considering the negative comments, it is refreshing to see people having a go at OS design that isn't just blindly making yet another UNIX clone, because apparently we can't get enough of them.

Indeed. So many people seem to be brought up with an almost religious indoctrination that UNIX[0] is the end-all be-all of OS design.

[0] By which of course we mean Linux.

Re: Phantom OS: Persistent Operating System

#42
post #40

This kind of system will suffer from the ratchet problem. A single bug that negatively impacts state is no longer fixable by rebooting. Instead, you have to format/reinstall. Unintended state becomes permanent, and upgrade paths constrained to the point where you must do intentional damage. I'd also be leery of fragmentation. The project is falling into the "simplification trap", where all it's doing is moving inhere…

You could base such system on software transactional memory and persistent data structures (like in Clojure) and in case of a bug just revert the state to any particular point in time by changing one pointer. Your app crashed? No problem - Rewind 5 minutes earlier and don't do the thing that crashed it. There's whole unexplored universe of possibilities when we do away with traditional OS design. I'm especially inter…

State can be silently corrupted and only cause problems much later, even many years later.

Re: Phantom OS: Persistent Operating System

#43
Not related to Phantom OS, but the OS running the Apollo 11 guidance computers had this same feature. In fact, the famous 1202 program alarms right before landing are related: a low priority task was overwhelming the system and the OS restarted to get a clean slate, continuing the high priority tasks where they left off:

“The software rebooted and reinitialized the computer, and then restarted selected programs at a point in their execution flow near where they had been when the restart occurred.” [0]

[0] https://www.hq.nasa.gov/alsj/a11/a11.1201-pa.html

Re: Phantom OS: Persistent Operating System

#44
post #43

Not related to Phantom OS, but the OS running the Apollo 11 guidance computers had this same feature. In fact, the famous 1202 program alarms right before landing are related: a low priority task was overwhelming the system and the OS restarted to get a clean slate, continuing the high priority tasks where they left off: “The software rebooted and reinitialized the computer, and then restarted selected programs at a…

Did it? It seems more like that guidance application was saving checkpoint data, rather than OS feature. Though distinction between OS and applications might be muddy here. In fact persistent OS design would be catastrophic, as restoring all jobs would just cause resource exhaustion again.

(more details on Apollo 11 problem: https://www.doneyles.com/LM/Tales.html)

Re: Phantom OS: Persistent Operating System

#45

I'm not sure this actually solves the real problem that people have. Sure, reboots are annoying and pretty much all current OSes could be improved in this regard. Back in the 90s, it's interesting that SunOS supported live kernel upgrades, so at the same time the kernel on disk was updated, the running system was also patched so it would act the same way as-if rebooted, but without any disruption to the live system.…

Nowadays, if you can make your hobby OS run WebAssembly I think you'd be able to get a lot of functionality out of it, even if it can't run Office x86 binaries.

Re: Phantom OS: Persistent Operating System

#46

This kind of system will suffer from the ratchet problem. A single bug that negatively impacts state is no longer fixable by rebooting. Instead, you have to format/reinstall. Unintended state becomes permanent, and upgrade paths constrained to the point where you must do intentional damage. I'd also be leery of fragmentation. The project is falling into the "simplification trap", where all it's doing is moving inhere…

This is what happened to my iOS install. Due to some problem (is it an exploit hidden somewhere among incoming messages?) my Messages app opens for 5+ seconds every time, and there is absolutely nothing I can do, except setting up a whole new iPhone from scratch (and hoping the problematic message win't get synced from iCloud anyway).

On rooted Android I could clear corrupted app data.

Re: Phantom OS: Persistent Operating System

#48
I'm going to self plug here on work I'm apart of that does persistent processes, although the motivation is different. I do think this paper does a good job of informing the reader on why these sort of features would be really cool that this project does not necessarily dive into. But it requires widening the API and allowing for developers to choose how they persist.

https://www.rcs.uwaterloo.ca/pubs/sosp21-aurora.pdf

Re: Phantom OS: Persistent Operating System

#49

This kind of system will suffer from the ratchet problem. A single bug that negatively impacts state is no longer fixable by rebooting. Instead, you have to format/reinstall. Unintended state becomes permanent, and upgrade paths constrained to the point where you must do intentional damage. I'd also be leery of fragmentation. The project is falling into the "simplification trap", where all it's doing is moving inhere…

Rebooting does not fix any bugs, it just resets the state. I'm not sure this is really the better solution because many bugs never get fixed because "Have you tried turning it off and on, again?"

Rebooting (or "restarting the process" in a more limited case) does not fix the bugs, but is as a very effective workaround in a lot of cases.

Yes, a lot of bugs are never going to be fixed, and we'll have to restart the machine occasionally... but Phantom's alternative is forcing machine reformat on any bug.

You can do this today: just add a crash handler that will erase your entire hard disk. Do you think this will make software less buggy?

Re: Phantom OS: Persistent Operating System

#50

Earlier quoted context omitted.

Couldn't there be a middle ground that allows you to restart/reset a single application?

The FAQ calls this out as a way to recover from a bad state. It seems to already be implemented in the OS.

But without explicit serialization/de-serialization code, restarting an app will lose all the related data.

So if your text processor crashes, your documents go bye-bye.

Post reply on HN