On Sat, Aug 31, 2024 at 1:20 PM Kevin Bowling <kevin.bowling(a)kev009.com> wrote:
On Sat, Aug 31, 2024 at 12:30 PM Larry McVoy <lm(a)mcvoy.com> wrote:
On Sat, Aug 31, 2024 at 11:49:24AM -0700, Kevin Bowling wrote:
Larry, I'll bite. Tell us about HP-UX :)
They didn't understand mmap() semantics at all. The page cache and the
buffer cache both existed, there were races on the coherency and they
didn't share data. So the whole point of mmap(), a window into the
cache, didn't work. If you looked at a file read only with mmap()
and read(), you used 2x the memory you should have because there
were two non-shared caches.
From what I can tell from the documents I linked, and some other
references, they never ended up doing a UBC.
Coincidentally I just came across a worthwile paper on UBC that
concurs
https://www.usenix.org/legacy/publications/library/proceedings/usenix2000/f…
Reading between the lines a little bit with the benefit of modern
search capabilities, I can piece together a story in that they ignored
it and then there was a strategic FS shift. In HP-UX 10.x, they
introduce "JFS" (unfortunate name since IBM used it with AIX 3.2 in
1990) which is more accurately a licensed VxFS a.k.a Veritas File
System on top of VxVM. VxFS is interesting in its heyday because it
had many contemporary features like journaling, extents, resizing,
expansion, online defrag, and advanced readahead algorithms and is
supposedly reliable and scalable. It was also empirically very
portable, but I might glean that it was not so delicately ported to
each OS and I see direct evidence it has its own variant of buffer
cache.. which mirrors the ZFS saga. So, after they made that design
decision, it became even more futile and unattainable.
It would be interesting to know if Veritas did a better job with
Solaris, AIX, UnixWare or Windows NT.. a somewhat difficult question
to answer given the sands of time but I will keep an eye on it during
future experiments.
> And it was just clunky, I came from SunOS, the
bar was pretty high.
> Define clunky, you ask? Making stuff work on HP-UX was way harder
> than SunOS. Most open source things, you could just type "make"
> and it worked. Not so much on hockey pucks.
>
> --lm
>
>