라이브러리
: 프로그램에서 특정한 기능을 하는 루틴을 모아놓은 것으로
불필요하게 반복적인 코드를 재사용이 가능한 형태로 작성한 것
: 서브루틴, 함수, 클래스의 형태로 만들어짐
: 프로그램과 링크되어 실행 가능한 형태로 만들어지게 됨
: 정적 링크 라이브러리와 동적 링크 라이브러리로 나뉨
- 정적 링크 라이브러리
: 프로그램을 컴파일 할 때 실행 파일에 복사되어 배포 되는 방식
: 속도가 빠르지만 실행파일의 크기가 커지며, 메모리 사용량이 늘어남
- 동적 링크 라이브러리
: 필요할 때 메모리에 적재하여 사용
: 메모리 효율성이 매우 좋음
공유라이브러리
: OS에서 수많은 응용프로그램들이 공유하는 라이브러리
: 주로 동적 링크 라이브러리 형식으로 채택
- 특징
: 의존성
> 동적으로 링크된 프로그램은 적어도 하나 이상의 공유 라이브러리가 필요함
> GNOME 기반 응용 프로그램 실행 시 GTK+가 필요한 이유
: 링크
> 동적으로 링크된 실행 파일은 실행 시 공유 오브젝트에 대한 동적 링커인 ld.so에 의해 검사됨
> ld.so는 실행 파일을 점검하고 의존성 문제를 해결
공유 라이브러리 관련 명령어
- ldconfig
- ldd
ldconfig
: 공유 라이브러리 관련 정보를 갱신하고 설정
: /etc/ld.so.conf 파일의 내용 갱신
- 형식
: ldconfig [option] [library]
- 주요 옵션
: -p
> 현재 캐시에 저장되어 있는 공유 라이브러리 목록 정보를 출력
: -v
> 명령 실행과 관련한 자세한 정보 출력
: -f
> /etc/ld.so.conf 대신 다른 환경설정 파일을 지정
ldd
: 특정 파일이나 프로그램이 의존하고 있는 공유 라이브러리 정보 출력
- 형식
: ldd [option] <file>
- 주요 옵션
: -v (--verbose)
> 관련 라이브러리 정보를 자세히 출력
: -f
> /etc/ld.so.conf 대신 다른 환경설정 파일을 지정
공유 라이브러리 관련 파일 및 디렉터리
- /lib
- /usr/lib
- /etc/ld.so.conf
- /etc/ld.so.cache
/lib & /lib64
: ls, mv 등 기본 명령어 및 시스템과 관련된 라이브러리를 저장
/usr/lib & /usr/lib64
: 사용자가 설치한 응용프로그램과 관련된 라이브러리를 저장
/etc/ld.so.conf
: 특정 디렉터리의 위치를 라이브러리 관련 디렉터리로 등록하기 위한 파일
: 파일을 수정하거나 ldconfig로 갱신
: 파일의 마지막줄에 등록할 디렉터리의 경로 입력
/etc/ld.so.cache
: /lib, /usr/lib 내의 파일 라이브러리 뿐만 아니라 /etc/lib.so.conf에 명시된 디렉터리에서 찾을 수 있는
라이브러리 파일 목록 정보 기재
Refference
'Certification > 리눅스마스터' 카테고리의 다른 글
리눅스 디스크 용량 확장 (0) | 2022.10.10 |
---|---|
리눅스 커널 관리 (0) | 2022.10.10 |
리눅스 파일 압축 (0) | 2022.10.10 |
리눅스 소스 파일 및 패키지 설치 (0) | 2022.10.10 |
리눅스 프로세스 스케줄링 (0) | 2022.10.10 |