3 ms·
>the whole idea that 'everything is a file' is so powerful that we ended up not believing it and the resulting hacks are all so ugly in comparison I agree. Peo
by Isamu 1y ago
>the whole idea that 'everything is a file' is so powerful that we ended up not believing it and the resulting hacks are all so ugly in comparison
I agree. People find it hard to wrap their heads around simple and uniform interfaces. They can’t simplify what they want to accomplish, they want to inflict their complexity on everyone.
Simplifying is maybe emotionally deflating, it makes for a less satisfying solution. Career-wise, it is better to propose complex solutions that take lots of manpower. That’s how you climb the ladder.
- calvinmorrison 1y agoyet - you still have to learn opaque crap. example echo kill > /proc/123/ctl Sure, that works if you know kill, but you cannot inspect ctl and understand the interface, its a write interface. so you can certainly RTFM, read the dev proc list, etc. it's not discoverable so like /proc/net/stat or whatever, it means nothing to me... its gonna just be a TSV of bytes that mean something, unless you know it. so for all the simplicity, it's what i would call, not very usable.
- serbuvlad 1y agoOk, but there's nothing stopping from writing a "discoverable" GUI or TUI or CLI for this interaction. To the user it doesn't matter. To the developer, it makes a difference. /proc/<pid>/ctl is not any more or less simple or discoverable for the end user than TerminateProcess or kill(2). It's all opaque esoteric stuff. But for the developer /proc/<pid>/ctl is MORE discoverable than TerminateProcess or kill(2), since it's a file you can list, so you know it exists. Yeah, you still have to read the man page (you always have to read the docs as a developer), but you know there's a ctl file that probably controls some stuff about the process there. And you already know how to interact with it (the same IO interface as everything else).
- calvinmorrison 1y agoOf course. But it's not implemented. The OS is the spec.
- magicalhippo 1y agoI guess in theory there is nothing stopping the system from providing yet other files, like say "/proc/123/ctl/description" which provides a human-readable description of what "/proc/123/ctl" does, and "/proc/123/ctl/schema" which provides a standardized schema for interacting with the parent, akin to a XSD or JSON Schema.
- calvinmorrison 1y agoNo there's not. Other than plan9 does not have it and it was not considered important.