GLIB

GLib
GLIB
원저작자숀 아문슨
개발자GNOME 프로젝트 등
초기 릴리즈1998년; 24년 전(1998년)
안정된 릴리스
2.72.3[1] / 2022년 6월 30일; 39일 전(2022년 6월 30일)
저장소
기입처C
운영 체제Linux, Unix형, macOS, Windows
플랫폼크로스 플랫폼
유형도서관
면허증.LGPLv2.1
웹 사이트wiki.gnome.org/Projects/GLib
GTK. Pango, GDK, ATK, GIO, 카이로 및 GLib의 심플한 소프트웨어 아키텍처.

GLibC로 작성되어 GNOME을 중심으로 개발된 3개의 Low Level System Library의 번들로 GLIB의 코드는 GTK와 분리되어 GNOME 이외의 소프트웨어에서 사용할 수 있으며 이후 병행 개발되어 왔습니다.

특징들

GLib는 메모리 청크와 같은 고급 데이터 구조, 이중 및 단일 링크 리스트, 해시 테이블, 동적 문자열 및 문자열 유틸리티(: 어휘 스캐너, 문자열 그룹), 동적 배열, 균형 잡힌 이진 트리, N-ary 트리, 쿼크(문자열과 고유한 정수 식별자 쌍방향 연결), 키 지정 데이터 목록을 제공합니다.ts, 관계 및 튜플입니다.캐시는 메모리 관리를 제공합니다.

GLib는 스레드, 스레드 프로그래밍 및 원시 변수 액세스, 뮤텍스, 비동기 , 안전한 메모리 풀, 메시지 전달 및 로깅, 후크 함수(콜백 등록) 및 타이머와 같은 관련 기능을 제공하는 기능을 구현합니다.또한 GLib에는 바이트 순서 변환 및 I/O 채널과 같은 메시지 전달 기능이 포함되어 있습니다.

GLib의 기타 기능은 다음과 같습니다.

구성 요소들

GLib 패키지는 5개의 라이브러리로 구성되었지만, 그 이후 모두 하나의 라이브러리로 병합되어 단순히 GLib로 명명되었으며, 더 이상 독립 실행형 라이브러리로 유지되지 않습니다.원래의 라이브러리는 다음과 같습니다.

  • GObject, 유형 시스템 GType을 포함하는 객체 시스템
  • GLIB
  • GM 스케줄
  • GThread
  • GIO

이 중 3개는 소스 트리의 개별 서브 디렉토리에 계속 존재하기 때문에 개별 컴포넌트인 GLIB, GObject 및 GIO로 간주할 수 있습니다.이것들은 소프트웨어 스택이라고 생각할 수 있습니다.GObject는 GLib에 의존하며 GIO는 두 가지 기능을 모두 사용하는 상위 수준의 기능을 제공합니다.

역사

GLib는 GTK+ 프로젝트의 일환으로 시작되었으며, 현재는 GTK로 명명되었습니다.그러나 GTK+ 버전 2를 출시하기 전에 프로젝트 개발자들은 GTK+에서 그래픽 사용자 인터페이스(GUI)가 아닌 코드를 분리하기로 결정하였고, 이에 따라 GLib를 별도의 소프트웨어 번들로 만들었습니다.GLib는 별도의 라이브러리로 출시되었기 때문에 GTK+의 GUI 관련 부분을 사용하지 않는 다른 개발자는 GUI 라이브러리의 오버헤드 없이 라이브러리의 GUI 이외의 부분을 사용할 수 있습니다.

GLib는 크로스 플랫폼 라이브러리이기 때문에 운영 체제와 인터페이스하기 위해 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 GVariant, GConverted
2.26 2010-09-27 GStettings, GDbus, GObject 속성 바인딩(리카운팅용 GAtomic)
2.30 2011-09-26 고유하지 않은 GApplication, 사용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년 9월 출시)을 사용하여 시작된 애플리케이션
2.40 2014-03-24 GNotification, 시스템 알림[4] API
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

유사한 프로젝트

다른 라이브러리는 다음과 같은 하위 수준의 기능과 데이터 구조 구현을 제공합니다.

  • 표준 템플릿 라이브러리(STL)– 데이터 구조 및 알고리즘용 C++ 라이브러리
  • Boost – GLib가 C에 대해 수행하는 것과 유사한 C++의 일부 기능을 제공합니다.
  • QtCore – Qt 프레임워크의 핵심 API
  • wxBase – wxWidgets 라이브러리의 GUI 이외의 기능
  • Apache Portable Runtime 및 Apple Core Foundation은 GLib와 기능 오버랩이 크고, C에서 유사한 OS 포터블 스레드화, 네트워크 및 데이터 구조 구현을 제공합니다.

레퍼런스

  1. ^ "Release glib 2.72.3".
  2. ^ Krause, Andrew (2007). Foundations of GTK+ Development. Expert's Voice in Open Source. Apress. p. 5. ISBN 978-1-59059-793-4. Retrieved 3 April 2013. [GLib] provides a cross-platform interface that allows your code to be run on any of its supported operating systems with little to no rewriting of code!
  3. ^ "Setting up an application for D-Bus Launching".
  4. ^ "GNotification".

외부 링크