Что нового для разработчиков

Платформа разработки GNOME 2.22 обеспечивает стабильную основу для независимых прикладных разработчиков. Лицензионные условия GNOME и её платформы таковы, что для GNOME можно создавать как свободные, так и собственнические программы.

API и ABI библиотек, составляющих платформу GNOME, гарантированно останутся стабильными на всём протяжении серии GNOME 2.x. Для библиотек, составляющих рабочую среду GNOME, таких гарантий нет, однако большинство из них сохраняют совместимость от выпуска к выпуску.

6.1 GVFS и GIO

GVFS — это виртуальная файловая система, работающая в контексте пользователя. Она оснащена поддержкой таких протоколов, как SFTP, FTP, DAV, SMB, ObexFTP. GVFS — это замена GNOME-VFS. Отныне GNOME-VFS считается устаревшей, и разработчикам не следует использовать её в новых приложениях.

GVFS состоит из двух частей:

  • GIO — новой библиотеки, входящей в состав GLib и обеспечивающей API для GVFS; и
  • собственно GVFS — нового пакета, содержащего движки для разных видов файловых систем и протоколов, например, SFTP, FTP, DAV, SMB или ObexFTP.

Цель GVFS/GIO — обеспечить современную, лёгкую в использовании виртуальную файловую систему. GVFS/GIO пытается предоставить API, который бы разработчики предпочитали простым вызовам ввода-вывода POSIX. Вместо того, чтобы копировать API ввода-вывода POSIX, новая система обеспечивает высокоуровневый интерфейс, ориентированный на понятие документа. Помимо чтения и записи файлов GIO также даёт возможность следить за изменениями в файлах, производить асинхронный ввод-вывод и искать дополнения имён файлов.

Главный демон GVFS — gvfsd — отслеживает присоединённые в данный момент файловые системы GVFS. Каждая такая система выполняется в отдельном демоне. (Иногда используется общий процесс-демон, но это редкость.) Клиенты общаются с присоединёнными системами, сочетая вызовы D-Bus (на шине сеанса и с помощью peer-to-peer D-Bus) и специальный протокол для содержимого файлов. За счёт исключения движков из процесса уменьшается количество зависимостей у приложений, а система в целом становится более надёжной.

GVFS также обеспечивает точку монтирования FUSE в ~/.gvfs/, так что старые приложения могут пользоваться присоединёнными GVFS файловыми системами через обычные функции ввода-вывода POSIX.

В отличие от GNOME-VFS, соединения в GVFS сохраняют состояние. Это значит, что пользователю нужно вводить пароль только один раз, а не снова и снова для каждого нового соединения.

С переходом на GVFS автоматическое присоединение и автозапуск теперь управляются напрямую файловым менеджером Nautilus, а не модулем gnome-volume-manager.

Документация к API для использования GIO доступна в сети вместе с руководствами по переходу с POSIX-вызовов и GNOME-VFS на GIO.

6.1.1 Ухудшения

Хотя GVFS исправляет многие проблемы, которые ранее возникали при использовании GNOME-VFS, на данный момент есть несколько функциональных ухудшений. Наиболее заметные из них — отсутствие адресов fonts:// и themes://.

Эти проблемы будут исправлены в ближайшем будущем. Также остаются приложения, которые ещё не перенесены на GVFS. Состояние переноса освещается в сети.

6.2 Среда Anjuta

Интегрированная среда разработки (IDE) Anjuta теперь входит в состав GNOME. Anjuta — это среда разработки, тесно взаимодействующая с GNOME, которая обеспечивает много возможностей для разработчиков: встроенный отладчик, встроенный редактор интерфейса Glade, а также интерфейс к Valgrind.

Рисунок 9Список задач в Anjuta.