본문 바로가기

Computer science (이동 완료)/linux

[linux] libc와 glibc의 차이

컴퓨터 프로그램은 기본적인 기능을 수행하기 위해 운영체제와 상호 작용해야 합니다. 예를 들어, 파일을 읽거나 쓰고, 메모리를 할당하거나 해제해야 합니다. 이런 작업을 수행하기 위한 인터페이스들이 있는데요. 이런 기본적인 인터페이스를 제공하는 게 glibc입니다. 리눅스에서 glibc는 GNU 프로젝트의 C 라이브러리를 나타냅니다. GNU 프로젝트는 1983년에 시작된 공개 소프트웨어 프로젝트로 현재 리눅스 배포판에는 대부분 glibc가 포함되어 있습니다.

GLIBC

glibc는 C와 C++ 프로그램이 운영체제와 상호작용할 수 있도록 시스템 호출, 기본 데이터 구조, 알고리즘, 스레드 지원, 수학 함수, 입력/출력 등과 같은 기본 런타임 기능을 제공합니다. 때문에 대부분의 리눅스 배포판은 기본 C 라이브러리로 glibc를 사용한다고 보셔도 됩니다. 예를 들어 libc, libnsl, libcrypt, libnss 등 주요 라이브러리가 glibc에 포함됩니다.

 

 

 

libc는  "표준 C 라이브러리"를 말하는 대 명사이고 

glibc는 GNU에서 만든 libc 입니다.

 

libc의 종류

1. glibc

    - pathname : /lib/libc.so.6

    - 상세 설명 : 1992 이후로 linux에서 가장 많이 사용되는 libc

2. linux libc

    - pathname : libc.so.5

    - 상세 설명 : 1990년에 glibc의 대신 잠깐 나왔다 사라진 libc

3. other C libraries

    - uClibc : 경량화 libc

    - dietlibc : 경량화 libc

    - musl libc : 경량화 libc (container 에서 사용됨)

 

glibc란?

https://www.gnu.org/software/libc/libc.html

GNU C library 프로젝트는 GNU 시스템과 GNU/Linux 시스템, 그리고 Linux를 커널로 사용하는 다른 많은 시스템을 위한 핵심 library를 제공합니다. 

 

이 library는 ISO C11, POSIX.1-2008, BSD, OS별 API 등을 포함한 중요한 API를 제공합니다.

 

이러한 API에는 open, read, write, malloc, printf, getaddrinfo, dlopen, pthread_create, crypt, login, exit 등과 같은 기본 기능이 포함됩니다

 

glibc의 역활 

GNU C library는 C 또는 C++ 언어로 작성된 프로그램에서 직접 사용하는 많은 저수준 구성 요소를 제공합니다. 많은 프로그래밍 언어는 C#, Java, Perl, Python 및 Ruby를 포함하여 간접적으로 GNU C 라이브러리를 사용합니다(해당 언어에 대한 인터프리터, VM 또는 컴파일된 코드는 glibc를 직접 사용함).

 

 

 

 

출처 : https://doitnow-man.tistory.com/entry/linux-libc%EC%99%80-glibc%EC%9D%98-%EC%B0%A8%EC%9D%B4

 

[linux] libc와 glibc의 차이

개요 libc가 뭐고 glibc가 무엇인지 알아 봅니다. 결론 libc는 "표준 C 라이브러리"를 말하는 대 명사이고 glibc는 GNU에서 만든 libc 입니다. 그래서 https://man7.org/linux/man-pages/man7/libc.7.html 에서 보면 libc

doitnow-man.tistory.com

https://change-words.tistory.com/entry/Linux-GLIBC-Package

 

리눅스 GLIBC 패키지란? 호환성 문제에 대해

컴퓨터 프로그램은 기본적인 기능을 수행하기 위해 운영체제와 상호 작용해야 합니다. 예를 들어, 파일을 읽거나 쓰고, 메모리를 할당하거나 해제해야 합니다. 이런 작업을 수행하기 위한 인터

change-words.tistory.com

 

'Computer science (이동 완료) > linux' 카테고리의 다른 글

gcc 란  (0) 2023.08.30
Linux 버전 별 glibc, glibc2  (0) 2023.08.29
NFS 란  (0) 2023.08.25
[ubuntu] apt의 이해  (0) 2023.08.01
리눅스 확장자별 압축 zip, tar, gz(gzip) 차이 및 사용법  (0) 2023.07.27