Halfway through, but I wonder of the authors behind Twizzler were aware of prior art from IBM i and Domain. Both have single-level storage (that is, you work on data on disk as you do data in memory), but both have wildly different implementations. Neither take distributed to this extreme as Twizzler plans do to, but the authors don’t seem aware of anything other than Unix.
I’m not as familiar with Domain, but it has more “ephemereal” SLS (so SLS addresses don’t stick across reboots), but can do paging over the network.
I’m more familar with IBM i. It has persistent single-level storage (so disk pages correspond directly to memory pages, and pointers stick across reboots) and uses it for passing pointers across processes. There’s a 128-bit pointer type, which gets compressed down to machine-width virtual addresses by the in-kernel compiler. Because of the obvious security implications of pointer forgery, it uses memory tagging to turn persistent addresses into capabilities. Only tagged derefs are allowed to happen.
It’s also worth noting that IBM i was originally designed in the 1970s with the expectation that some kind of non-volatile random access memory would become popular in the 80s. Unfortunately, bubble memory didn’t work out, so it had to live on spinning rust for decades. It sings on flash though - and the NVDIMM is perhaps what it was finally made for.
This is pretty wild! I hope that more people are willing to be unconventional for the sake of simplifying the software we deal with.