Unofficial FAQ for the /9/grid project

(EDIT - 10 July 2009 - This FAQ isn't exactly inaccurate, but its fundamentally old and not actually that useful for understand the project)


Q: What is the /9/grid?

A: A project begun by users of 4chan's technolo/g/y board to setup a free, decentralized grid computing network, available to users of any OS. By integrating Plan 9 based networking technologies (via Plan 9, Inferno, 9vx, or others) with our usual OSes, we can create transparent networks of whatever content and services we want. Note that there are several different projects using the term 9grid, the resources here are only a small portion of the world of Plan 9 + Inferno based distributed systems.

Q: What is Plan 9? What is Inferno? What is 9vx? What is Plan 9 from User Space?

A: Plan 9 is the OS written by many of the original Unix authors, sponsored by Bell Labs, to create an OS that would allow for better networking, more user control, and the ability to share resources transparently between all computers connected to the grid. Despite the strength of the concepts, the complex dance of markets and corporations that structure the computer industry never happened to favor widespread adoption. Even though it hasn't (yet) conquered the world, smart people have been paying attention. The technology branched out - into Inferno, a new implementation of Plan 9 tech that can be run as a lightweight application inside any OS and other projects which integrate Plan 9 tools and tech such as the Linux kernel 9p modules, 9vx, a version of plan9 that runs as a userspace application, and Plan 9 from User Space (plan9port).

Q: What's the point? I can share files with bittorrent, and do remote access with SSH or putty.

A: Of course — and you can get your news from a newspaper, you don't need to read websites and blogs! The networking and design of Inferno/Plan9 make it easy to do things that are hard to do with other protocols. The 9p/styx protocol can handle dynamic data streams just as easily as static files, for instance. Another reason to explore Plan 9 is the amount of control and customizability. Start talking to Plan 9 users, and you start hearing about an immense variety of different modular, customized environments. There are many unique and powerful workflows for managing your data that are made possible by plan 9. The most important reason, though, from our perspective, is that its fun - this is just cool software!

Q: How do I get started?

A: The easiest way to get started is by downloading the pre-installed plan9 node image for use in a qemu VM. See the 9grid Node Img page. Or if you are more interested in Inferno, get the install CD from Vita Nuova, see http://www.vitanuova.com/inferno/netdownload4T.html. (You can also download full Plan 9 from http://plan9.bell-labs.com/plan9/download.html and install it on native hardware or in a virtual machine - Qemu works, and several others do also, although some require some tweaking. VMware requires disabling the cd-rom drive from the virtual machine's config file after install but before boot, for instance.) If you want to run a grid node using Inferno, we recommend making a new user for inferno, installing Inferno as that user, then removing that user's admin privileges. This lets Inferno run 'sandboxed'. If you just want to see what inferno is and check some stuff out, this isn't necessary. Also, you DO have your data backed up and confidential personal data encrypted, right? That's basic computer use, regardless of whether you want to be a node. We believe its perfectly safe to operate a node on your everyday desktop, provided Common Sense is installed and running correctly.

Q: If I want to use the grid, do I have to keep my computer on all the time?

A: Absolutely not! The whole design of the grid is based around updating the list of connected nodes and services in real time, so as nodes come online and go offline, their services are automatically added and removed from the registries. The goal of the grid is to add on new network functions and services to your existing computer setup, with no loss of any existing functionality. Of course, you may find that you want to keep your node up most of the time, which is welcome and appreciated, especially if you are willing to help by providing a service registry for others to use.

Q: What is a Venti server, and why is it useful?

A: A Venti is an block-data storage server featuring indexing of all datablocks and efficient storage of potentially duplicated data. We provide a public Venti server that is open to anyone to download from and upload to. Sharing .vac scores is a very efficient way of moving data around. See the Venti page for more info.

Q: What's the most important thing to understand about Plan 9 and its relatives before I get started?

A: Namespaces and namespace independence. This is one of the primary ways these operating systems are different. Instead of a static view of the filesystem and network, you have a dynamic view, embodied in your currently running processes' namespaces. This is a huge topic and one you just HAVE to learn a bit about to use these systems. The easiest, simplest way to put it to a beginner is: what you do inside one program/window wont necessarily carry over to your other programs and windows. Anything that modifies your namespace - which is a lot of the most important stuff, such as mount and bind commands - applies only to the current process (such as a given shell window) and processes it launches. This may seem strange, and it will definitely cause you some confusion as you learn, but it is actually very cool and very powerful. As a simple example, you can open a shell in your current display, and issue a series of mount commands to setup a particular directory structure. Then, you do rio (plan 9) or wm/wm (inferno) to start a sub window manager session INSIDE your main session. Inside this sub session, all the mount commands you issued affect everything you do. Programs you start outside of the subsession wont see any of the mounts created by the shell thats 'next to them'.

Q: Where can I learn more?

A: Try #plan9 on irc.freenode.net for general help and discussion. #plan9chan is a semisocial channel for /9/gridchan specific resources and projects. Also look for semi-daily threads on /g/, browse the thread archives, and of course check out the official plan 9 and Inferno websites and wikis.

NOTE: Sorry for any typos, inaccuracies, or Total Bullshit that has crept into this document. All errors are the responsibility of the author, but the consequences of anything you type into your own shell are on you, the person controlling your fingers. No guarantees, but your wasted time will be refunded by the universe, in some fashion or another.

Special thanks to Sqweek for helping us learn a few of the basics. Anything that works right on this page is based on his examples and the previous inferno wiki tutorials such as: http://canto.hopto.org/wiki/ASimpleGrid/index.html

Special thanks also to Uriel for writing the werc CMS this site uses and providing invaluable guidance, soul9 for the image gallery werc plugin and consistent assistance and testing, and all the testers of the image and resources.