Sunday, January 23, 2011

Packaging Linux as an OS

Linux is radically different from proprietary OSes - Windows and OS X. And I don't just mean in terms of philosophy. I mean technically too. Linux has a radical distributed model of development. Various parts of the OS (and here I define OS as the entire stack up to the desktop environment) are created by different teams. They are designed to be independent and swappable (well, mostly). You can use the vanilla kernel or one of the custom kernels for your platform. You can use the ubiquitous X server or swap it with something like Wayland. You can choose from one the many desktop environments - something very unique to Linux.

The entire software stack is always in a flux. Different projects have different release schedules, different compatibilities, different goals, functionality and philosophies. As you can imagine, packaging Linux as an operating system is a nightmare.

The situation becomes especially difficult for application developers. When you are writing an application for Windows or OS X, you just have to make sure it works for the latest few versions of the OS. When you write an application for Linux, what do you write for? What kernel version, what X server version, Gnome or KDE? Which distribution?

This is a major problem for Linux and one of the reasons why commercial application support is so bad on Linux.

Canonical, with it's flagship distro Ubuntu, is trying to solve this problem. They first did by introducing a predictable, stable, six monthly release cycle. Then they tried to convince various communities to practice what Mark Shuttleworth called cadence - predictable release cycles that synchronize with other projects. However, that suggestion didn't go down well with most communities. And now they are doing it by taking more control of Ubuntu by swapping Gnome Shell with Unity and X server with Wayland.

I'm not entirely sure if Canonical taking control of Ubuntu is this way is entirely benign. Of course, they are still open source. But as we've seen in the past with the development of the Ubuntu font or the Ubuntu One service, Ubuntu's development processes aren't always very open or democratic. A whole lot of people feel that this harms the community.

See Also:

No comments:

Post a Comment