OpenBSD 6.3 and Plan 9 from User Space

in blog •  6 years ago  (edited)

This post is unabashedly dedicated to Pete Trbovich

I have a weird attraction-repulsion relationship with Plan 9 from Bell Labs, that odd-looking research operating system from the same Bell Laboratories team that gave the world UNIX. As you may already know, it was intended as a "do-over" of UNIX, as that older system's shortcomings were perceived by its creators as being too deep to fix with mere patches or upgrades, so they opted to start over from scratch. The 1992 inaugural release ofPlan 9 from Bell Labs was the result of that effort.

While my first inkling that Plan 9 even existed probably came in 2008 via a passing reference in Arnold Robbins' excellent Classic Shell Scripting, it was Penguin Pete's vivid and hugely-entertaining review of version 4 of that system that stoked my curiosity enough that soon I was installing it on my late 90's era Dell Latitude laptop.

Once I had it up and running (as one part of a NetBSD/Plan 9 dual-boot machine), I found that although it was fascinating to futz around with, I simply didn't know how to use it in any productive sense whatsoever. It certainly didn't help that there wasn't a driver for my network card - a lack of connectivity poses obvious problems when you're trying to delve into an OS designed primarily for distributed computing.

The recurring question that kept coming to mind (and that would ultimately remain unanswered) was, "What the heck do I do with this thing?". Before long, my laptop would go back to being exclusively *BSD. (It is currently enjoying a very quiet retirement in my closet, with infrequent visits from me whenever I'm itching to boot FreeBSD 6.2.)

And despite the clean and aesthetically-pleasing simplicity of rio (the Plan 9 GUI), I have (even to this day) found the system in general to be frustrating and counter-intuitive to use. This is in no way a criticism of Plan 9 itself, as it was never intended to be everything to everybody. (Hello, Windows and Ubuntu.) The system has always existed for research purposes, despite noble attempts to market a commercial offshoot, Inferno.

As for me, I'm writing this as an ordinary desktop user, and not a system administrator nor even someone who would have a reason to find Plan 9 more useful than any of the current iterations of UNIX or its "Unix-like" derivatives. There are, however, people who do have reason to find it useful, and are not stymied by a lack of mainstream applications such as Firefox or LibreOffice.

Despite some basic similarities in terms of commands or even command line syntax, and despite its Bell Labs parentage, Plan 9 is Unix-like only in a very superficial way. While UNIX users are the best candidates to even begin to wrap their heads around it, it is indeed best approached as a totally different thing. Though your UNIX shell skills may help you navigate the streets of this bizarre little city, you will need to linger and experiment over a period of time to unlock its doors. (Some decent tutorials or how-to videos are certainly advisable.)

In short, Plan 9 is profoundly awesome - I'm just not the target market, at least not for running it as the native system...

plan9.jpg

Plan 9 from User Space running in OpenBSD 6.3

For those of us with a crush on this adorable (if difficult) creature, there is Plan 9 from User Space, a port of the Plan 9 user interface, utilities and libraries that brings its distinctive look and feel as well as most of its functionality to your UNIX desktop. To me it's the best of both worlds, as I can scratch my Plan 9 itch whenever the mood hits, but without having to stray from my beloved OpenBSD. (I should clarify here that the term "Plan 9 from User Space" is sometimes used to encompass both assorted standalone derivative projects such as 9wm and wily, as well as plan9port, which is a port of as much of the Plan 9 environment as possible without it being the entire operating system itself. On the whole, this post is concerned with the latter.)

As for getting Plan 9 from Bell Labs up and running on OpenBSD 6.3 (the current version as of this writing), you may hit a snag if you try to build it from ports. After I entered cd /usr/ports/plan9/plan9ports and make install, the process bumped its forehead about 2400 lines in with these error messages:

*** Error 1 in . (Makefile:66 'do-install')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2832 '/usr/ports/pobj/plan9port-20180117/fake-amd64/.fake_done')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:1938 '/usr/ports/packages/amd64/all/plan9port-20180117.tgz')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2440 '_internal-package')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2419 'package')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:1956 '/var/db/pkg/plan9port-20180117/+CONTENTS')
*** Error 1 in /usr/ports/plan9/plan9port (/usr/ports/infrastructure/mk/bsd.port.mk:2419 'install')

I had successfully installed plan9port on earlier versions of OpenBSD from their respective /usr/ports, so there may be a bug report in my near future. In the meantime, I have been able to build plan9port from source (via a download from the project's GitHub page). After unpacking the source, it was simply a matter of entering the following commands:

$ cd $HOME/Downloads/plan9port-master
$ ./INSTALL

Once the build was finished, I added :$HOME/Downloads/plan9port-master/bin to my .profile, and then rio to .xinitrc. Now, the full Plan 9 environment (if not the core functionality) is just a startx away.

Postscript

While I enjoy sticking my toe in the Plan 9 waters every now and then, I have come to appreciate the more standard world of UNIX window managers - admittedly, this may be a simple matter of comfort in the familiar. And although the Plan 9 approach to mouse-chording underlies some of the frustration noted above (and leaves me decidedly cold), this system has nevertheless left an indelible impression on my own sensibilities, such that I once created a .twmrc file that tried to make twm look as much as possible like rio. (I posted about it in the FreeBSD forum back in 2009.)

For those OpenBSD users looking to approximate the rio experience in a less circuitous manner, there's always the aforementioned 9wm window manager, which approximates 8 1/2, the gray scale predecessor to rio on previous versions of Plan 9. If any of the above turns your crank,cwm is another great choice - it is available out-of-the-box, and is spearheaded by the OpenBSD project. While distantly inspired by rio, it is its own thing and may capture your heart on its own terms, rather than through Plan 9 nostalgia.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Source
#introduceyourself/#introducemyself

The “introduceyourself/introducemyself” tag is for creating one introductory post that tells us about you. Users are encouraged to use this tag exclusively for that, and not to reuse it.

More information:

The Game of Tags

Welcome to Steemit @jamesdeagle :)

Congratulations @jamesdeagle! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Support SteemitBoard's project! Vote for its witness and get one more award!

Welcome to Steem! Partiko is a fast and beautiful mobile app for Steem and we upvote our users to help them grow! Please feel free to download the Android app here and the iOS app here.

To learn more about us and stay connected with us, please join our Discord server here: https://discord.gg/N7Et97G