Gnome is a free (or “open source” ) software development project started in 1997 by Miguel de Icaza of the Mexican Autonomous National University and a small team of programmers from around the world. Inspired by the success of the similar K Desktop Environment (KDE) project, the burgeoning popularity of the GNU/Linux operating system, and and the power of the GTK+ graphical toolkit, Gnome grew quickly — within a year, hundreds of programmers were involved and many thou- sands of lines of code had been written. Gnome has become a powerful framework for GUI application development which runs on any modern variety of UNIX.
“Gnome” is actually an acronym: GNU Network Object Model Environment. Originally, the project was intended to create a framework for application objects, similar to Microsoft’s OLE and COM technologies. However, the scope of the project rapidly expanded; it became clear that substantial groundwork was required before the “net- work object” part of the name could become reality. The latest development versions of Gnome include an object embedding architecture called Bonobo, and Gnome 1.0 included a fast, light CORBA 2.2 ORB called ORBit.
Gnome is a part of the GNU Project, whose overall goal is developing a free oper- ating system (named GNU) plus applications to go with it. GNU stands for “GNU’s Not UNIX”, a humorous way of saying that the GNU operating system is UNIX- compatible. You can learn more about GNU at http://www.gnu.org.
Gnome has two important faces. From the user ’s perspective, it is an integrated desk- top environment and application suite. From the programmer ’s perspective, it is an application development framework (made up of numerous useful libraries). Appli- cations written with the Gnome libraries run fine even if the user isn’t running the desktop environment, but they integrate nicely with the Gnome desktop if it’s avail- able.
The desktop environment includes a file manager, a “panel” for task switching, launch- ing programs, and docking applets, a “control center” for configuration, and several smaller bells and whistles. These programs hide the traditional UNIX shell behind an easy-to-use graphical interface.
Gnome’s development framework makes it possible to write consistent, easy-to-use, interoperable applications. The X Window System designers made a deliberate de- cision not to impose any user interface policy on developers; Gnome adds a “policy layer,” creating a consistent look-and-feel. Finished Gnome applications work well with the Gnome desktop, but can also be used “standalone” — users only need to in- stall Gnome’s shared libraries. It’s even possible to write Gnome applications which do not rely on the X Window System; you might want to provide a non-graphical CORBA service, for example.
This tutorials is about Gnome from a developer ’s point of view; it describes how to write a Gnome application using the Gnome libraries and tools.