나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2025-02-14 22:57:02

glibc

<colcolor=#fff><bgcolor=#a32d2a> GNU C Library
파일:GNU head.svg
<colbgcolor=#a32d2a> 종류 C 표준 라이브러리
최초 개발자 롤랜드 맥그래스
개발 GNU
출시 1987년
언어 C
플랫폼 GNU/Linux 커널
안정 버전 v2.41(2025년 1월 30일)
라이선스 LGPL (v2.0 이상)
링크 파일:홈페이지 아이콘.svg Git Wiki
1. 개요2. 기능
2.1. 구현 표준 및 호환 플랫폼2.2. 비표준 확장
3. 파생 소프트웨어
3.1. eglibc
4. 대체재5. 기타6. 관련 문서

[clearfix]

1. 개요

GNULinux 커널 시스템 콜 기반 C 표준 라이브러리 구현체.

자유 소프트웨어 재단에서 완전한 자유 소프트웨어 기반 운영체제를 제작한다는 모토 아래 롤랜드 맥그래스를 주축으로 개발되기 시작하였고, 이후 이 목적에 정확히 들어맞는 GNU/Linux가 GNU 프로젝트로 편입되면서 덩달아 GNU의 주력 프로젝트로 떠올랐다. 현재는 리눅스의 syscall API를 기반으로 멀티프로세싱, 멀티스레딩, 파일 입출력 등 수많은 고수준 API를 제공하는 레이어로 리눅스 생태계의 수많은 배포판과 응용 프로그램들의 종속 라이브러리로 쓰이고 있다.

2. 기능

2.1. 구현 표준 및 호환 플랫폼

2.2. 비표준 확장

위 표준들 외에도 glibc자체적으로 구현된 독자적인 함수들도 있다. glibc 문서나 man page를 보다 보면 'This variable/function is a GNU extension ...' 이라고 쓰인 항목들이 바로 그것. 대부분 유틸리니 함수들이거나 suffix 형태의 보완 확장인 경우가 대부분이라 써도 큰 문제는 없지만, 호환성을 아주 중요하게 생각한한다면 자주 사용하는 것은 피하는 게 좋다.

3. 파생 소프트웨어

3.1. eglibc

#

임베디드 환경 지원을 위한 glibc의 포크로, glibc와 100% 호환되는 것을 목표로 한다.[1][2]

2009년, DebianUbuntu를 포함한 몇몇 데비안 파생 배포판들이 기본 표준 라이브러리를 eglibc로 바꾸기로 결정했다.[3] 다만 eglibc의 코드가 2014년 glibc 2.20 버전에서 병합되었고 결국 데비안도 Jessie 릴리즈부터 다시 glibc로 돌아가며 개발이 중단되었다.

4. 대체재

가장 유명한 대체재로는 musl libc가 있는데, dynamic linking 위주로 활용되는 glibc에 비해 static linking 방식으로 자주 쓰인다. NSS등 무겁고 복잡한 GNU 확장이 이것저것 붙은 glibc에 비해 크기가 작아 주로 경량 배포판이나 컨테이너 용도로 활용된다. Alpine Linuxcoreutils의 대체재인 BusyBox등이 대표적인 예시.

5. 기타

6. 관련 문서


[1] EGLIBC strives to be source- and binary-compatible with GLIBC. In default configuration EGLIBC is fully GLIBC-compatible. #[2] Dangers of compiling with GNU Libc and running on eglibc in Linux?[3] Debian is switching to EGLIBC