.EXE 파일이란?
EXE라는 단어는 executable의 줄임말입니다. .exe 파일은 Microsoft Windows 운영 체제에서 실행할 수 있는 프로그램입니다. 응용 프로그램 개발자는 대부분 Windows OS용 프로그램을 exe 파일로 실행 가능한 형식으로 게시합니다. Windows에서 응용 프로그램을 실행하기 위한 표준 파일 형식입니다. Setup.exe, Install.exe 및 cmd.exe는 EXE 파일의 일반적이고 잘 알려진 이름입니다.
EXE 파일 형식
MS-DOS 컴파일러는 64K 메모리 제한이 있는 메모리 모델과 함께 도입되었습니다. 일반적인 개념은 x86 CPU(CS, DS, ES, SS)에서 서로 다른 세그먼트 레지스터를 설정하여 서로 다른 또는 동일한 세그먼트를 가리키도록 하여 다양한 수준의 메모리 액세스를 허용하는 것입니다. 일부 특정 메모리 모델은 다음과 같습니다.
- Tiny: 모든 메모리 액세스는 16비트입니다(세그먼트 레지스터는 변경되지 않음). .EXE 파일 대신 .COM 파일을 생성합니다.
- 소형: 모든 메모리 액세스는 16비트입니다(세그먼트 레지스터는 변경되지 않음).
- 컴팩트: 데이터 주소에는 세그먼트와 오프셋이 모두 포함되어 액세스 시 DS 또는 ES 레지스터를 다시 로드하고 최대 1M 데이터를 허용합니다. 코드 액세스는 CS 레지스터를 변경하지 않으므로 64K의 코드를 허용합니다.
- Medium: 코드 주소에는 세그먼트 주소, 액세스 시 CS 재로드 및 최대 1M 코드 허용이 포함됩니다. 데이터 액세스는 DS 및 ES 레지스터를 변경하지 않으므로 64K 데이터를 허용합니다.
- Large: 코드와 데이터 주소는 모두 (세그먼트, 오프셋) 쌍이며 항상 세그먼트 주소를 다시 로드합니다. 전체 1M 바이트 메모리 공간은 코드와 데이터 모두에 사용할 수 있습니다.
- 거대함: 대형 모델과 동일하며 64K보다 큰 배열에 대한 액세스를 허용하기 위해 컴파일러에서 추가 산술을 생성합니다.
개발자는 exe 파일을 생성하는 동안 어떤 모델을 선택해야 하는지 결정해야 합니다.
휴대용 EXE 파일 형식
이식 가능한 실행 파일 형식(PE)에는 많은 정보 헤더가 포함되어 있으며 다음은 헤더 목록입니다.
- DOS 헤더: MS-DOS 헤더는 이전 버전과의 호환성을 보장하거나 새 파일 형식의 정상적인 거부를 보장합니다.
- PE 헤더: DOS 헤더의 시작 부분에서 오프셋 60(0x3C)에 PE 파일 헤더에 대한 포인터가 있습니다.
- COFF 헤더: COFF 헤더에는 실행 파일에 유용한 정보와 오브젝트 파일에 더 유용한 정보가 있습니다.
- PE 선택적 헤더: PE 선택적 헤더는 COFF 헤더 바로 뒤에 발생하며 일부 소스에서는 두 헤더가 동일한 구조의 일부인 것으로 표시하기도 합니다.
- 섹션 테이블: PE 선택적 헤더 바로 뒤에 섹션 테이블이 있습니다. 섹션 테이블은 IMAGE_SECTION_HEADER 구조의 배열로 구성됩니다.
- 매핑 가능한 섹션: 라이브러리 코드를 둘 이상의 프로세스에 매핑하여 메모리 공간을 절약할 수 있습니다.
Mac에서 EXE 파일을 실행할 수 있습니까?
exe 파일은 Mac OS에서 실행 파일로 사용되지 않습니다. 단, Mac OS에서 exe 파일을 실행하고자 하는 경우에는 다음과 같은 방법을 사용할 수 있습니다.
- Wine - Wine은 Mac 시스템에서 PC 애플리케이션을 사용하려는 사람들에게 완벽한 솔루션입니다. “Wine Is Not A Emulator"의 약자입니다. Wine은 Microsoft에서 사용하는 것과 동일한 디렉터리 환경을 생성하므로 이를 사용하여 Windows 응용 프로그램을 실행할 수 있습니다.
- 가상 머신 - Parallel Desktop 또는 VM Virtual Box를 사용하여 Windows 가상 머신을 만들고 가상 머신 내에서 애플리케이션을 실행합니다.
- Boot Camp - Mac OS에 Windows Boot Camp를 설치 및 구성하면 Mac 시스템에서 Windows OS를 실행할 수 있습니다.