Fixing Linux: What's Broken And What To Do About It
The open-source operating system still has major problems that need immediate attention. Our expert recommends configuration, versioning, and GUI enhancements, to name a few.
Graphical User Interface
With the kernel, there's little if any doubt about who's in charge: Linus and the kernel developers. With the Linux desktop -- maybe better to say free and open source software, or FOSS, desktop -- it's far more anarchic.
Before I go any further, let me define my terms. "Desktop" doesn't just refer to "whatever GUI conveniences make Linux/FOSS easier for non-technical users," but rather a graphical user interface that makes using and managing the system all the easier no matter what your level of technical expertise.
This is not a matter of integrating the GUI completely with the system; no one is foolish enough to advocate that. Part of the problem is that kernel and desktop development in Linux took place in a highly parallelized fashion, and it was a one-way street to boot. There was no guarantee the kernel developers would implement features useful to desktop developers, but desktop devs had to hew to whatever happened in the kernel if it affected them.
To that end, what's needed is a single steering committee for all GUIs that work on Linux, so that whatever GUIs are created -- be they GNOME, KDE, or not-yet-invented -- will have a consistency of implementation on the backend, and make it possible to have tight integration of features with the kernel, a la BeOS. The kernel would publish a generic series of hooks that a GUI could make use of, and the GUI would be free to represent them to the user in any number of ways.
Another important thing Linux needs is clearer guidelines for how to implement default behaviors on the desktop, which requires people with UI design experience to make decisions that have lasting weight. This isn't about "dumbing down" the UI: what's often needed is not simpler controls, but better default handling of those controls so that the user does not have to make endless adjustments to achieve something comfortable.
Integration Of X11 With Apps
Most people who have used Linux for some time have probably encountered this problem: an X11 application, or the whole of X11 itself, freezes, and the only way to get things back is to kill and restart X11. The good news: it isn't hard to do that. The bad news: killing X11 means every other X11 application, problematic or not, dies along with it.
What would be useful is the option to have applications running under X killed along with it, so that if X needs to be killed and restarted, you don't wind up losing your entire user session. Failing this, it would also be useful to have a window-manager API that allows for the easy storing and resuming of a session in the event of a crash -- something that does happen on an app-by-app basis (Firefox, for instance, does this), but which would be useful to have available in a global implementation.