Hello, 9fans!

This is the first public announcement on 9fans of an ongoing open collaborative Plan 9 project offering software tools and resources for hobby-oriented gridding for Plan 9 and Inferno users. This announcement is timed to coincide with the arrivial of some new software on sources that is a celebration of UNIX pipes - iosrv, available via contrib/install mycroftiv/iosrv or mk install from the iosrv.tgz in contrib/mycroftiv. 'iosrv' brings much of the functionality of GNU screen to plan 9, but dispenses with the encumberance of emulating a TTY. Instead, iosrv delivers persistent rc sessions for multiple clients with multiplexing and buffering of data via pipe(3) files. The user creates and attaches to sessions available in /srv, using the 'io' wrapper script. Because iosrv provides sets of 'application agnostic' two way on-demand pipes, remote clients have the choice of spawning new shells on the remote iosrv host, or alternatively on their local machine - and locally spawned shells can be shared via iosrv back to the other remote clients of the iosrv host. All functionality is implemented using a simple abstraction called a Hub, which is an attempt to expand the traditional unix pipe | to have multiple inputs, multiple outputs, and the ability to connect and disconnect from the data stream dynamically.

'Iosrv' is the latest tool created by and for the 9gridchan.org open grid project - a volunteer run set of network nodes for Plan 9 resources of several kinds. There's also a website there. We provide:

+ ready to use customized qemu Plan 9 installed images (these can also be easily converted to vmware .vmdk disk images)
+ 'grid toolkits' for linux systems packaged with venti data for system images and plan9port binaries and scripts to create ready-to-use multi-system setups - p9p venti + qemu fossil server + qemu cpu server + drawterm terminal
+ directly usable plan 9 resources of several kinds, such as an Inferno hosted 9p service registry that interoperates with our g/toolkit of scripts - exact services and connection methods are always in a state of flux but most things are quite open and accessible
+ original software for ad-hoc gridding and resource sharing, such as iosrv and the gscripts toolkit. The code and design quality for our stuff can be a bit variable, but we do test and use it extensively ourselves.

We are often available 'directly' in our plan 9 development environment. We strongly support the original vision of Plan 9 as a shared collaborative environment for programming and we like to do real-time experimentation and testing. In other words, we export a lot of our local resources publicly so interested people can connect to our live work environment. Iosrv was created specifically for this purpose, among others.

Who the heck is 'we'?

Well, much of this is the work of one person, a Plan 9 'amateur' in the literal meaning of the word. For the purposes of this posting, you can read 'we' as 'mycroftiv, 9gridchan.org domain admin and developer'. My name and identity are no secret, you can whois 9gridchan.org for my personal information if you are curious. If you happen to be nearby, feel me to contact me to visit the grid's physical plant. (Also known as some old computers in a basement.) I use the word 'we' to indicate that this project was conceived by a group of people who became interested in Plan 9, and I have been working on behalf of that loose federation of interested individuals. The cultural context of the project, as indicated by the '9gridchan' name, comes from the chan imageboards, known for their highly open nature (anyone can contribute content and participate) and dedication to free expression, satire, and humor. I am old enough to have great nostalgia for the personal computing era of the early 1980s (the local Apple ][ users group meetings were some of the high points of my young life, and my fingers were perpetually smudged with hobbyist-magazine ink from typing in BASIC source cod) and I have often missed the build-it-yourself spirit of that era. Finding Plan 9 has been one of the amazing experiences of my life (where had it been hiding the past decades!?) and although it may be a quixotic dream and vision, I want to try to work for a world where anyone and everyone is both importing and exporting an array of 9p services from their desktop, and gigantic exabyte Venti servers provide caching all along the internet backbone.

Anyway, we've been at this for quite awhile now - it was about a year ago that this project got started. Along the way a lot of more experienced Plan 9 users have provided help and guidance. In particular the #plan9 irc channel on freenode.net has been invaluable - we hang out there, and also in the #plan9chan project channel. (Note that the #plan9chan project channel is very casual, sometimes off-topic, and tolerates all kinds of speech.) We also want to provide some statements of praise for all the people who have made Plan 9 so incredible - discovering Plan 9 is like actually finding the Lost City of Atlantis, fully populated with amazingly advanced technologies and lots of very attractive single women in transparent togas - and discovering that despite the fact that it floats right off the coast of New Jersey, very few people know about it!

So please, all of you, accept a heartfelt thanks for all the great things about Plan 9 from a very satisfied user. To the giants like Rob Pike and Ken Thompson and the rest of the original team, through people like Russ Cox (who's work on integration tools such as plan9port and Drawterm is especially appreciated) and Geoff Collyer and other current maintainers and to the many contributors to plan 9 such as nemo, fgb, andrey, quanstro, arisawa, cinap_lenrek, maht, dho and everyone else - thanks for all the work you did and are doing. Also, anything that we've managed to do right owes huge credit to people in irc who have helped with advice or testing like sqweek, soul9, uriel (who also gets special thanks for werc), yiyus, capso, martian67 and original gridders like drbawb, CCCT, kenya, root, ionic_groove, and all the rest of the people who have been willing to dive into a strange new gray world. All the mistakes and misconceptions are purely our own and we look forward to feedback to help us evolve the tools and services we are providing. Nemo's "Introduction to OS abstractions using Plan 9" demands special mention as invaluable help, tutorial, and reference.

We hope our enthusiasm is obvious and that our light-hearted approach is taken in the spirit of playful creation that has often fueled the evolution of computer systems, probably even before the 1969 version of 'space travel' started the long travels of Spaceship UNIX. We do want to make sure to respect the licenses of everything we are redistributing and follow the generally accepted principles for contributors to the community, so please let us know if we've made any errors in that regard. To conclude, I'll return to 'iosrv' - much of our inspiration was drawn from reading the interviews on the princeton 'oral history of UNIX' page (http://www.princeton.edu/~mike/unixhistory) - in particular the suggestion that UNIX pipes represented a brilliant, effective, implementation of process to process communication, distilled from Doug McIlroy's weirder and wilder vision of more open-ended connection models that wasn't the right practical solution at the time. At the same time, we were experimenting with many of the great facilities that Plan 9 offers to expand on communication - importing /srv from a remote machine, then launching windows in the remote machine's $wsys and also tee'ing the output locally. It was easy to 'share' an rc shell in various ways using these tricks, and the functionality of 'screen' seemed like something that would be useful to have in Plan 9's arsenal beyond what consolefs offers. Since Plan 9 has such a pure design for how the basics of the rc shell + rio work (no legacy TTY based systems involved) it was apparent that a fairly thin layer of input/output buffering and multiplexing could provide a lot of useful functionality. As always, if the toolbox is designed correctly, structures seem to almost 'build themselves' and the existing Plan 9 tools like pipe (3) files and exportfs (4) make creating and providing the Hub abstraction to clients easy. We hope that you will enjoy using 'io' to experiment with some of the crazy ideas of building systems with gigantic freeform pipeline topologies, as well as in its role as a provider of persistent rc sessions for multiple clients.

Thanks for your time and attention - this post may be a bit overloaded, but I've waited almost a year to make it!
Mycroftiv

mycroftiv@sphericalharmony.com
plan9grid@sphericalharmony.com

mycroftiv in #plan9 and #plan9chan on irc.freenode.net

usually available on the /9/grid via several methods