Gnome -- это проект по разработке свободного программного обеспечения (или программного обеспечения в открытых текстах), начатый в 1997 году Miguel de Icaza из Мексиканского Автономного Национального Университета и небольшой командой программистов по всему миру. Вдохновленный успехом аналогичного проекта -- K Desktop Environment (KDE), растущей популярностью операционной системы GNU/Linux, и мощью графического пакета разработчика Gtk+, Gnome рос быстро -- за год сотни программистов были привлечены к проекту и были написаны тысячи строк кода. Gnome стал мощной основой для разработки приложений с графическим интерфейсом, и работает на любой современной разновидности UNIX.
Gnome на самом деле сокращение от GNU Network Object Model Environment (Среда сетевых объектных моделей GNU). Первоначально проект задумывался для создания основы для приложений-объектов аналогично технологиям Microsoft OLE и COM. Однако, область применения проекта быстро расширялась; стало ясно, что требовался прочный фундамент перед тем как сетевые объекты стали реальностью. Последние версии Gnome для разработчиков содержат архитектуру встраивания объектов под названием Bonobo, и Gnome 1.0 включает в себя быстрый и легковесный CORBA 2.2 ORB, называемый ORBit.
Gnome -- это часть проекта GNU, общей целью которого является разработка свободной операционной системы (названной GNU) и приложений для нее. GNU расшифровывается как GNU's Not UNIX (GNU -- это не UNIX), шутливый способ сказать, что операционная система GNU совместима с UNIX. Вы можете больше узнать о GNU на http://www.gnu.org.
Gnome имеет две важных ипостаси. С точки зрения пользователя это интегрированная среда рабочего стола и набор приложений. С точки зрения программиста это среда для разработки приложений (созданная из большого количества библиотек). Приложения, написанные с использование библиотек Gnome превосходно работают даже если пользователь не работает со средой рабочего стола, но они хорошо интегрируются в десктоп Gnome, если он доступен.
Среда рабочего стола включает в себя менеджер файлов, панель для переключения между задачами, запуска программ и встраиваемых апплетов, центр управления для конфигурирования, и несколько более мелких полезных мелочей. Эти программы прячут традиционную для UNIX оболочку за легко используемым графическим интерфейсом.
Среда разработки Gnome делает возможным написание согласованных, легко используемых, хорошо взаимодействующих приложений. Дизайнеры X Window System сделали обдуманное решение не навязывать какую-либо стратегию пользовательского интерфейса. Gnome добавляет слой этой стратегии, создавая законченный интерфейс. Законченные приложения Gnome хорошо работают с десктопом Gnome, но могут использоваться и отдельно от него -- пользователям необходимо лишь установить разделяемые библиотеки Gnome. Возможно также написание приложений Gnome, которые не полагаются на X Window System; вы можете, например, написать неграфический CORBA-сервис.
Эта книга о Gnome с точки зрения разработчика; она описывает как писать приложения Gnome, используя библиотеки и инструменты Gnome.