
A Pi-Powered Plan 9 Cluster - signa11
https://www.rs-online.com/designspark/a-pi-powered-plan-9-cluster
======
rcarmo
I’d love to have read more about the cluster configuration, because it looks
like the only machine that actually ran Plan9 was the one with the display...

I’ve been lurking in the 9fans mailing-list for years and kept a Pi running
Plan9 as a sort of 24/7 “home console” (to log in to other machines) for a
long time, but I recently upgraded that to a 3B+ and Raspbian instead due to
the lack of a good enough web browser, and having a cluster of my own (now
running k3s), I would have liked to see a reference configuration of some
sort.

The Plan9/Inferno ecosystem has always been fascinating to me, but it’s so
closed upon itself that it’s hard to, say, go out into GitHub (or equivalent)
and find actively maintained tools (or even blog posts with updated info), and
source archives seem to be maintained by fewer and fewer people...

~~~
MisterTea
> , and source archives seem to be maintained by fewer and fewer people...

Untrue, the community is quite active and alive. I've lurked for years, but
this past spring I stumbled on 9gridchan. I was hooked and drawn in by it's
simple the interfaces, clean api's (just look at the man page for dial(2)),
fresh take on a C library, and great documentation.

Second, pure labs Plan 9 is pretty much unmaintained. 9front is the most up-
to-date distribution complete with a very active community and a small yet
extremely talented group of core developers. You also have 9gridchan which is
maintained by another talented individual. 9gridchan is two things: first a
9front fork called ANTS and a publically accessible grid system where users
can connect to share files, chat in an irc like chat program which is just a
shared text file and the ability to plumb messages, code and images. In
addition, there's spawngrid which provides on demand CPU environments similar
to Linux containers.

~~~
rcarmo
Well, only the other day people were discussing how to keep the archives alive
on the mailing-list. And the community hasn’t been very active in the sense of
new projects, software ports, etc.

Plus the number of e-mails I get has been steadily decreasing over time...

~~~
MisterTea
Depends on which community camp you're in. I'm more in the 9front camp where
yes, you have to deal with a lot of younger people, some even young teens.
They lurk 4chan and meme like children but it's active and there are a lot of
passionate people on there. There is even a 9front discord clent called disco
that's written in Go. There is also an IRC bridge (##9fans on freenode).

The 9front camp might be off putting to some but I don't mind. It's good to
see young people be passionate about something and actively participate.

~~~
calvinmorrison
that and hubchat is where a lot of conversation goes on. #cat-v is a perennial
winner of course.

There's plenty of ongoing work. the ANTS stuff in particular coming from
mycrotiv is pretty interesting, though as usual somewhat whacky.

~~~
MisterTea
He's a really nice guy though. 9front didn't do itself any favors with the
arrogance and RTFM mentality so I didnt feel comfortable asking questions. But
mycroftiv really makes hubchat pleasant and welcoming along with the others. I
felt comfortable asking questions that I felt were dumb, e.g. why does 9fs
9fat fail in a drawterm session? "Oh you just have to `bind -a '#S' /dev` to
get the serial ata controller in your shells namespace" Cool people.

