Jump to content

GNOME

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Robust Physique (talk | contribs) at 22:27, 14 March 2006 (rv inaccuracies). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

This article is about the GNOME project and desktop environment. For other uses of the term, see Gnome (disambiguation).
The GNOME Project
Developer(s)GNOME developers
Stable release
Repository
Operating systemCross-platform
TypeDesktop environment
LicenseGPL and LGPL
Websitewww.gnome.org

The GNOME project is an international effort to create an easy-to-use computer desktop environment built entirely from software considered free by the Free Software Foundation.

A great deal of software is created or hosted under the umbrella of the GNOME project, some of which is collected and released together as The GNOME Desktop. The Desktop is then further combined with other software (such as a kernel) to create a fully functional computer system, such as a Linux distribution or Sun Microsystems' Solaris.

GNOME is the official desktop of the GNU Project and the correct pronunciation of the name is /gəˈnəʊm/. The name was created as an acronym of GNU Network Object Model Environment, but usage of the full expansion is now considered obsolete.

Aims

According to the GNOME website,

"The GNOME project provides two things: The GNOME desktop environment, an intuitive and attractive desktop for end-users, users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop. " [1]

The GNOME project puts heavy emphasis on simplicity, usability and making things "just work". As a consequence of this, two things are given prominence:

  • Accessibility — ensuring the desktop can be used by everyone, regardless of technical skill or physical disability
  • Internationalisation — ensuring the desktop is available in many languages

In addition to providing an easy-to-use desktop for users, the GNOME project also aims to make the development of application software easier by providing many of the services expected in a modern environment and promoting the reuse of code.

Origin

The GNOME project was started in August 1997 by Miguel de Icaza and Federico Mena in response to licensing concerns over software used by KDE, a free software desktop environment that relies on the Qt widget toolkit. At the time, Qt did not use a free software license and members of the GNU project became concerned about the use of such a toolkit for building a free software desktop and applications. Two projects were started: Harmony, to create a Free replacement for the Qt libraries, and the GNOME project to create a new desktop without Qt and built entirely on top of free software.[2]

In November 1998, the Qt toolkit was licensed under the open source Q Public License (QPL), but debate continued about compatibility with the GNU General Public License (GPL). In September 2000, Trolltech made the Linux version of the Qt libraries available under the GPL, in addition to the QPL, thereby removing most of the objections that had fuelled years of licensing debates.[3] The licensing of Qt is still controversial for some because the use of the GPL for a library imposes restrictions on the licensing of code linking to it, such as applications and libraries using the KDE/Qt framework. In particular, in order to develop proprietary software with KDE and Qt, it is necessary to purchase a commercial license from Trolltech.

GNOME 2.13.3 (development version) using the Japanese language, with Tango Desktop Project pre-release icons.

In place of the Qt toolkit, the GTK+ toolkit was chosen as the base of the GNOME desktop. GTK+ uses the GNU Lesser Public License (LGPL), a free software license that allows software linking to it, such as applications written for GNOME, to use a much wider set of licenses, including proprietary software licenses.[4] The GNOME desktop itself is licensed under the LGPL for its libraries, and the GPL for applications that are part of the GNOME project itself.

The GNOME desktop is written in the C programming language. A number of language bindings are available, allowing GNOME applications to be written in a variety of languages, such as C++, Java, Ruby, C#, Python, Perl and many others.

The name "GNOME" was proposed by Elliot Lee, one of the authors of ORBit and the Object Activation Framework (OAF). It refers to the possibilities that people, at the time, thought CORBA would bring to a desktop environment — a Network Object Model. Since that no longer reflects the core vision of the GNOME project, many members of the project advocate dropping the acronym and re-naming "GNOME" to "Gnome".

Organisation

In common with most free software projects, the GNOME project is loosely organised. Discussion occurs on a number of mailing lists that are open to anyone.[5] In August 2000 the GNOME Foundation was set up to deal with administrative tasks, press interest and to act as a contact point for companies interested in developing GNOME software. The foundation, while not directly involved in technical decisions, does coordinate releases and decide which projects will be part of GNOME. According to the foundation's website, the qualifications for membership are,

"Per the GNOME Foundation's charter, any contributor to GNOME is eligible for membership. Although it is difficult to specify a precise definition, a contributor generally must have contributed to a non-trivial improvement of the GNOME Project. Contributions may be code, documentation, translations, maintenance of project-wide resources, or other non-trivial activities which benefit the GNOME Project."[6]

The membership of the foundation elects a board of directors every November, and candidates for the positions must be members themselves.

Platforms

Although originally a Linux desktop, GNOME now runs on most Unix-like systems (*BSD variants, AIX, IRIX, HP-UX), and in particular it has been adopted by Sun Microsystems as the standard desktop for its Solaris platform, replacing the ageing CDE. It is supplied with most modern desktop Linux distributions, and is the default desktop environment for Fedora Core, Red Hat Enterprise Linux and Ubuntu.

GNOME is also available in a number of LiveCD Linux distributions. A LiveCD allows a computer to boot directly from a compact disc (CD) without removal or changes to a pre-existing operating system, such as Microsoft Windows. There are GNOME-based LiveCD Linux distributions such as Gnoppix, Morphix and Ubuntu, and an official GNOME LiveCD is also available for download from the GNOME website.[7]

Sun Microsystems has released a business desktop under the name Java Desktop System — a SUSE Linux/Solaris 10 system base with a GNOME desktop. There is also a port of GNOME to Cygwin, allowing it to run on Microsoft Windows.

