Новини для розробників

Платформа розробки GNOME версії 2.14 є надійною основою, на якій вільні розробники будують власні програми. Умови розповсюдження GNOME дозволяють створювати вільне та комерційне програмне забезпечення на основі GNOME.

Гарантована стабільність інтерфейсу програм (API) та бінарного інтерфейсу (ABI) протягом усього життєвого циклу платформи GNOME 2.x. Бібліотеки робочого середовища не настільки стабільні, але цьому приділяється все більша увага.

3.1. GSlice

Починаючи з GLib 2.10 виділення пам'яті з використанням GSlice прийшло на заміну старому API, що використовував GMemChunk та GTraskStack. За принципом дії GSlice дуже схожа на виділення пам'яті у ядрі за допомогою slab, та дозволяє програмам працювати швидко, ефективно витрачати пам'ять на структури маленького розміру (наприклад елементи GList, структури GtkWindow). GSlice також не витрачає ресурси на запобігання конкурентному доступу, тому працює значно швидше ніж GMemChunk у багатопоточних програмах.

Рисунок 21Швидкодія операції виділення пам'яті для одного мільйону елементів GList у 1 (відмічено червоним), 5 (жовтим), 10 (зеленим) та 20 (синім) потоках.

Реалізацію GMemChunk оновлено, вона тепер використовує GSlice, але API GMemChunk відмічено як застаріле.

Для виділення пам'яті за допомогою GSlice, використовуйте виклик функції g_slice_new (MyStructure);, що повертає вказівник на виділену пам'ять. Для звільнення пам'яті, що виділена GSlice, використовуйте функцію g_slice_free (MyStructure, ptr);.

GSlice використовує кэш областей пам'яті різних розмірів, окремий для кожного потоку. Для великих ділянок пам'яті GSlice буде автоматично використовувати виділення за допомогою g_malloc, тому не вимагаються спеціальні дії для ефективного використання алгоритму виділення пам'яті.

3.2. Реєстрація служб

Останній випуск GNOME дозволяє розробникам реєструвати їх програми для запуску після входу користувача у сеанс. Для цього слід встановити файл опису програми .desktop у $prefix/share/gnome/autostart/, /etc/xdg/autostart/ або ~/.config/autostart/. Якщо треба встановити службу, що зазвичай вимкнена, можна додати властивість у файл опису запис X-GNOME-autostart-enabled = False.

Треба попередити про деякі моменти:

  • Програми, що реєструються іншим способом, наприклад nautilus, gnome-panel, vino не слід реєструвати таким чином.
  • Якщо програми не будуть виконуватись як треба, перевірте, що у рядку запуску вказано параметр --sm-disable.