June 3, 2009
This article was contributed by Bruce Byfield
When Google
Chrome was released for Windows on September 2, 2008, it attracted
instant attention. With increased speed, security, and stability, Chrome
seemed every bit the modern rethinking of the web browser that Google
proclaimed it. But despite the fact that Chrome is an open source project
with different portions of it released under a variety of free licenses,
the GNU/Linux version is still in early development. However, the recent
availability of regular builds in Ubuntu
packages promises to make casual experimentation with Chrome much easier,
and revived the original interest. Unfortunately, the current state of the
GNU/Linux version seems unlikely to satisfy the level of interest, as the
development team continues to struggle with unexpected challenges.
Asked how many people were part of Chromium, the Google team that is
building Chrome, and how many were working on the GNU/Linux version
specifically, Mike Smith, Product Manager for Google Chrome, declined to
give numbers. "We don't go into details about the number of Google
employees on any particular product," he explained. However, an
unofficial list
of those working on Chrome in September 2008 included 42 names, 3 of whom
had Linux listed as an area of expertise. This number, which has probably
changed in the last nine months, is supplemented by several developers with
experience in writing cross-platform applications, including Firefox
alumnae Darin Fisher, Pam Greene, and Ben Goodger, Chrome's technical
lead. In addition, the Chromium tasks in the
2009 Summer of Code include nine possible GNU/Linux-related improvements
that students might undertake.
Another reason that the numbers are fuzzy, Smith pointed out, is that
Chromium works closely with other Google teams, including Gears, a plug-in that enhances both
online and offline performance of web applications; Native Client, whose goal
is to allow traditional applications to run as web applications; and O3D, which seeks to add 3-D
capabilities to web applications. When such considerations are taken into
account, it seems that, while the Windows version seems to have highest
priority, since it was released first, the GNU/Linux one is still far from
being neglected.
The challenges of designing for GNU/Linux
So far as possible, the code for the GNU/Linux, Mac, and Windows versions
of Chrome "share as much as is possible — not only in terms of
core aspects share with other source projects, such as with the Webkit
team, but also from UI [User Interface] design choices and other
implementation aspects of the technology," Smith said. However, as
the Ars Technica highlighted in a review
of a pre-alpha release, the sheer variety of options under GNU/Linux can
often prove a challenge.
For example, Smith mentions the difficulties of implementing sandboxing
— the running of applications in restricted environments as a
security precaution:
On Windows, getting
a process sandboxed in a way that's useful to us is pretty complicated
— the relevant source code consists of over 100 files and is located
under the sandbox directory in Chromium's Open Source repository. But on
Linux there are a number of different sandboxing mechanisms
available. Different Linux distributions ship with different (or no)
sandboxing APIs, and finding a mechanism that is guaranteed to work on
end-user's machines is a challenge.
The issues include whether to
use ftrace or a modified
version of Seccomp to
intercept system calls for sandboxing, and whether system call interception
is necessarily the best mechanism for sandboxing.
Other challenges in GNU/Linux include the lack of a standard developer's
toolkit, the variety of software available for the same purpose, and the
limitations of the GTK+ toolkit. In the Ars Technica review, the
frustrations with these limits were attributed to Goodger alone. But if you
look at the original
discussion thread, working around the conditions in GNU/Linux are a
challenge for all the Chromium developers. At the very least, the team felt
the need for common standards to simplify their work.
Goodger explained:
Google Chrome's visual style was designed with
the assumption that the window manager is a stable target. On Windows and
Mac, we have used this assumption to allow the tabs to blend seamlessly
into the window title bar, creating Google Chrome's distinctive skyline. We
also use the dominant system theme (the blue Luna theme on Windows XP, Aero
Glass on Windows Vista, and the standard grey appearance on OS x) to inform
the general appearance.
Building an application with these objectives in mind is much more
challenging on Linux because of the lack of general consensus as to what
the default user interface toolkit, theme system, and window managers
are. Because of how extensively the system can be customized and how
frequently this is actually done by a large number of Linux users, many of
the assumptions that drove the design of Chrome's UI are more challenging
to apply. That said, the Linux team has some clever ideas for how they may
be able to support the best of both worlds, and so I look forward to these
being implemented.
At least part of the time, the solutions that emerged were a compromise or
stopgap measure. For example, despite the team's reservations about the
ability of GTK+ to produce an interface comparable to those on Windows or
OSX, Smith says that "In the end, we decided that GTK+ gave the best
compromise in terms of being able to deliver a quick, clean user experience
that was clearly still Google Chrome."
In much the same way, Smith described the release of nightly builds for
Ubuntu as being due to the fact "that we have to start
somewhere,"
even though the plans are to support "multiple popular distributions." He
added that, "Being open source means we're happy to have volunteers provide
support for other, potentially less popular or more specific distros that
we may not get around to for a while."
Looking ahead
The Chromium team declined to give an exact road map for the GNU/Linux
version. However, Smith did say that "We hope to release a version of
Google Chrome for Linux on the developer channel very soon." Those
who are interested in tracking Chrome's progress can track it on the developer
site.
Still to come are an extensions
platform intended to give Chrome the rich ecosystem of development
enjoyed by Firefox. Smith also suggested that Chrome's ability to quickly
render JavaScript should make it ideal for the recently announced Google Wave, an online collaboration and
communication system. "We certainly expect Wave to work best in
modern browser environments which have good support for open web
standards," Smith said.
Meanwhile those wanting to investigate Google Chrome on their own can download
packages from Ubuntu's Launchpad site, which include packages for the last
three Ubuntu releases as well as the upcoming Karmic Koala
release. However, if you do, be warned that, at this stage of development,
there is no guarantee that you will actually be able to run Chrome. On
three separate machines with several different builds and packages, I was
able to install the browser, but received only an "Illegal instruction"
message when attempting to run it.
Such failures are not surprising in software in such an early stage of
development. No doubt, too, the particular hardware and builds figure
heavily in them. All the same, they suggest that the Google could be
hard-pressed to deliver on its promise
of a GNU/Linux release in the first half of this year. At the most, an
early beta might be ready by that deadline.
Meanwhile, users can keep trying the Ubuntu packages. They might also try
compiling the source
code, or downloading Crossover
Chromium, which runs under the WINE code. The only other alternative is
to wait for the still-indefinite final release.
(
Log in to post comments)