Beginning with Plan 9

I did a visit to Plan 9 sometime around 2000 - 2010. I did read few papers but didn't pay attention much because it wouldn't run OpenGL with nvidia hardware.

No matter how good witted you are, it is impossible to collect the wisdom from ~200,000 lines of code, data and documentation just in few days. When I returned to studying Plan 9 last week, it still felt alien.

I have installed Plan 9 to two SD cards. I didn't get this system to work on the arm64 based Raspberry Pi, so I'm using the older Pi computers. I got total of 5 of them.

I am going to spend months or years with this system and learn from it well. Perhaps I will even stick with it.

Joining a community

Plan 9 doesn't have much stir around it anymore, yet there are a lot of forks.

The 9front community was still active and they have added lot of drivers for different platforms while understanding how to not mutilate the OS. Their FQA turned out to be very helpful and welcoming.

Be warned, the community will not welcome you if you come unprepared and expect to be held from the hand. People not willing to learn anything from the systems they use are not welcome. You already have plenty of technical support elsewhere.

The beginner's setup

I have installed the plan9front to a Raspberry Pi from an SD image. Noted that this didn't work on the newer rpi3 that uses arm64. I will eventually look into that and see what's going on.

Right now my Plan 9 is a standalone system. All my other Raspis are powered off. This is a beginner's setup.

It has been documented how the SD image is produced. It's simple and straightforward to do and the system starts in a bare configuration. It is running nothing else but the rio desktop environment that you interact with.

I plan to setup a home automation system around Plan 9, to do so I have to setup a file system and authentification server. These two services will form a core for my Plan 9 installation and the whole Raspberry nexus is commanded from this single host.

Lacking in knowledge

I was planning to use the multicast DNS because I have never setup a proper local network at my home and I thought I wouldn't need to do it this time either.

The Plan 9 operating system doesn't have a mDNS support. The 9front community is also against it.

What's wrong with mDNS? It is revealed to you if you bother to read the Wikipedia page and try to implement the mDNS.

mDNS works like the usual DNS, except that it sends the DNS query into the whole network you have. If you have 100 machines in your network, then all those 100 machines will receive the DNS query and are able to respond to it.

In short the mDNS spams the network and anything on your network can respond to it. Still only one response is expected.

Considering up everything that is extremely stupid. Whoever came up with mDNS is an idiot. You always have a system in your local network that automatically shares the IP addresses for machines. The protocol used for that is DHCP and it does not need multicast to work.

The 9front community referenced some computer network guides they approve. I'm reading through that list right now. I think this is something I should have done a long time ago. It's never too late to learn the basics.

I won't put any links to references because I haven't read even the first one through yet. They will come up later in subsequent blog posts.

The first impressions (Heterogeneity)

Plan 9 features C in a format where I would very well approve its use. They maintain an impressive setup of compiler backends. These compilers work fluently across different platforms, making single Plan 9 distribution run fluently on all systems it supports.

The experience is a bit like Microsoft's mobile strategy, except that it's not hopeless, phony, pointless, stupid or in vain, and it is actually implemented by something else than marketing talk. Everything is portable without needing an insect army of cheap labour.

Plan 9 programs are written such that they expect a heterogeneous environment consisting of several different platform architectures. I'm running this on arm platform and everything works as if it was made for it. At the same time it would work on a PC platform just the same way.

There is a C compiler and a linker for every platform Plan 9 supports and they aren't just flipping every variable through the stack. Considering the complexity of modern computing platforms this is amazing.

This on its own could be the only reason to stick into this system, but it's not the only thing. I haven't even begun yet about all the finery in Plan 9.