March 24, 2019

Broadening Horizons with Other Operating Systems - page 2

Looking at GNU HURD and Plan 9

  • June 29, 2000
  • By Jay Fink

From user empowerment to system abstraction, Plan 9 differs from the HURD vastly, not in exacting coding but overall design. The driving philosophy behind Plan 9 is the abstraction of networks.

Note: It is important for readers to understand that in the following section I refer to distributed computing as a collection of servers performing unique tasks and in some cases sharing them. I refer to clusters as large CPU-sharing groups of systems that all work towards common tasks. Your definitions may vary.

Distributed & Clustered Computing

It is without a doubt a fact that distributed computing became very big in the mid-1980s and early 19990s and is still prevalent today. I have always decried distributed computing, at least in its most basic of forms, but this is because most of the time it has been poorly implemented. I have always believed in a central strong multitasking set of systems, but I can also argue that a well-designed set of distributed systems working towards the same tasks can accomplish as much, as in a well-designed cluster.

This is where Plan 9 fits into the picture, but perhaps one step more than I ever imagined. To be honest, when someone says to me, "distributed computing," the first thought that comes to my mind is 2000 appliance systems. Plan 9 says, in a nutshell, you should not even have to think about the architectures. Plan 9 not only takes away from the user concern about the systems involved, but about the network itself.

A Quick Run Down of Plan 9

So what makes it different? Well, the idea is best summed up in a paper at Bell Labs that plainly states:

"The distinction between operating system, library, and application is important to the operating system researcher but uninteresting to the user."

Personal Note: Unless, of course the user is a total geek.

Okay so how is it done? Well, I am definitely giving the short short and largely inadequate version here because, well, there is a whole collection of papers, essays and guides available from the Plan9 Site that goes into much greater detail than I can about how it works.

The system is designed around three principles:

  1. Resources are accessed and named like files in a file system, not unlike UNIX.
  2. There is a single standard protocol for accessing resources.
  3. All hierarchies are joined together to form a single private hierarchy file-name space.

Now, the important thing to note about these three principles is that they are neither distributed nor clustering. It is transparent distributed networking. This means that Plan9 has separate systems providing different services (some are shared), all of which is transparent to the end user. The user is able to log in to any Plan9 terminal/station and all resources will be, for them, in the same place. In a sense, I suppose it is like accessing a single large computer for the user, but in fact it is a single large resource collection.

And the Point of This Is....

To read about these operating systems, and others, then apply or just plain think about them when working on whatever it may be you are using. The amazing thing about both the HURD and Plan 9 is that they both are well written from a technical viewpoint (I know this for a fact about the HURD), but the real difference between them is their influence on overall design based solely on design philosophies.

Most Popular LinuxPlanet Stories