Remix.run Logo
jes5199 2 hours ago

I’m not sure it still makes sense to do OS research so close to the metal. Most computing is done up on the application level, and our abstractions there suck, and I haven’t seen any evidence that “everything is a file” helps much in a world of web APIs and SQL databases

marssaxman 2 hours ago | parent | next [-]

Some of us are still interested in the world underneath all that web stuff!

Multiple experimental operating systems at multiple abstraction levels sounds like a good idea, though. What sort of system software would you like to build?

tombert 38 minutes ago | parent | prev | next [-]

I didn’t really see the appeal until I learned how to use FUSE.

There’s something elegant about filesystems. Even more than pipes, filesystems can be used to glue programs together. Want to control your webcam with Vim? Expose a writable file. Want to share a device across the network? Expose it as a file system, mount that filesystem on your computer.

Tor3 an hour ago | parent | prev | next [-]

The "everything is a file" approach is nice in many cases, I'm worried though if it works everywhere. Maybe if done right. Subversion (SVN) shows branches as separate file trees.. and ClearCase too (though I'm on thin ice with ClearCase, having used it very little). And I just can't stand the file-oriented way SVN works, I could never get used to it. But there are a lot of other cases where "it's a file" does work, I've experimented with creating Fuse filesystem interfaces to some stuff now and then.

GrowingSideways 2 hours ago | parent | prev [-]

> I haven’t seen any evidence that “everything is a file” helps much in a world of web APIs and SQL databases

Well for one thing, such an abstraction enables you to avoid web apis and sql databases!

moron4hire 2 hours ago | parent [-]

You're going to have to explain to me how a parametrized request/response system like calling a Web API or making a SQL query can be mapped to reading files. I've seen some stuff that people do with FUSE and it looks like ridiculous circus hoop jumping to making the Brainfuck-is-Turing-complete version of a query system. We have syntax for a reason.

zozbot234 an hour ago | parent | next [-]

Plan9 allows for implementing file servers in user space and exporting a whole file tree as a virtual "folder", so it's really more of "everything as a filenserver". No different than FUSE, really.

ori_b an hour ago | parent | prev | next [-]

Typically, if you were writing your hypothetical sql client in rc shell, you'd implement an interface that looks something like:

    <>/mnt/sql/clone{
        echo 'SELECT * from ...' >[1=0]
        cat /mnt/sql/^`{read}^/data # or awk, or whatever
    }
This is also roughly how webfs works. Making network connections from the shell follows the same pattern. So, for that matter, does making network connections from C, just the file descriptor management is in C.
GrowingSideways an hour ago | parent | prev [-]

In addition to the sibling comment, you might also consider simply not using the APIs or SQL queries to begin with. Many people have entire careers without touching either.