4 ms·
Right. On Plan 9, this kind of composition usually took the form of rfork()ing to inherit the parent process's namespace, mutating it in a handful of ways deeme
by nrr 2y ago
Right. On Plan 9, this kind of composition usually took the form of rfork()ing to inherit the parent process's namespace, mutating it in a handful of ways deemed useful, and then exec()ing the new image. The mechanics are clear to me, I feel.
What isn't clear are the logistics: what, concretely, do we need to undertake in order to avoid a security posture lateral step from ambient authority to object-capabilities? Importantly, how do we make this ergonomic?
- mikewarot 2y agoDoing it in a GUI should be fairly trivial, it's just update/replacement of the file pickers with a few more options. As far as the command line goes... that's the problem. We don't have any standardization for command line syntax. My first instinct is to try to impose it, but that seems like a "boil the ocean" approach. Next up, something like pipes? Maybe a new set of delimiters to pipe capabilities, and allow testing of them in some fairly transparent way? Let's say that ||| pipes a capability $ select / ||| showcaps showcaps: / - FULL ACCESS $ select / ||| readonly ||| showcaps showcaps: / - READ ONLY I'm sure they had something figured out for KeyKOS etc, I don't know what that was.
- nrr 2y agoI strongly suspect that a good GUI implementation will look like how file choosers on RISC OS work, and the command line environment might be inspired by both Plan 9's namespaces and how data definitions (and their accompanying data control blocks) work in JES2 JCL on MVS. My only concern is that, without well-thought-out access controls, the only people who will care will be nerds or folks with a high frustration tolerance for poorly-considered human-computer interaction.