OLS: A challenge for developers
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 applications.
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
[PDF]]
| Index entries for this article | |
|---|---|
| Conference | Linux Symposium/2005 |
