GLIB
GLib원저작자 | 숀 아문슨 |
---|---|
개발자 | GNOME 프로젝트 등 |
초기 릴리즈 | 전( |
안정된 릴리스 | 2.72.3[1] / 2022년 6월 ; 전( ) |
저장소 | |
기입처 | C |
운영 체제 | Linux, Unix형, macOS, Windows |
플랫폼 | 크로스 플랫폼 |
유형 | 도서관 |
면허증. | LGPLv2.1 |
웹 사이트 | wiki |
GLib는 C로 작성되어 GNOME을 중심으로 개발된 3개의 Low Level System Library의 번들로 GLIB의 코드는 GTK와 분리되어 GNOME 이외의 소프트웨어에서 사용할 수 있으며 이후 병행 개발되어 왔습니다.
특징들
GLib는 메모리 청크와 같은 고급 데이터 구조, 이중 및 단일 링크 리스트, 해시 테이블, 동적 문자열 및 문자열 유틸리티(예: 어휘 스캐너, 문자열 그룹), 동적 배열, 균형 잡힌 이진 트리, N-ary 트리, 쿼크(문자열과 고유한 정수 식별자 쌍방향 연결), 키 지정 데이터 목록을 제공합니다.ts, 관계 및 튜플입니다.캐시는 메모리 관리를 제공합니다.
GLib는 스레드, 스레드 프로그래밍 및 원시 변수 액세스, 뮤텍스, 비동기 큐, 안전한 메모리 풀, 메시지 전달 및 로깅, 후크 함수(콜백 등록) 및 타이머와 같은 관련 기능을 제공하는 기능을 구현합니다.또한 GLib에는 바이트 순서 변환 및 I/O 채널과 같은 메시지 전달 기능이 포함되어 있습니다.
GLib의 기타 기능은 다음과 같습니다.
구성 요소들
GLib 패키지는 5개의 라이브러리로 구성되었지만, 그 이후 모두 하나의 라이브러리로 병합되어 단순히 GLib로 명명되었으며, 더 이상 독립 실행형 라이브러리로 유지되지 않습니다.원래의 라이브러리는 다음과 같습니다.
이 중 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 포터블 스레드화, 네트워크 및 데이터 구조 구현을 제공합니다.
레퍼런스
- ^ "Release glib 2.72.3".
- ^ 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!
- ^ "Setting up an application for D-Bus Launching".
- ^ "GNotification".