Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Упрощенная программная архитектура GTK . Панго , GDK , ATK , GIO , Cairo и GLib.

GLib - это набор из трех (ранее пяти) низкоуровневых системных библиотек, написанных на C и разработанных в основном GNOME . Код GLib был отделен от GTK , поэтому его можно использовать в программном обеспечении, отличном от GNOME, и с тех пор он разрабатывался параллельно.

Особенности [ править ]

GLib предоставляет расширенные структуры данных, такие как блоки памяти, двусвязные и односвязные списки , хеш-таблицы , динамические строки и строковые утилиты, такие как лексический сканер, строковые блоки (группы строк), динамические массивы , сбалансированные двоичные деревья , N-арное деревья , кварки (двусторонняя ассоциация строки и уникального целочисленного идентификатора), списки данных с ключами, отношения и кортежи . Кеши обеспечивают управление памятью.

GLib реализует функции, которые обеспечивают потоки , программирование потоков и связанные с ними средства, такие как доступ к примитивным переменным, мьютексы , асинхронные очереди , безопасные пулы памяти , передача сообщений и ведение журнала, функции перехвата (регистрация обратного вызова) и таймеры . GLib также включает средства передачи сообщений, такие как преобразование порядка байтов и каналы ввода-вывода.

Некоторые другие особенности GLib включают:

  • стандартные макросы
  • предупреждения и утверждения
  • динамическая загрузка модулей

Компоненты [ править ]

Пакет GLib состоял из пяти библиотек, но все они были объединены в одну библиотеку, с тех пор называемую просто GLib , и больше не поддерживаются как отдельные библиотеки. Исходные библиотеки были:

  • GObject , объектная система, включающая систему типов GType
  • GLib
  • GModule
  • GThread
  • GIO

Из них три продолжают находиться в разных подкаталогах исходного дерева, и поэтому их можно рассматривать как отдельные компоненты: GLib, GObject и GIO. Их можно рассматривать как программный стек: GObject полагается на GLib, а GIO предоставляет функциональные возможности более высокого уровня, которые используют оба.

История [ править ]

GLib начался как часть проекта GTK + , который теперь называется GTK. Однако перед выпуском GTK + версии 2 разработчики проекта решили отделить от GTK + код, не предназначенный для графических пользовательских интерфейсов (GUI), создав таким образом GLib как отдельный программный пакет. GLib была выпущена как отдельная библиотека, поэтому другие разработчики, не использующие части GTK +, связанные с графическим интерфейсом, могли использовать не связанные с графическим интерфейсом части библиотеки без дополнительных затрат, зависящих от полной библиотеки графического интерфейса.

Поскольку GLib является кроссплатформенной библиотекой, приложения, использующие ее для взаимодействия с операционной системой , обычно переносятся между разными операционными системами без серьезных изменений. [2]

Релизы [ править ]

Текущий обзор см. В Roadmap 2.24–2.36 и 2.38 – current , подробности см. В соответствующих примечаниях к выпуску в списке рассылки или в каталоге tarballs.

Похожие проекты [ править ]

Другие библиотеки предоставляют низкоуровневые функции и реализации структур данных, включая:

  • Стандартная библиотека шаблонов (STL) - библиотека C ++ для структур данных и алгоритмов
  • Boost - предоставляет некоторые функции для C ++, такие как примитивы потоковой передачи, аналогично тому, что GLib делает для C
  • QtCore - основной API Qt Framework
  • wxBase - функции библиотеки wxWidgets без графического интерфейса
  • Apache Portable Runtime и Apple , основной фонд имеют большое функциональное перекрытие с БОЙКИМ, и обеспечивают много подобных ОСА портативным поточные, сетей и структуры данных внедрений в C.

Ссылки [ править ]

  1. ^ Withnall, Филипп (11 февраля 2021). "glib 2.66.7" . GNOME ftp-release (Список рассылки) . Проверено 12 февраля 2021 года .
  2. ^ Краузе, Эндрю (2007). Основы GTK + Development . Голос эксперта в открытом доступе. Апресс . п. 5 . ISBN 978-1-59059-793-4. Проверено 3 апреля 2013 года . [GLib] предоставляет кроссплатформенный интерфейс, который позволяет запускать ваш код в любой из поддерживаемых операционных систем практически без переписывания кода !
  3. ^ «Настройка приложения для запуска D-Bus» .
  4. ^ "GNotification" .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Документация по API GLib
  • Исходное дерево GLib Git