GNOME 2.10 screenshot (on Fedora Core 4) showing Rhythmbox (music), GThumb (image manager), gedit (text editor), and the Nautilus file manager.

Architecture

The GNOME desktop is built from a large number of different projects. A few of the major ones are listed below:

The use of GTK+ as the base widget toolkit allows GNOME to benefit from certain features: theming (the ability to change the look of an application); smooth anti-aliased graphics (with later Cairo-based versions of GTK+); and the opportunity to port the application to other platforms such as Windows and Mac OSX (examples of this include The Gimp and Inkscape).

Future developments

There are many sub-projects under the umbrella of the GNOME project, and not all of them are currently included in GNOME releases. Some are considered purely experimental concepts, or for testing ideas that will one day migrate into stable GNOME applications; others are code that is being polished for direct inclusion. Some examples include:

  • GNOME Storage — database filing system for GNOME. Compare with WinFS.
  • Project Topaz[8] — ideas for GNOME version 3.0.
  • Project Soylent[9] — making "people" and their interactions first-class objects within the GNOME framework.
  • Project Ridley — to consolidate several small undermaintained libraries into GTK+, such as libgnome and libgnomeprint.
  • The use of the Mozilla project's XUL on the GNOME desktop

While not specifically a GNOME project, the Tango Desktop Project aims to provide a consistent user experience across different desktop environments. For example, GNOME and KDE applications will be visually much closer to help users moving from one desktop environment to another.

Although GNOME applications can be written in many programming languages, the GNOME desktop itself and the applications that are part of a GNOME release are currently written purely in C. There is considerable discussion over the inclusion of applications written in other, higher level, languages such as C#, Python and Java. Although each of these languages is already used to develop GNOME applications, their use in core GNOME applications would force the inclusion of the respective language's virtual machine with every GNOME installation. This would increase the minimum specification of machine able to run the latest GNOME desktop.

Freedesktop.org and GNOME

Freedesktop.org is a project to assist interoperability and shared technology between the different X Window desktops, such as GNOME, KDE or Xfce. Although it is not a formal standards organisation, Freedesktop.org defines certain basic features of an X Desktop, including drag and drop between applications, window manager specifications, menu layouts, recent files lists, copy and pasting between applications and a shared MIME type database, among other things. Following Freedesktop.org specifications allows GNOME applications to appear more integrated into other desktops (and vice versa), and encourages cooperation as well as competition.

Major GNOME Applications

See List of GNOME applications for a more complete list. Major applications based on GNOME include the following:

Stable releases

Each of the parts making up the GNOME project (see Architecture) has its own version number and release schedule. However, individual module maintainers coordinate their efforts to create a full GNOME stable release on a roughly six-month schedule. The releases listed in the table below are classed as stable. Unstable releases for testers and developers are not listed, nor are bugfix releases for individual modules.

Version Date Information
  August 1997 GNOME development announced
1.0 March 1999 First major GNOME release
1.0.53 October 1999 "October"
1.2 May 2000 "Bongo"
1.4 April 2001 "Tranquility"
2.0 June 2002 Major upgrade based on GTK2. Introduction of the Human Interface Guidelines
2.2 February 2003 Multimedia and file manager improvements
2.4 September 2003 Epiphany, accessibility support
2.6 March 2004 Nautilus changes to a spatial file manager, and a new GTK+ file dialog is introduced. A short-lived fork of GNOME, GoneME is created as a response to the changes in this version.
2.8 September 2004 Improved removable device support, adds Evolution
2.10 March 2005 Lower memory requirements and performance improvements. Adds: new panel applets (modem control, drive mounter and trashcan); and the Totem and Sound Juicer applications
2.12 September 2005 Nautilus improvements; improvements in cut/paste between applications and freedesktop.org integration. Adds: Evince PDF viewer; New default theme: ClearLooks; menu editor; keyring manager and admin tools. Based on GTK+ 2.8 with Cairo support

Source code

GNOME releases are made in the form of source code, which is then compiled and integrated with the rest of the system to produce a functioning computer with an easy to use desktop. Most operating system installations use only stable and tested versions of the GNOME desktop, and provide it in the form of easily installed pre-compiled packages.

Those interested in testing, fixing bugs or adding new features can use the latest source code repository version of GNOME — though development code is not recommended for general use as it contains many untested modifications and experimental changes. The process of downloading the source code, compiling and installing the entire GNOME desktop manually is a laborious and time-consuming process, and a number of build-scripts (such as "jhbuild" or GARNOME[10]) are used to automate it.

Notes and references

  1. ^ About GNOME retrieved on 8 September, 2005
  2. ^ Richard Stallman regarding the origin of GNOME. Retrieved on 9 September, 2005.
  3. ^ Richard Stallman on QPL and GPL covered code, and the Qt license change. Retrieved on 9 September, 2005.
  4. ^ Section 6 of the LGPL v2.1 prohibits linking to software with a license that restricts reverse-engineering and modification of the work for the customer's own use.
  5. ^ GNOME mailing lists rules and FAQs.
  6. ^ Membership of the GNOME foundation retrieved on 8 September, 2005
  7. ^ The official GNOME LiveCD
  8. ^ Project Topaz homepage
  9. ^ Project Soylent homepage
  10. ^ The GARNOME homepage

See also

Official sites

GNOME versions

Third-party sites