GNOME
From Wikipedia, the free encyclopedia
GNOME | |
GNOME 2.16 screenshot showing the Nautilus file manager and the gedit text editor on Ubuntu |
|
Developer: | GNOME developers |
---|---|
Latest release: | 2.18 / 14 March 2007 |
OS: | Cross-platform |
Available language(s): | Multilingual (more than 25) |
Use: | Desktop environment |
License: | GNU Lesser General Public License GNU General Public License |
Website: | http://www.gnome.org/ |
The GNOME project is an international effort to create an easy-to-use computing platform built entirely from free software. This goal includes creating tools which help developers write new stand-alone application software, selecting applications for inclusion in the official product, and working on what is known as the desktop environment — the programs which manage application launching, file handling, and window and task management.
A great deal of software is created or hosted under the umbrella of the GNOME project, some of which is collected and released as GNOME. GNOME is used in conjunction with an operating system such as Linux or Sun Microsystems’ Solaris, to create a fully functional computer system.
GNOME is part of the GNU operating system, and is its official desktop environment. The official pronunciation of the name is /gəˈnoʊm/ with a hard “G”, although /noʊm/ (as in the English word “gnome”) is also in common usage.
Contents |
[edit] Aims
According to the GNOME website:[1]
“ | The GNOME project provides two things: The GNOME desktop environment, an intuitive and attractive desktop for users, and the GNOME development platform, an extensive framework for building applications that integrate into the rest of the desktop. | ” |
The GNOME project puts heavy emphasis on simplicity, usability, and making things “just work”. The other aims of the project are:
- Freedom—to create a desktop environment that will always be free of charge, with the source code available for re-use under a Free software license.
- Accessibility—ensuring the desktop can be used by anyone, regardless of technical skill or physical disability.
- Internationalization and localization—making the desktop available in many languages.
- Developer-friendliness—ensuring it is easy to write software that integrates smoothly with the desktop, and allow developers a free choice of programming language.
- Organisation—a regular release cycle and a disciplined community structure.
- Support—ensuring backing from other institutions beyond the GNOME community.
[edit] Multilingual
GNOME is being translated to the following languages
[edit] Origin
GNOME was launched by the GNU project in August 1997 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: the Harmony toolkit, to create a free replacement for the Qt libraries, and GNOME to create a new desktop without Qt and built entirely on top of free software.[2] The initial project leaders for GNOME were Miguel de Icaza and Federico Mena.
In place of the Qt toolkit, GTK+ 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.[3] 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. While Qt is dual-licensed under both the QPL and the GPL, the freedom to link proprietary software with GTK+ at no charge makes it differ from Qt.
The name “GNOME” was proposed as an acronym of GNU Network Object Model Environment by Elliot Lee, one of the authors of ORBit and the Object Activation Framework.[citation needed] It refers to GNOME’s original intention of creating a distributed object framework similar to Microsoft’s OLE.[4] This no longer reflects the core vision of the GNOME project, and the full expansion of the name is now considered obsolete. As such, some members of the project advocate dropping the acronym and re-naming “GNOME” to “Gnome”.[5]
[edit] Project structure
As with most free software projects, the GNOME project is loosely managed. Discussion chiefly occurs on a number of public mailing lists.[6]
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. While not directly involved in technical decisions, the Foundation does coordinate releases and decide which projects will be part of GNOME. Membership is open to anyone who has made a non-trivial contribution to the project.[7] Members of the Foundation elect a board of directors every November, and candidates for the positions must be members themselves.
Developers and users of GNOME gather at an annual meeting known as GUADEC in order to discuss the current state of the project and its future direction.[8]
[edit] Platforms
Originally designed for GNU (or GNU/Linux), GNOME now runs on most Unix-like systems and in particular has been adopted by Sun Microsystems as part of Java Desktop System, replacing the Common Desktop Environment on their Solaris platform. It is the default desktop environment for many modern desktop Linux distributions, including Fedora Core and Ubuntu. A list of Linux distributions that include GNOME is maintained on the GNOME website.[9]
An official GNOME LiveCD, which allows a computer to boot directly from a Compact Disc without removing or changing existing operating systems, is available for download from the GNOME website.[10]
Many GNOME components have been ported to Cygwin, allowing GNOME applications to run on Microsoft Windows.
[edit] Architecture
GNOME is built from a large number of different projects. A few of the major ones are listed below:
- Bonobo – a compound document technology.
- GConf – for storing application settings.
- GNOME VFS – a virtual file system.
- GNOME Keyring – for storing encryption keys and security information.
- GNOME Translation Project – translate documentation and applications into different languages.
- GTK+ – a widget toolkit used for constructing graphical applications. The use of GTK+ as the base widget toolkit allows GNOME to benefit from certain features such as theming (the ability to change the look of an application), smooth anti-aliased graphics. Sub-projects of GTK+ provide object oriented programming support (GObjects), extensive support of international character sets and text layout (Pango) and accessibility (ATK). GTK+ reduces the amount of work required to port GNOME applications to other platforms such as Windows and Mac OS X.
- Human Interface Guidelines (HIG) – research and documentation on building easy-to-use GNOME applications.
- LibXML – an XML library.
- ORBit – a CORBA ORB for software componentry.
A number of language bindings are available allowing applications to be written in a variety of programming languages, such as C++ (gtkmm), Java (Java-GNOME), Ruby (ruby-gnome2), C# (Gtk#), Python (PyGTK), Perl (gtk2-perl) and many others. The only languages currently used in applications that are part of an official GNOME desktop release are C, C# and Python.[11]
[edit] Look and feel
GNOME is designed around the traditional computing desktop metaphor. Its handling of windows, applications and files is similar to that of contemporary desktop operating systems. In its default configuration, the desktop has a launcher menu for quick access to installed programs and file locations; open windows may be accessed by a taskbar along the bottom of the screen and the top-right corner features a notification area for programs to display notices while running in the background. However these features can be moved to almost anywhere the user desires, replaced with other functions or removed altogether.
The appearance of GNOME can be changed by the use of themes, which are sets consisting of an icon set, window manager border and GTK+ theme engine and parameters. Popular GTK+ themes include Bluecurve and Clearlooks (the current default theme).
GNOME puts emphasis on being easy for everyone to use. The HIG helps guide developers in producing applications which look and behave similarly, in order to provide a cohesive GNOME interface.
[edit] Usability
Since GNOME v2.0, a key focus of the project has been usability. As a part of this, a large effort was put into creating the GNOME Human Interface Guidelines (HIG). The HIG is an extensive guide for creating high quality, consistent, usable GUI programs, covering everything from GUI design to recommended pixel-based layout of widgets.
GNOME HIG introduction:[12]
“ | This document tells you how to create applications that look right, behave properly, and fit into the GNOME user interface as a whole. It is written for interface designers, graphic artists and software developers who will be creating software for the GNOME environment. Both specific advice on making effective use of interface elements, and the philosophy and general design principles behind the GNOME interface are covered. | ” |
During the v2.0 rewrite, many settings were deemed to be “crack” settings (of little or no value to the majority of users) and were removed. For instance, the preferences section of the Panel were reduced from a sprawling dialog of six large tabs to a much simpler one with two small tabs. A document which summarized the usability work for v2.0 was Havoc Pennington's 2002 editorial "Free Software UI" [13]. Central to this editorial is the idea that all preferences have a cost, and it's better to unbreak the software than to add a UI preference to "Unbreak the software":
“ | A traditional free software application is configurable so that it has the union of all features anyone's ever seen in any equivalent application on any other historical platform. Or even configurable to be the union of all applications that anyone's ever seen on any historical platform (Emacs *cough*).
Does this hurt anything? Yes it does. It turns out that preferences have a cost. Of course, some preferences also have important benefits - and can be crucial interface features. But each one has a price, and you have to carefully consider its value. Many users and developers don't understand this, and end up with a lot of cost and little value for their preferences dollar. [...] The annoying problem here is that sometimes you have to temporarily cause regressions in order to get things fixed. For GNOME 2 for example, we wanted to fix the window list (task bar) applet; under GNOME 1.4, it has to be manually sized via preferences. We wanted it to Just Work. But it took a while to make it Just Work and we were flamed regularly during its period of brokenness, because we didn't get it quite right. Most of those flames demanded re-adding all the manual sizing preferences. But that would have been wrong. (Now that the applet is mostly working, it may even make sense to add a "maximum size" preference as a useful feature.) |
” |
This design methodology of careful evaluation of all preferences has, however, been widely misunderstood as a belief that the GNOME project views its users as "idiots" or that the GNOME desktop is less featureful than other desktop environments. One such detractor has been Linus Torvalds, the creator of the Linux kernel and the "father" of Linux.[14] This resulted in Torvalds submitting patches for the Metacity window manager to implement the functionality and preferences he felt were missing.[15] The patches were later accepted.[16]
[edit] 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 organization, 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.
Examples of technologies originated at Freedesktop.org which now form part of GNOME’s core technology set include:
- Cairo – a sophisticated 2D graphics library.
- D-Bus – interprocess communication system.
- GStreamer – a multimedia framework.
- HAL – a specification and an implementation of a hardware abstraction layer.
- Poppler – a PDF rendering library.
- Tango Desktop Project – which aims to provide a common visual standard across different platforms.
These initiatives aim to allow users and developers to choose the technologies and applications they like regardless of which desktop environment they use.
[edit] Applications
Along with those applications bundled with the desktop, a large amount of other applications have been developed for use in GNOME. See List of GNOME applications for a more complete list.
The following selection of applications typically supplied as part of a GNOME release:
- Ekiga – a phone and video conferencing application using voice over IP.
- Epiphany – a web browser.
- Evince – a document viewer for PDF and PostScript documents.
- Evolution – an email and groupware application.
- Eye of GNOME – a simple image viewer.
- File Roller – an archive manager.
- gedit – a text editor.
- gnome-dictionary – a DICT protocol client.
- gnome-panel – a desktop panel for launching applications and showing applets.
- GNOME Terminal – a terminal emulator.
- Metacity – a window manager.
- Nautilus – a file manager.
- Sound Juicer – a CD ripping tool.
- Tomboy – a notetaking tool.
- Totem – a media player.
The following is a selection of applications that use technology from the GNOME project and are likely to be used on an average GNOME desktop:
- AbiWord – a word processor.
- Banshee – a music player.
- F-Spot – a digital photo organizer.
- Gaim – an instant messaging client.
- The GIMP – an advanced bitmap graphics editor.
- GnomeBaker – a CD/DVD authoring application.
- Gnumeric – a spreadsheeting program.
- GnuCash – double-entry book-keeping software.
- Inkscape – a vector graphics drawing application.
- Planner – Planner[1] is the GNOME project management tool similar to MSProject
- Rhythmbox – a music-management application similar to iTunes.
[edit] Stable releases
Each of the parts making up the GNOME project 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[17] | GNOME development announced | ||
1.0 | March 1999 [18] | First major GNOME release | |
1.0.53 | October 1999 [19] | "October" | |
1.2 | May 2000 [20] | "Bongo" | |
1.4 | April 2001 [21] | "Tranquility" | |
2.0 | June 2002 [22] | Major upgrade based on GTK2. Introduction of the Human Interface Guidelines. | |
2.2 | February 2003 [23] | Multimedia and file manager improvements. | |
2.4 | September 2003 [24] | Epiphany, accessibility support. | |
2.6 | March 2004 [25] | 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 [26] | Improved removable device support, adds Evolution. | |
2.10 | March 2005 [27] | 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 [28] | 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. | |
2.14 | March 2006 [29] | Performance improvements. Adds: Ekiga video conferencing application; Deskbar search tool; Pessulus lockdown editor; Fast user switching; Sabayon system administration tool. | |
2.16 | September 2006 [30] | Performance improvements. Adds: Tomboy notetaking application; Baobab disk usage analyser; Orca screen reader; improvements to Totem, Nautilus and GNOME Power Manager; compositing support for Metacity; new icon theme. Based on GTK+ 2.10 with new print dialog. | |
2.18 | March 2007 [31] | Performance improvements. Adds: Seahorse GPG security application, allowing encryption of emails and local files; Baobab disk usage analyser improved to support ring chart view; Orca screen reader; improvements to Evince, Epiphany and GNOME Power Manager, Volume control; two new games, GNOME Sudoku and glchess. |
[edit] Source code
GNOME releases are made to the ftp.gnome.org ftp server[32] in the form of source code with configure scripts, which are compiled by operating system vendors and integrated with the rest of their systems before distribution. Most vendors use only stable and tested versions of GNOME, and provide it in the form of easily installed, pre-compiled packages. The source code of every stable and development version of GNOME is stored in the GNOME subversion source code repository.[33]
The process of downloading the source code, compiling and installing the entire GNOME desktop manually is a laborious and time-consuming process{cn}, and a number of build-scripts (such as JHBuild or GARNOME) can be used to automate it.
Those interested in testing, fixing bugs or adding new features can use the latest unstable branch from the GNOME source code tree, known as the “trunk”. Development code contains new modifications and experimental changes to the code which are later “frozen” to allow for the code to be tested and bugs to be corrected.
[edit] 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 the postponed WinFS storage system.
- Project Topaz – ideas for GNOME version 3.0.[34]
- Project Soylent – making “people” and their interactions first-class objects within the GNOME framework.[35]
- 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.[36]
There had been considerable discussion about including software written in C# or Java in GNOME.[37] With GNOME 2.16, Gtk# (the C# bindings for GTK+ and GNOME) and Mono have been added to the list of dependencies, and a C# application, Tomboy, has also been included in that release.[38]
[edit] References
- ^ About GNOME. Retrieved on 2005-09-08.
- ^ Richard Stallman (2000-09-05). Stallman on Qt, the GPL, KDE, and GNOME. Retrieved on 2005-09-09.
- ^ http://www.fsf.org/licensing/licenses/lgpl.html
- ^ Pennington, Havoc (1999). GTK+ / Gnome Application Development. Retrieved on 2006-09-08.
- ^ Desktop Development mailing list. Retrieved on 2006-05-07.
- ^ GNOME mailing lists, rules and FAQs.
- ^ Membership of the GNOME foundation. Retrieved on 2005-09-08.
- ^ About GUADEC.
- ^ Distributions that ship GNOME as their Default Desktop.
- ^ The official GNOME LiveCD.
- ^ GNOME desktop-devel mailing list.
- ^ GNOME Human Interface Guidelines. Retrieved on 2006-10-05.
- ^ Havoc Pennington's 2002 editorial "Free Software UI". Retrieved on 2007-03-08.
- ^ Linus Torvalds criticizes GNOME on Usenet at Open Source Development Labs.
- ^ Linus fires latest shot in GNOME Wars.
- ^ http://bugzilla.gnome.org/show_bug.cgi?id=408903#c18
- ^ de Icaza, Miguel. The story of the GNOME project.
- ^ GNOME press release for version 1.0
- ^ GNOME press release for version 1.0.53
- ^ GNOME press release for version 1.2
- ^ GNOME press release for version 1.4
- ^ GNOME press release for version 2.0
- ^ GNOME press release for version 2.2
- ^ GNOME mailing list post announcing the release of version 2.4
- ^ GNOME mailing list post announcing the release of version 2.6
- ^ GNOME press release for version 2.8
- ^ GNOME press release for version 2.10
- ^ GNOME press release for version 2.12
- ^ GNOME press release for version 2.14
- ^ GNOME mailing list post announcing the release of version 2.16
- ^ GNOME mailing list post announcing the release of version 2.186
- ^ GNOME stable release ftp server.
- ^ Information about the GNOME source code repository.
- ^ Project Topaz homepage.
- ^ Project Soylent homepage.
- ^ Mozilla, Gnome mull united front against Longhorn. News.com. Retrieved on 2006-04-20.
- ^ Pennington, Havoc (2004-03-16). Java, Mono, or C++?. Retrieved on 2006-09-05.
- ^ Vincent Untz, Quim Gil, SegPhault, John Williams, Brent Smith (2006-09-06). GNOME 2.16 Release Notes. Retrieved on 2006-09-07.
[edit] See also
- GnomeFiles – a software repository
- Linux Documentation Project
- Comparison of X Window System desktop environments
- Gnome Speech speech system for gnome
[edit] External links
- The GNOME website
- FootNotes – a news site and discussion forum
- GNOME Journal – an online magazine devoted to the GNOME Desktop
People: Miguel de Icaza • Federico Mena • Havoc Pennington • other people |
History: GNU Manifesto • GNU Project • Free Software Foundation (FSF)
GNU licenses: GNU General Public License (GPL) • GNU Lesser General Public License (LGPL) • GNU Free Documentation License (FDL)
Software: GNU operating system • bash • GNU Compiler Collection • Emacs • GNU C Library • Coreutils • GNU build system • other GNU packages and programs
Speakers: Robert J. Chassell • Loïc Dachary • Ricardo Galli • Georg C. F. Greve • Federico Heinz • Bradley M. Kuhn • Eben Moglen • Richard Stallman • Len Tower