Typed files and what is general about Schemes?

Hi everyone,

i’ve once again come across Redox OS by reflecting over file systems and I’m asking myself:

In how far is a url/scheme system more general than a (system of) file system?

Since I’m not the most competent person regarding redox, I thought I’d better ask you.

According to my understanding,

  1. the term ”scheme“ in redox refers to the type and the constructor of a file system
  2. a file is a something with certain operations defined, usually at least open, read, write.
  3. ”file system“ is a family of languages for desribing a graph
    1. where the nodes are files, usually almost or entirely a tree
    2. which has at least one entry point, which can often be placed somewhere in another file system using something like ”mount“
  4. this is used as an ipc interface (e.g. interfacing a file manager with the process providing the graph).
  5. for any file other than a directory, read is (approximately) a serialization function (T : File Type) -> Byte Stream and write the other way round. The functions are provided by the file system/scheme.

Is a URL really more general than a file system? Isn’t the collection of mounted URLs like a flattened tree of mounted file systems which are named explicitly?

Why does redox have a global namespace file system types and not of file types themselves?

And what if two programs want to provide the same scheme, e.g. different versions, or the same program on different machines, must the schemes be named differently? The flat namespace seems to me like an unnecessary restriction which complicates things, while being equally expressive as a structured one.

Or am I missing/misunderstanding some point?

1 Like

Welcome to the forum!

I hope somebody is able to answer the question, as the “url inspired” file system does seem to be one of the main differentiators that makes Redox much more than just an attempt to rewrite linux in rust language.