2016년 11월 13일 일요일

동적 링크 라이브러리

동적 링크 라이브러리

동적 링크 라이브러리
확장자 .dll
MIME Type application/x-msdownload
UTI com.microsoft.windows- dynamic-link-library
magic number- PE와 같다(옵션내 플래그로 구별)
개발자 마이크로소프트
포함물 공유 라이브러리
템플릿을 표시

동적 링크 라이브러리(Dynamic Link Library: DLL, 동적 링크 라이브러리)는, 소프트웨어의 일종.동적 링크를 사용한 라이브러리.

복수의 프로그램으로부터 공통에 이용할 수 있도록 여러 가지의 기능을 프로그램과는 분리시킨, 쉐어드라이브라리(공유 라이브러리)이기도 한 것이 많다.

개요

예를 들어, 「마우스 커서가 현재, 화면상의 어느 좌표에 있을까를 조사한다」 등이라고 하는 보편성・일반성을 가지는 기능은, 다양한 실행 프로그램(어플리케이션)으로부터 참조될 가능성이 있지만, 그 부분을 모듈화하고, 다양한 프로그램으로부터 사용할 수 있도록(듯이) 하는 것으로 코드의 재이용성을 높여 다중 개발(차바퀴의 재발명)을 막을 수 있다.이러한 경우에, 이 기능을 동적 링크 라이브러리로서 실장해, 어플리케이션 실행 프로그램의 개시시에 동적 링크하고 나서 이용하는 방법이 있다.

프로그램 코드를 재이용하는 구조로서는, 정적 링크 라이브러리를 작성해 정적 링크하는 방법을 들 수 있지만, 동적 링크 라이브러리를 적절히 설계・이용하는 것으로, 소프트웨어의 기능 추가・동작 변경이나 불편 수정등의 때에, 라이브러리의 모듈만을 갈아넣는 것으로 대응할 수 있는 등의 메리트가 존재하는[1].Intel IPP등과 같이, 실행 환경의 프로세서에 맞추어 자동적으로 최적인 코드를 선택・실행하기 위해서 동적 링크 라이브러리를 이용하고 있는 예나, NewTek LightWave등과 같이, 써드파티제의 소프트웨어 부품에 의해서 최종 사용자가 본체 소프트웨어에 나중에 자유롭게 기능 추가할 수 있도록 동적 링크 라이브러리를 플러그 인으로서 이용하는 설계를 행하고 있는 예도 있다.

Windows에 있어서의 동적 링크 라이브러리의 모듈은, 확장자가 「. dll」의 파일이다.ActiveX 컨트롤(COM 컴퍼넌트의 일종)에 관해서는, 관례적으로 「. ocx」라고 하는 확장자를 붙일 수 있기도 하다(그 밖에도, LightWave용 플러그 인 파일에는 관례적으로 「. p」의 확장자를 붙일 수 있지만, Windows판에 있어서의 파일의 내용 자체는 Win32 DLL 그 자체이다).DLL는 본체 소프트웨어 즉 실행 프로그램( 「. exe」확장자를 가지는 모듈)에 의해서 실행시에 로드 된다.Win32 API가 격납된 DLL와 같이 높은 범용성을 가지는 C언어 형식의 함수가 export 된 DLL외, Microsoft Visual C++환경 전용의 MFC 확장 DLL, Microsoft Visual Basic등의 발설어로부터의 이용에도 대응한 COM 컴퍼넌트, 및. NET Framework 환경 전용의 매니지 코드가 격납된 어셈블리 등, 전적으로 DLL라고 해도 그 모듈의 실장 형태나, 모듈을 이용할 수 있는 프로그램에는 차이가 있다.

Unix계 OS로는/usr/lib이나/lib등의 아래에 통상 놓여지는, 확장자가 「. so」[2]의 파일이다.버전에 의한 차이의 흡수를 목적으로 하고, 확장자가 「. so.버전 번호」라고 하는 파일을 실체로서 작성해, 버전 공통명의 「. so」를 그 실체에의 기호 연결로 하는 것이 많다.


라이브러리가 공유(퍼블릭)인 것으로, 다이나믹 링크인 것은 반드시 일치하지 않기 때문에 주의가 필요하다.다이나믹 링크이지만 공유하지 않는(특정의 실행 프로그램으로부터 마셔 사용되는 사적인 모듈)라고 하는 라이브러리도 있을 수 있다.

일반적으로는, 동적 링크 라이브러리에서도, 심볼(함수 심볼)은 실행 프로그램 파일의 생성시(컴파일 후의 링크&빌드 처리시)에 해결한다(아리바인드).이것에 대해, 최종 사용자가 나중에 모듈을 추가할 수 있는 플러그 인등에서는, 실행시에 심볼을 해결하는 것도 있다(지연 로드).많은 처리계로는 실장상 양자는 같은 것이지만[요점 출전], 예를 들면 Darwin로는 명확하게 구별되고 있다.

각주

  1. ^ DLL의 이점- MSDN
  2. ^「so」는 「Shared Object」의 약어.

관련 항목

This article is taken from the Japanese Wikipedia 동적 링크 라이브러리

This article is distributed by cc-by-sa or GFDL license in accordance with the provisions of Wikipedia.

Wikipedia and Tranpedia does not guarantee the accuracy of this document. See our disclaimer for more information.

In addition, Tranpedia is simply not responsible for any show is only by translating the writings of foreign licenses that are compatible with CC-BY-SA license information.

0 개의 댓글:

댓글 쓰기