Jim Gettys has a long history of working with interesting ideas. As a
member of Project
, he helped advance the vision of a single computing network
which could serve thousands of users. Technologies which came out of
Athena include Kerberos, Zephyr (said to be the first instant messaging
system), Hesiod (a DNS-based service discovery mechanism) and, of course,
the X Window System. X has taken much of
Jim's time since then. His 2005 OLS talk, however, was not really about X;
it was, instead, a call for developers to push our systems into a very
different sort of future.
Current systems suffer from a failure of imagination which Jim calls the
"mantra of one." We work with one computer, one keyboard, one screen,
one mouse, operating on one domain, working in a single role. But that is not
how the world works, and not how our systems should be. We want to work
together, in many roles, in a highly mobile and connected way. It is time,
says Jim, for free software developers to stop reimplementing the PC and
start leading into the future. We should change the rules of the game.
Jim sees a world where our computers are shrinking. We can all
now carry many gigabytes of storage and substantial computing power in our
pockets, and these tiny devices can communicate wirelessly. At the same
time, displays are getting bigger - too big for one person to carry across
the room, much less in a pocket. Rather than trying to function with the
small screens provided (sometimes) with our small devices, why shouldn't
those devices work with the large displays we may find wherever we go?
So, our pocket computer/phone/music player/etc. should be able to put
windows on the nice wall display which also happens to be our television
(at home) or shared whiteboard (in a corporate conference room), or a
conference table on the other side of the planet. Actions
like cutting and pasting between different applications - belonging to
different users - should be possible (though there are clear security
issues which must be thought out up front). Applications should be able to
put windows on multiple displays - imagine a display distributed around a
conference table screen, properly rotated for each participant. Wireless
keyboards, pointers, and other devices in the room should simply work.
Importantly, all of this has to happen without turning every wall and table
into yet another system which must be administered. The system admin load
is reaching a point where it is overwhelming everything else. It also
needs to be wireless: "a wire only goes to one place."
Jim notes that most of the needed technology is already in place. We have
the small gadgets; the big displays, driven by high-definition TV, are
getting cheaper quickly. Wireless connections are already often cheaper
than buying cables for wired hookups; Zigbee looks like it could be
a useful technology in this role. Distributed, caching filesystems
(Jim mentioned coda) are in place. SELinux, which is designed to put
firewalls between applications running on the same system, might be adapted
to the considerable security challenges posed by all of this. Howl could eliminate
many of the configuration and administration challenges. The Jack audio
system could, if properly network enabled, route audio streams to where
they need to be. Migration support has been in emacs for fifteen years;
GTK+ is adding support now. On top of all this, the free
software is (finally) producing a set of truly interesting and capable
The X Window system features heavily in this scheme, of course, though X
will need a great deal of work. The "one user" assumption is built deeply
into X, and will need to be rooted out. Instead, X needs some sort of
flexible sharing mechanism and a secure but low-hassle authentication
scheme. There is also a need for a great deal of "plumbing" work to make
all of the parts function well together.
The real point, though, is that many (perhaps most) of the necessary pieces
are already available; this vision could be implemented within a few years.
It is, Jim says, something we have to do. The single-user PC is at the end
of its run, and somebody needs to lead the way into the future. Who better
to do it than the free software community? He is hoping that developers
will jump in and help. There is a lot of work to be done, in many areas;
it should be a fun project.
[For more information: see Jim's OLS paper
[PDF] and this HP
tech report which was the inspiration for much of this work.
Jim's slides are also available
to post comments)