Live data from Hacker News

Security in Plan 9 (2002)

9p.io

41–50 of 74 posts

Re: Security in Plan 9 (2002)

#41

Earlier quoted context omitted.

to be fair, it's where UTF-8 debuted

and /proc Unfortunately, kids these days seem to be afraid of files. For a hardcore unix fan, curl and wget are useless tools when you can just cat /www/url

> kids these days seem to be afraid of files

Sad but true. Android and iOS are the worst offenders I've seen. They're apparently trying to completely get rid of the concept of files altogether, which is really unfortunate for anyone wanting to build cool stuff on those platforms.

I understand there can be security benefits but at what cost.

Re: Security in Plan 9 (2002)

#42
post #28

Earlier quoted context omitted.

It's seems nice on a first glance. But how do you set headers and content type for example?

You echo the request into /www/url and cat the response from it

or even better, to avoid state, the url "file" is executable and you pipe through it:

    /www/url  answer

Re: Security in Plan 9 (2002)

#43

Earlier quoted context omitted.

Next up in the blog schedule: "Performance and Scaling in Plan 9"

I'd actually love to see such a paper. Plan 9 threading is more like coroutines, but it is certainly possible to run multi-core/multi-process code. That said, I can't say I've seen anyone try to write anything that scales like nginx on Plan 9. That doesn't mean it hasn't happened, I've just not seen anyone talk about it too much. It did run on IBM's Blue Gene for a bit ( https://www.usenix.org/legacy/event/usenix07/p…

Plan9 libthread is literally goroutines just without the syntax sugar - up till version 1.5, golang shipped significant chunk of Plan9 standard library with itself. It's also where the saner networking interface came from, as Plan9 was to support networking from start, not depend on quick and dirty port of non-Unix stack like BSD Sockets

Re: Security in Plan 9 (2002)

#44
post #16

Plan 9 seems to be disproportionately influential for an OS nobody who's not into systems engineering has ever heard about.

When it was first announced, it wasn't clear it would end up being so esoteric, but I remember that Ken Thompson, Dennis Ritchie, and Rob Pike were working on it, and maybe Brian Kernighan too?

Timing-wise, it was too late for what they ended up doing, but anything all those people worked on is bound to have some interesting ideas.

It's been weird watching the rise of iOS loosen the reliance on, or even awareness of, files, when 9P was all about files. Files for everything!

Re: Security in Plan 9 (2002)

#45
post #28

Earlier quoted context omitted.

It's seems nice on a first glance. But how do you set headers and content type for example?

You echo the request into /www/url and cat the response from it

How does it know where to send it? Does it just assume it should use the contents of the Host header and send the request there or is the "url" in your path the destination? Does it support things like SNI?[1] Can you spoof that? Does it expect clients to parse out the raw output of the HTTP response? I have so many questions. From a quick glance this seems a lot harder to work with than curl for both trivial and non-trivial uses.

I tried to find docs on it, but couldn't. If you could link me to some, I'd appreciate it.

[1] After posting this I remember like a doofus this is an OS from the 90s. Of course it doesn't. But a similar question could be asked about any other TLS level setting. That's just one I've had to spend more time debugging using curl in the past.

Re: Security in Plan 9 (2002)

#46

Earlier quoted context omitted.

You echo the request into /www/url and cat the response from it

or even better, to avoid state, the url "file" is executable and you pipe through it: /www/url answer

that already exists, the command is "wget -i - -o -"

Re: Security in Plan 9 (2002)

#50

Earlier quoted context omitted.

to be fair, it's where UTF-8 debuted

and /proc Unfortunately, kids these days seem to be afraid of files. For a hardcore unix fan, curl and wget are useless tools when you can just cat /www/url

/proc is cute for manual tasks but utterly broke as an API due to inherent races and issues passing context around.
Post reply on HN