On Sat, Apr 9, 2022, 8:18 AM tytso <tytso(a)mit.edu> wrote:
On Fri, Apr 08, 2022 at 02:02:23PM -0700, Greg A.
Woods wrote:
Single Level Storage is an awesome concept and
removes so many ugly
hacks from algorithms that otherwise have to process data in files.
Doing data processing with read and write and pipes is effectively
working through a straw whereas SLS allows all (reasonably sized) data
to be presented in entirely complete randomly accessible arrays just by
attaching a "file" to a segment. Mmap() is a very poor replacement that
requires a great deal extra bookkeeping that's next to impossible to
hide from; and also there's the problem of the consistency semantics
being different between the I/O based filesystems and direct memory
mapping of their files, which Mmap() reveals, and which SLS eliminates
(by simply not having any I/O mechanism for files in the first place!).
To be fair, Multics had it a lot easier, because core memory meant
that every single memory access could be considered "durable storage",
so there was no real need for "fsync(2)" or "msync(2)".
This may have been true of the very first Multics machines, but it appears
they switched to solid state memory sometime in the 70s (it's not clear to
me when the SCUs attached to the 6180 switched from core to DRAM:
https://gunkies.org/wiki/Honeywell_6000_series) By the time the DPS8/M
rolled out we must assume they had DRAM. Apparently a cache hierarchy was
added eventually.
- Dan C.