Jump to content

GLib

GLib
Оригинальный автор(ы) Шон Амундсон
Разработчик(и) Проект GNOME и др.
Первоначальный выпуск 1998 год ; 26 лет назад ( 1998 )
Стабильная версия
2.81.0 [1]  Отредактируйте это в Викиданных / 28 июня 2024 г .; 25 дней назад ( 28 июня 2024 г. )
Репозиторий
Написано в С
Операционная система Linux , Unix-подобные , macOS , Windows
Платформа Кросс-платформенный
Тип Библиотека
Лицензия LGPLv2.1
Веб-сайт www .gtk .org
Упрощенная программная архитектура GTK , Pango , GDK , ATK , GIO , Cairo и GLib.

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

Название «GLib» происходит от начала проекта как служебной библиотеки GTK C.

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

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

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

Компоненты

[ редактировать ]

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

  • GObject — объектная система, включающая систему типов GType.
  • GLib
  • GМодуль
  • GThread
  • ГИО

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

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

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

Glib находится в стадии активной разработки. Текущий обзор см. https://gitlab.gnome.org/GNOME/glib/-/blob/main/NEWS . В таблице ниже приведены основные примечания к обновлениям с 1998 по 2022 год.

Серия релизов Исходный
Дата выпуска
Основные улучшения
GLib 1.x
1.1 1998-09-12
1.2 1999-02-27
1.3 2001-09-25
GLib 2.x
2.0 2002-03-08
2.24 2010-03-26 GВариант, GКонвертированный
2.26 2010-09-27 GSettings , GDbus, привязки свойств GObject (GAtomic для подсчета ссылок)
2.30 2011-09-26 Неуникальные GApplications, используйте eventfd() для пробуждения основного цикла, оптимизации набора GHashTable, масштабируемости данных GObject
2.32 2012-03-24 Планы на GLib 2.32
2.34 2012-09-23 Что нового для разработчиков в GLib 2.34
2.36 2013-03-25
2.38 2013-09-23 приложения, запускаемые с использованием D-Bus активации [3] GSubprocess, Unicode 6.3 (выпущен в сентябре 2013 г.)
2.40 2014-03-24 GNotification, API системных уведомлений [4]
2.42 2014-09-22
2.43 2014-10-27
2.44 2015-03-23
2.45 2015-04-30
2.46 2015-09-21
2.47 2015-10-26
2.48 2016-03-22
2.50 2016-09-19
2.52 2017-03-19
2.53 2017-04-25
2.54 2018-01-08
2.55 2018-02-06
2.56 2018-03-12
2.57 2018-05-05
2.58 2018-08-30
2.59 2018-12-23
2.60 2019-03-04
2.61 2019-04-15
2.62 2019-09-05
2.63 2019-10-04
2.64 2020-02-27
2.65 2020-06-18
2.66 2020-09-10
2.67 2020-10-23
2.68 2021-03-18
2.69 2021-07-06
2.70 2021-09-17
2.71 2021-12-16
2.72 2022-03-17

Похожие проекты

[ редактировать ]

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

  1. ^ «2.81.0 · GNOME/GLib · GitLab» . Проверено 28 июня 2024 г.
  2. ^ Краузе, Эндрю (2007). Основы разработки GTK+ . Голос эксперта в открытом исходном коде. Апресс . п. 5 . ISBN  978-1-59059-793-4 . Проверено 3 апреля 2013 г. [GLib] предоставляет кросс-платформенный интерфейс, который позволяет запускать ваш код в любой из поддерживаемых операционных систем практически без переписывания кода !
  3. ^ «Настройка приложения для запуска D-Bus» .
  4. ^ «Уведомление» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 755ce6fed936153dfd3ad7b818d9adb6__1716321300
URL1:https://arc.ask3.ru/arc/aa/75/b6/755ce6fed936153dfd3ad7b818d9adb6.html
Заголовок, (Title) документа по адресу, URL1:
GLib - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)