In this case, all three, probably mixed in some haphazard fashion.
That's because you're not supposed to sort files into directories anymore. You're supposed to just "tag" everything and search for tags later.
(At least that's what they've been telling us for the last 20 years ... it's the future!)
I suppose if the effort were *less* ambitious, it would be workable in any environment. Just allow tags as extensible attributes on files in the filesystem, and then index that. Bonus points for a consistent kernel API, lots of bonus points for an API that is network transparent, and extreme bonus points for smacking anyone who says "oh but teh program xyzfoo already does this"
Yeah, I was just thinking... BeOS did that.
...and of course i/OS (née OS/400) kinda-sorta runs that way natively.
But to be useful it has to be implemented on mainstream platforms like Linux and Windows, preferably in a consistent manner.
Used to be, people were happy to try different operating systems.
I guess we're not as tolerant, and everything with the computers have become a lot more complicated.
But the "I still need to run software xyz" effect has always been massive.
i/OS gets its database filesystem because it's been that way since the first AS/400's rolled off the line 30 years ago.
Perhaps you would prefer z/OS which has no filesystem at all, just a catalog
It might have. My experience with the platform doesn't go that far back. I did a couple of consulting gigs building LAN gateways for 5250 emulation, but once the logon screen appeared I was done. Also I began my career in the early 1990's so most of those shops were already in the process of upgrading to AS/400 (or downgrading to Windows NT).
SNA gateways ... pfft ... it's amazing that it took the IBM world so long to just LAN-attach everything natively.
I just... really liked BeOS, for its design. That OS seemed amazing architectually.
I'm currently working in vSphere 6.5 and I now have to use *three* different clients to get to it.
* The "new" web UI is all dynamic HTML5 and is great, but it only has partial functionality.
* The "old" web UI is written in Flash and is just broken. Dialogs will pop up and I can't type anything into them, the whole thing will crash, etc.
* Some things still only work right in the "fat client", which was deprecated years ago and can't access newer functions.
Get your act together, Virtzilla.
That said, there's a certain niceness to having the system catalog. Not having to worry where something is located all the time is awfully nice. (Plus, I've always liked flat namespaces, so I'm rather biased.)
You could probably do what you need to do from their APIs instead.
Just write everything you need to do in Java. You'll likely make critical errors while working on it, leading to the destruction of all your critical production VMs, but you only live once.