------
kristianp
Reading this led me to wonder if Go is available on Arm Plan 9. There's a way
to cross-compile it [1], it requires a shell script to simulate git [2] (which
isn't available on Plan 9) using http calls to github!

[1]
[https://github.com/golang/go/wiki/Plan9](https://github.com/golang/go/wiki/Plan9)
[2] [https://blog.gopheracademy.com/advent-2014/wrapping-
git/](https://blog.gopheracademy.com/advent-2014/wrapping-git/)

~~~
ainar-g
It is available. At least
[https://build.golang.org/](https://build.golang.org/) lists plan9/arm as one
of builders. Interestingly enough, the source code build help page[1] doesn't
list plan9/arm as a valid build target.

EDIT: There is an open issue[2] about updating that page.

[1]
[https://golang.org/doc/install/source](https://golang.org/doc/install/source)

[2]
[https://github.com/golang/go/issues/28142](https://github.com/golang/go/issues/28142)

------
bibyte
I am slightly disappointed that they finished it just when the system booted
up. Why not show off the power of the cluster ?

~~~
newnewpdro
Presumably because they didn't actually do much more than get plan9 booting on
a raspberry pi sharing an enclosure with other raspberry pis.

------
rbanffy
Someone should eventually build a browser that runs tabs on multiple nodes of
the cluster.

Maybe Slack could release a client that does that, running each connection on
a separate node.

~~~
FridgeSeal
> Maybe Slack could release a client that does that, running each connection
> on a separate node.

Why, so it can consume ram on even more machines at once? :P

~~~
phoobahr
that's the joke.

------
rob74
"The project provided an excuse to make use of a Vortex Core 47-key keyboard,
which together with a mini white HDMI monitor, provided a particularly compact
and suitably futuristic feeling setup."

I think the word he's looking for is "retrofuturistic" ;)

~~~
rbanffy
It's kind of alt-future.

We invented something better than Unix. We just didn't want to use it that
badly.

~~~
mruts
Are we talking about Plan 9 or Lisp Machines?

~~~
rbanffy
Both fit the bill at different time references. Plan 9 is closer to what we
would expect a modern computer would be, with network transparency built-in
down to its very core. It's natural to spread your use across multiple
machines from a single seat. Authentication, authorization and securing the
channel against eavesdropping was not as big a concern then as it is now when
every network should be treated as it's public and hostile.

I'm not sure how a Lisp machine of Symbolics or LMI heritage or a Smalltalk
system would deal with distributed functionality across untrusted networks.
From the language PoV, it seems natural to Smalltalk.

~~~
pjmlp
I surely wouldn't like my GPGPU at the end of a network socket, instead of
shared memory IPC.

~~~
rbanffy
If the data resides on the same node as the GPGPU and you only do queries on
it (as you would with a remote Jupyter or something like it) with little data
being moved across the network, there is no reason its memory should be
directly visible to the local CPU and little benefit if it is.

The only thing is that your OS will have to do some cluster management to make
sure data will be close to the programs using it.

~~~
mruts
If data is being transferred frequently between RAM, the CPU, or the GPU, it
will kill performance anyways. So maybe a GPU is actually one of the better
things to have over a socket..

~~~
rbanffy
If your OS is able to deal transparently with heterogeneous hosts across
different network transports, then the GPU and its memory will end up being
treated as just another compute node hooked up to one of the other compute
nodes by a ridiculously fast network.

------
Koshkin
It’s an old(ish) post (mostly showing how to build the enclosure), and the
download link pointing at Bell Labs is dead. Plan9 has a new home at
[https://9p.io/plan9/](https://9p.io/plan9/).

~~~
driusan
If you stumble across a labs URL (like in the article), you can usually just
replace "plan9.bell-labs.com" with "9p.io". For instance, the link to Miller's
RPi build that was linked to should be updated to
[http://9p.io/sources/contrib/miller/9pi.img.gz](http://9p.io/sources/contrib/miller/9pi.img.gz)

------
rbanffy
I wonder if one could run it on a ClusterHAT.

[https://shop.pimoroni.com/products/cluster-
hat](https://shop.pimoroni.com/products/cluster-hat)

------
hestefisk
This is very cool. I love the simple windowing environment. It would be great
to understand how he takes advantage of the clustered setup with only one
workspace. How does he do networking etc.

------
abhinai
I wonder if this post gave some seminal ideas to a new generation of OS or
language builders! Really cool stuff.

~~~
pjmlp
Plenty of ideas available in mainframes and safe OS systems that are yet to
become mainstream.

~~~
FridgeSeal
For those of us unaware of some of the intricacies and unusual/interesting
features available in mainframe and other OS’s, could you provide some
examples?

~~~
pjmlp
Being written in memory safe system programming languages to start with.

Burroughs B5500, nowadays sold by Unysis as ClearPath.

OS/400, nowadays known as IBM i.

Using a database as file system, like OS/400 catalogs.

Containers were invented on OS/360, improved on other IBM models, and still
offer resource management features not yet mainstream.

------
kevintb
Very cool! Like the setup and I always like hearing more about Plan 9
projects.

