I'm curious to know what people think of this idea.
https://movies.stackexchange.com/questions/9745/is-the-unix-...
The ideas that I had is a bit similar to that and similar to some of the other things mentioned here. Its working is:
- There are no file names and no directory hierarchies (except for a root directory with up to 256 numbered entries, used only for some low-level system-rated stuff).
- A file can contain multiple forks (numbered by a 32-bit number, of which numbers 0 to 255 have a standardized meaning and the rest don't), with their own data. Many forks will use a common file format for many kinds of data (similar idea than the "TRON Application Databus" format, but I think it could be much better designed in many ways). (Also like TRON, I am not using Unicode in my design at all.)
- A file stream can contain, additionally to sequences of bytes, also inherent links to other files. These links can optionally be marked as "immutable contents", which implements copy-on-write, so that files can link to the same data and specify whether or not to be mutable separately for each link. The links can also easily be found by backward searching.
- Queries in other files with links are possible, since they can store data with records and fields that you can specify by yourself.
- Since any file can have links, you can easily arrange them in a virtual space or canvas if desired, or in a text document with headings etc, or in a data table, etc. Multiple links to a file can exist.
- It is a capability-based system and one capability that programs might provide can be a "translator" capability, allowing to access partial data from one file transformed into some other way, without the other program that accesses them needing to know about that. (Capability-based in this way, also allows end users to program it to lie to the system in desired ways, allowing better interoperability to do many things that the original program was not designed to do, as well as allowing security isolation when the end user does not wish to connect them together.)
- It is designed for local use first, so no internet connection is required; however, remote access is also possible with capabilities that provide access to remote files, if desired.
I had written partial specifications for a capability-based operating system of this design, as well as ideas relating to it.