DLL을 막연하게 그냥 동적 링크 라이브러리라고 알고만 있으니
공부하다보니 지식의 부재를 느껴버렸다.
그냥 아예 정리를 하고 넘어가겠음
윈도우를 쓰다보면 'OOOO.dll' 요런 형태의 파일들을 많이 볼 수 있다.
무심코 윈도우를 쓰는 사람이라면 알 필요도 없다.
피자를 먹으러 피자헛에 가서 "지금 나온 피자에는 어떤 영양 성분으로 구성되어있고
어떻게 만들었는지" 등을 궁금해하지 않고 또한 알필요 없는 것 처럼.
동적 링크 라이브러리, DLL 은 이름에서 나와있듯이 라이브러리 파일이다.
C언어 공부를 했다면 라이브러리가 대충 무엇인지 알것이다.
다른 프로그램에서 사용하는 함수를 모아둔 것이다.
DLL은 일반 라이브러리 파일(OOO.lib) 들과는 다소 차이가 있다.
얘네들은 그냥 소스 컴파일시에 생성되는 오브젝트 파일(OOO.obj)을 모아두고
필요에 따라 함수를 실행 파일에 결합하는 형식이다.
이런 방식을 "정적 링크" 라고 말한다.
이에 반해 DLL은 이름에서 부터 동적링크라고 하였다.
동적 링크는
정적 링크처럼 실행 파일을 생성할 때 결합시키는 형태가 아니라 프로그램이 실행될 때
메모리에 소스코드와 DLL파일을 함께 올려서 상황에 따라 다르게 주소를 호출하는 방식이다.
실행 파일과 연관된 파일이 아닌 독립된 하나의 파일이다. 마음대로 메모리 올렸다 내렸다 해도 됨.
그리고 DLL파일에 있는 코드들은 재활용(?)이 가능하다.
필요시에 메모리에 올리니까,
실행파일을 생성할 때마다 라이브러리를 포함시켜야 하는 정적 링크보다 훨씬 효율적이고
디스크 낭비도 줄일 수 있다는 강점이 있다.
또한 독립적인 파일이므로 업데이트도 손쉬움.
다 윈도우에서 많이 쓰이는 이유가 있음.
이러한 이유들로..
윈도우 시스템 공부한 포스팅에서 보면 대부분의 윈도우 시스템들이 DLL파일로 구성된 것을 볼 수 있다.
그만큼 이 DLL파일이 중요하다.
자세한 DLL파일 동작에 대한 내용은 공부하다가 관련 내용이 나오면 자세하게 다루겠음.
'IT 그리고 정보보안 > Knowledge base' 카테고리의 다른 글
PE File Format - 2 (0) | 2021.04.18 |
---|---|
PE File Format - 1 (0) | 2021.04.18 |
윈도우 XP 은폐 계정 생성 (0) | 2021.04.18 |
윈도우 계정 및 패스워드 관리 (0) | 2021.04.18 |
윈도우 핵심 프로세스와 서비스 (0) | 2021.04.18 |