ETC

DLL, SO가 무엇인가?

범데이 2022. 3. 28. 00:53
728x90

DLL, SO파일은 라이브러리 파일이다.

 

라이브러리(Library)

소프트웨어 개발에서 자주 쓰고 기초적인 함수들을 중복 개발하는것을 피하기 위해 표준화된 함수 및 데이터 타입을 만들어서 모아 놓은 것이다.

 


DLL(Dynamic-Link Library)

- DLL은 동적 연결 라이브러리로써, 실행 파일에서 해당 라이브러리의 기능을 사용 시에만, 라이브러리 파일을 참조하여 기능을 호출한다.

- 정적 링크(Static-Link Library)와는 다르게 컴파일 시점에 실행 파일에 함수를 복사하지 않고, 함수의 위치정보만 갖고 그 함수를 호출할 수 있게 한다.

- DLL파일의 컴파일 아키텍쳐가 x64인지 x86인지 확인하여야 한다. 아키텍쳐가 다른 프로그램에서 호출할 수 없다.

- Windows 운영체제에서 사용하는 PE(Portable Executable) 파일이다.

 

 

SO(Shared Object)

- SO는 공유 객체로써, 하나 이상의 프로그램에서 리소스를 오프로드하는 데에 사용할 수 있는 정보가 포함되어 있다.

- 리눅스에는 dll이 존재하지 않는다. 대신 SO라는 동적 라이브러리 개념이 있다.

- Linux에서 사용하는 ELF(Executable and Linkable Format) 파일이다.

 

 

DLL과 SO의 차이점

- 프로그램 관점에서 바이너리 형식이 다르다.

- Process 구조의 차이점이 있다.

- DLL은 Windows 운영체제에서, SO는 Linux 운영체제에서 사용된다.

- 따라서 기본적으로는 Windows에서 SO파일을 불러오지 못하고, Linux에서는 DLL파일을 불러오지 못하는 한계가 있다.

 

 

 

 


#References

https://goddaehee.tistory.com/185

 

DLL이란? (Dynamic Link Library)

DLL이란? (Dynamic Link Library) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ DLL "Dynamic Link Libaray" ] 입니다. : ) 라이브러리 (Library) (Dynamic Link Library을 알아보기 전 라이브러리가 무엇인..

goddaehee.tistory.com

https://how2open.com/blog/so-%ED%8C%8C%EC%9D%BC-%EC%A0%95%EB%A6%AC-%EB%B0%8F-%EC%97%AC%EB%8A%94-%EB%B0%A9%EB%B2%95/

 

SO 파일 (정리 및 여는 방법) – How2Open Blog

.SO 파일 확장자를 가진 파일은 공유 라이브러리 파일입니다. 여기에는 하나 이상의 프로그램에서 리소스를 오프로드하는 데 사용할 수있는 정보가 포함되어 있으므로 SO 파일을 호출하는 응용

how2open.com

http://tmmse.xyz/2020/04/22/linuxandwindows/

 

프로그램 실행 관점에서 본 windows 와 linux의 차이

본 포스트는 프로그램의 실행 관점에서 어떻게 windows 와 linux가 다른지에 대해 얘기하고자 한다. 그리고, 다음 포스트에서 그 차이를 어떻게 맞출 수 있는지에 대해 설명하고자 한다. Ubuntu와 같

tmmse.xyz

 

https://hashcode.co.kr/questions/5024/32%EB%B9%84%ED%8A%B8%EB%A1%9C-%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%90%9C-dll%EC%9D%80-%EC%9B%90%EB%9E%98-64%EB%B9%84%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C-%ED%98%B8%EC%B6%9C%ED%95%98%EC%A7%80-%EB%AA%BB%ED%95%A9%EB%8B%88%EA%B9%8C

반응형