A bit more BeOS info from the ever-helpful Wikipedia:
general OS infoBeOS filesystem infoThe BeFS entry at Wikipedia is a bit lean on details, though. Here's a practical example of its use:
Every file type could have any number of user-defined (in addition to system-defined) attributes. On my install, for the .MP3 file type I added the following attribute fields:
Song title
CD title
Artist
Genre
Suck factor (scale of 1-10 indicating how much I liked the song or not)
The OS-level file searching tool would let you search based on attributes, in addition to the usual name, date modified, etc. So, I could generate queries such as:
Find all MP3s of Ayumi Hamasaki, from CDs X, Y and Z, with a suck-factor greater than 7. Hit "search" and there's your playlist.
Searches took about one second to complete, no matter how complex. You could also save the queries as "live query" files. Right-click on the file, and the context-menu re-generates search results on the fly.
Now, apply the same attribute ideas to any filetype - images, emails (email messages were stored by the built-in email program as individual files, using the filesystem as its database instead of a custom file format), text/word processing documents, whatever. You can make the filesystem behave the way you want it to.
The API was simple and elegant. Fully object-oriented, built in C++. Everything was prototyped in the OS, so you never really had to do any low-level munging to get an interface to work. Just inherit the class specifications for windows, frames, scrollbars, buttons, whatever, and override any behavior you wish. Inter-application messaging was also built-in to the API, requiring almost zero work from the developer to use it.
It was a thing of beauty :cry: