Google Chrome OS and the community
Much of the mainstream press sees this move as a frontal assault on Microsoft, and that it may well be. Microsoft appears to have regained the upper hand on the netbook platform for now, but Windows does not come across as a perfect fit for that sort of platform. But it might not just be Microsoft which feels discomfort from this new operating system; it's not clear that this effort will be good for Linux either. Much depends on how Google works with the free software community; past experience suggests that there could be cause for worry.
Those who would criticize Linux like to point at the vast number of distributions available. They charge (rightly) that fragmentation did a lot of damage to proprietary Unix; Linux, they say, is far more fragmented than Unix ever was. In truth, fragmentation has been a relatively small problem for Linux. It is worth spending a moment to look at why.
One of the reasons, clearly, is that all Linux distributions are based on the same kernel. Some distributors apply more patches than others, but it is, for all practical purposes, the same platform underneath. The accelerated development process adopted for 2.6 has helped in this regard; useful code gets into the mainline quickly enough that there is little reason for distributors to patch significant functionality into their own kernels. On top of that, the "upstream first" ethic ensures that enhancements to the kernel are available to all distributors and, thus, to all users.
On top of that, much of the "plumbing layer" on top of the kernel is also common to all distributors. The availability and management of libraries works well enough that it's often possible to move complicated binaries between distributions and expect them to run. That is a high degree of compatibility for a "fragmented" platform. The end result is almost zero lock-in for most Linux users. The ability to move to a different distribution while still running Linux is one of the greatest strengths of the platform; it is a direct manifestation of the value of free software for users. As long as the ability to switch remains such a fundamental feature of Linux, we need not fear fragmentation.
So the real question is: will Google's new operating system play by the rules which have provided such consistency across Linux distributions? The real answer won't be known for some time. But Google Chrome OS will not be Google's first Linux-based operating system; that distinction belongs to Android. So perhaps we can get a foreshadowing of how things will work by looking at what was done with Android:
- The kernel was indeed Linux, but what Android ships is far removed
from a mainline release. A great deal of code was added behind closed
doors and committed to the platform before any sort of public release
or review. Much of it has no real hope of getting into the mainline
kernel ever. Even now, Android kernel code, while being available in
a public git tree, is developed separately from the mainline. With
some small exceptions, nobody from Google is making any real effort to
get Google's code reviewed in the wider community or merged into the
official kernel.
- The plumbing layer is totally different; Google rolled its own C
library for Android. The motivations for this work are not entirely
clear, but it does seem that Google has gone out of its way to avoid
GPL-licensed code, and code owned by the Free Software Foundation in
particular.
- Several of the applications are proprietary.
The end result is that, while Android is based on the Linux kernel, it does not, in its default form, feel much like a Linux system. Ordinary Linux applications do not just run on Android. With effort, one can supplement Android with the features needed to run "normal" Linux; one can even put a full Debian environment onto it. But it's an add-on, not part of the platform itself.
One could argue that Android sits in a special niche: it runs on mobile phones and must, among other things, operate in a way acceptable to handset manufacturers and cellular providers - not always the most accommodating sorts of companies. Google Chrome OS is, instead, aimed at desktop-like applications. It will operate in a niche where ordinary Linux can be found; perhaps, as a result, it will be more like ordinary Linux. Time for a closer look at the announcement:
- Code is to be released "later this year." But this is a project
which has been underway for a while, and which will, undoubtedly,
proceed quickly during this time. So we are not starting with
community-based development; we'll get another code dump some months
from now.
- Google is "
completely redesigning the underlying security architecture of the OS
". How that security model will be enforced is unclear - it could involve kernel changes, or it could be embedded within a virtual machine. Either way, it does not sound like a feature which will enhance compatibility with other Linux distributions. Security is important, and it does not come out well when designed behind closed doors. If Google has a better way to do security on Linux, it should be sharing its ideas and getting community input now; presenting a new security model as a fait accompli months from now will not be helpful. - There will be a new windowing system; no more details than that are available. How new and different will it be? Will Google Chrome OS be able to run X applications?
The picture which emerges looks a lot like Android: a platform which takes a number of pieces from Linux, but which is not like Linux, and which does not really give back to Linux.
Perhaps that picture is wrong. Perhaps Google is secretly working with one or more Linux distributors, or with projects like Moblin or Maemo, which are doing a great job of achieving many of the objectives Google has set for its new operating system. Just maybe, Google is working to strengthen the projects its work is based upon, rather than trying to supplant them. Possibly, when Google says:
it really means to work with the community and not just absorb work from the community. Your editor very much hopes so, but your editor also recognizes that this would require a different approach to the community than Google has shown in the past.
Android is a good thing: it has brought Linux to a new class of platforms
and created a new development community based on free software. The
Android developers have taken the time to rethink how the system works and
to attempt some innovative new approaches; we can never have too much of
that. There can be no doubt that the same will be true of Google Chrome
OS; it will be interesting to see what they come up with. But also can be
no doubt that Google Chrome OS could be a lot better if it were developed
within the community instead of on top of it. Your editor wishes Google
the best of luck with this ambitious project and hopes that the larger
community will truly be able to be a part of it.
