
C 라이브러리(C Libraries)
리눅스 어플리케이션이 커널과 대화하기 위한 표준 통역사 (glibc)
1. 정의 및 역할
- 정체: 리눅스 시스템의 표준 C 라이브러리 (GNU libc =
glibc).
- 위치: 어플리케이션(User)과 커널(Kernel) 사이의 중간 계층.
- 목표: 커널의 복잡한 내부 동작을 고수준 API로 추상화하여 개발 편의성 제공.
2. glibc의 3대 핵심 기능
① System Call Wrapper (래퍼)
- 기능: 복잡한 어셈블리 명령(
int 0x80, syscall)이나 레지스터 설정을 대신 처리.
- 효과: 개발자는 하드웨어 아키텍처를 몰라도
open(), write() 같은 표준 함수만 호출하면 됨.
② 표준 C 라이브러리 구현 (ISO C)
- 기능: 문자열 처리(
strcpy), 입출력(printf), 메모리 할당(malloc) 등.
- 효과: C언어 표준 규격을 준수하여 코드의 이식성 보장.
③ 인프라 지원 (Infrastructure)
- 스레딩: POSIX 스레드(
pthread) 지원.
- 런타임: 프로그램 시작(
_start)과 종료, 동적 링킹 등 기본 실행 환경 제공.
- 전형적인 시스템 프로그래밍 모델