실행 파일
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
실행 파일은 컴퓨터에서 실행 가능한 형태로, 고급 프로그래밍 언어의 소스 코드를 컴파일, 링크하여 생성된다. 실행 파일은 운영체제의 ABI를 준수해야 하며, 런타임 시스템을 포함하여 시스템 콜, 예외 처리, 파일 핸들 관리 등의 기능을 수행한다. 실행 파일 형식에는 PE, ELF, Mach-O 등이 있으며, 각 운영체제 및 플랫폼에 따라 다른 형식을 사용한다.
실행 파일은 기계어로 직접 코딩할 수도 있지만, 사람이 이해하기 쉬운 고급 프로그래밍 언어 소스 코드로 개발되는 것이 일반적이다. 고급 프로그래밍 언어는 실행 가능한 기계 코드 파일 또는 실행할 수 없는 기계 코드 오브젝트 파일 형태로 컴파일된다. 여러 오브젝트 파일들은 링커를 통해 실행 파일을 만들기 위해 링크된다.
실행 파일은 기계어로 직접 코딩할 수도 있지만, 보통 사람이 이해하기 쉬운 고급 프로그래밍 언어 소스 코드로 개발된다. 고급 프로그래밍 언어는 실행 가능한 기계 코드 파일 또는 실행할 수 없는 기계 코드 오브젝트 파일 형태로 컴파일된다. 여러 객체 파일들은 링크되어 실행 파일을 만든다. 이 파일들은 보통 ELF (Executable and Linkable Format) 컨테이너 포맷 내에 위치한다.
2. 실행 파일 생성
어셈블리 언어를 소스 코드로 사용할 수도 있는데, 이는 기계어 명령어와 밀접하게 관련되어 있으면서도 사람이 읽을 수 있다. 어셈블리 언어 소스 코드에 대한 컴파일과 유사한 과정을 '어셈블리'라고 한다.
실행 파일이 시스템에서 실행되려면 시스템의 ABI를 따라야 한다.[4] 대부분 파일을 메모리에 로드하고, 주소 공간의 시작점으로 점프하여 실행되지만, 더 복잡한 실행 파일들은 추가적인 메타데이터(각각의 진입점을 명시하는)를 가지기도 한다.
실행 파일은 보통 런타임 시스템도 포함한다. 런타임 시스템은 런타임 언어 특성(태스크 스케줄링, 예외 처리, 정적 생성자와 소멸자 호출 등)들을 구현하며, 운영 체제와 상호작용한다.
실행 파일은 소스 코드에서 직접 생성된 것 외에 추가적인 기계어를 포함한다. C에서는 런타임을 생략하고, 링커 스크립트(시작과 종료 상태를 커널로 리턴하기 위해 main 함수를 호출하는 것 같이, 엔트리 포인트를 생성하고 시작과 종료를 다루는)를 명시하기도 한다.[6]
같은 소스 코드는 다른 컴퓨터 구조를 위해 컴파일 될 수 있다. 소스 코드의 변화 없이 다른 기계어를 만들고 다른 런타임과 링킹하는 경우도 있고, 소스 코드의 변화가 필요한 경우도 있다. 다른 플랫폼의 소스 코드를 변환하는 것을 이식 (컴퓨팅)이라고 부른다.
2. 1. 소스 코드
실행 파일은 기계어로 직접 코딩할 수도 있지만, 사람이 이해하기 쉬운 고급 프로그래밍 언어 소스 코드로 개발되는 것이 일반적이다. 고급 프로그래밍 언어는 실행 가능한 기계 코드 파일 또는 실행할 수 없는 기계 코드 오브젝트 파일 형태로 컴파일된다. 여러 오브젝트 파일들은 링커를 통해 실행 파일을 만들기 위해 링크된다. 이들은 보통 ELF (Executable and Linkable Format) 컨테이너 포맷 내에 위치한다. 생성된 기계어는 섹션들로 나뉘게 된다.[3]
시스템에 의해 실행되기 위해서, 실행 파일은 시스템의 ABI를 따라야 한다.[4] 대부분 파일은 간단하게 파일을 메모리로 로드하고, 주소 공간의 시작점으로 점프하며, 그곳에서 실행된다. 그러나 더 복잡한 인터페이스를 가진 실행 파일들은 추가적인 메타데이터(각각의 진입점을 명시하는)를 가지고 있다.
실행 파일은 런타임 시스템도 포함한다. 이것은 런타임 언어 특성(태스크 스케줄링, 예외 처리, 정적 생성자와 소멸자 호출 등)들을 구현하며, 특히 매개변수나 환경, 반환값, 파일 핸들 등을 보냄으로써 운영 체제와 상호작용한다.[5]
그래서 실행 파일은 보통 소스 코드에서 직접 명시됨으로써 생성된 것들 이외에 상당한 추가적인 기계어를 포함한다. C에서 이것은 보통의 런타임을 생략하고, 대신에 링커 스크립트(시작과 종료 상태를 커널로 리턴하기 위해 main 함수를 호출하는 것 같이, 엔트리 포인트를 생성하고 시작과 종료를 다루는)를 명시함으로써 완료된다.[6]
같은 소스 코드는 다른 컴퓨터 구조를 위해 실행될 수 있게 컴파일 될 수 있다. 가끔 이것은 소스 코드의 변화 없이 단순히 다른 기계어를 만들고 다른 런타임과 링킹함으로써 가능해진다. 다른 경우에는 소스 코드의 변화가 필요해지는 경우도 있다. 참고로 다른 플랫폼의 소스 코드를 변환하는 것을 이식 (컴퓨팅)이라고 부른다.
2. 2. 컴파일
실행 파일은 사람이 이해하기 쉬운 고급 프로그래밍 언어 소스 코드로 개발되는 것이 일반적이다. 고급 프로그래밍 언어는 실행 가능한 기계 코드 파일 또는 실행할 수 없는 기계 코드 오브젝트 파일 형태로 컴파일된다. 여러 오브젝트 파일들은 링커를 통해 실행 파일을 만들기 위해 링크된다. 이것들은 보통 ELF 같은 컨테이너 포맷 내에 위치하며, 생성된 기계어는 섹션들로 나뉜다.[3]
실행 파일이 시스템에서 실행되려면 시스템의 ABI를 따라야 한다.[4] 대부분 파일은 간단하게 파일을 메모리로 로드하고, 주소 공간의 시작점으로 점프하여 실행된다. 그러나 더 복잡한 인터페이스를 가진 실행 파일들은 추가적인 메타데이터(각각의 진입점을 명시하는)를 가지기도 한다.
실행 파일은 런타임 시스템도 포함한다. 이것은 런타임 언어 특성(태스크 스케줄링, 예외 처리, 정적 생성자와 소멸자 호출 등)들을 구현하며, 특히 매개변수나 환경, 종료 상태, 파일 핸들 등을 주고받으며 운영체제와 상호작용한다.
따라서 실행 파일은 보통 소스 코드에서 직접 명시됨으로써 생성된 것들 이외에 상당한 추가적인 기계어를 포함한다. C에서 이것은 보통의 런타임을 생략하고, 대신에 링커 스크립트(시작과 종료 상태를 커널로 리턴하기 위해 main 함수를 호출하는 것 같이, 엔트리 포인트를 생성하고 시작과 종료를 다루는)를 명시함으로써 완료된다.[6]
같은 소스 코드는 다른 컴퓨터 구조를 위해 실행될 수 있게 컴파일 될 수 있다. 가끔 이것은 소스 코드의 변화 없이 단순히 다른 기계어를 만들고 다른 런타임과 링킹함으로써 가능해진다. 다른 경우에는 소스 코드의 변화가 필요해지는 경우도 있다. 참고로 다른 플랫폼의 소스 코드를 변환하는 것을 이식 (컴퓨팅)이라고 부른다.
2. 3. 링킹
고급 프로그래밍 언어로 작성된 소스 코드는 실행 가능한 기계어 파일이나 실행 불가능한 기계어 오브젝트 파일로 컴파일된다. 여러 개의 오브젝트 파일은 링커를 통해 연결되어 실행 파일을 생성한다. 오브젝트 파일은 실행 가능 여부와 관계없이 일반적으로 실행 가능 및 링크 가능 형식 (ELF) 또는 PE와 같은 컨테이너 형식으로 저장된다. 이는 생성된 기계어에 구조를 제공하며, 예를 들어 .text(실행 코드), .data(초기화된 전역 및 정적 변수), .rodata(상수 및 문자열과 같은 읽기 전용 데이터)와 같은 섹션으로 나뉜다.
실행 파일에는 일반적으로 런타임 시스템도 포함되며, 이는 런타임 언어 기능(예: 태스크 스케줄링, 예외 처리, 정적 생성자 및 소멸자 호출 등)과 운영 체제와의 상호 작용, 특히 인수, 환경 전달 및 종료 상태 반환, 기타 파일 핸들과 같은 리소스를 해제하는 것과 같은 시작 및 종료 기능을 구현한다. C의 경우, 실제 진입점을 포함하고 런타임 라이브러리를 호출하여 설정 및 종료를 수행하는 crt0 오브젝트를 연결하여 수행한다.
따라서 실행 파일은 일반적으로 특정 소스 코드에서 직접 생성된 것 외에 상당한 추가 기계어를 포함한다. 어떤 경우에는 임베디드 시스템 개발이나 컴파일, 연결 및 로딩 작동 방식을 이해하기 위해 이를 생략하는 것이 바람직하다. C에서는 일반적인 런타임을 생략하고 대신 링커 스크립트를 명시적으로 지정하여 이를 수행할 수 있으며, 이는 진입점을 생성하고 시작 및 종료를 처리하여 `main`을 호출하여 시작하고 종료 시 커널에 종료 상태를 반환한다.
고급 프로그래밍 언어는 실행 가능한 기계어 파일 또는 실행 불가능한 오브젝트 파일로 컴파일된다. 어셈블리 언어의 경우 이 과정을 ''어셈블''이라고 부른다. 오브젝트 파일을 몇 개 링크하여 실행 파일을 생성한다. 오브젝트 파일은 실행 가능 여부에 관계없이 일반적으로 ELF 등의 컨테이너 포맷으로 저장되며[3], 생성된 기계어는 .text (실행 코드) 섹션, .data (정적 변수) 섹션, .rodata (정적 상수) 섹션 등으로 분할되어 구조화된다.
운영 체제, 펌웨어, 부트로더 등의 시스템에 의해 실행되려면, 실행 파일은 시스템의 ABI를 따라야 한다[4]. 가장 단순한 형태는 파일을 메모리에 읽어 들여 주소 공간의 처음으로 이동시켜 거기에서 실행하는 것이지만, 더 복잡한 경우에는 실행 파일에 별도의 진입점을 지정하는 추가 메타 데이터가 첨부된다. 예를 들어, ELF에서 진입점은 헤더의 `e_entry` 필드에 저장되어 있으며, 실행을 시작하는 (가상) 메모리 주소를 지정한다. GCC (GNU 컴파일러 모음)에서는 이 필드는 `_start` 심볼에 의해 링커에 의해 지정된다.
실행 파일에는 일반적으로 런타임 시스템도 포함되어 있으며, 런타임 언어 기능 (태스크 스케줄링, 예외 처리 핸들, 정적 생성자 및 소멸자 호출 등)과 특정 운영 체제의 시스템 콜을 호출하고, 인자 및 환경 변수를 전달하고 반환값을 얻는 명령어 집합, 그리고 파일 핸들 등의 리소스를 해제하여 시작/종료 처리를 수행하는 기능이 포함된다. C에서는 실제 진입점을 포함하고 런타임 라이브러리를 호출하여 시작/종료 처리를 수행하는 crt0 오브젝트를 링크함으로써 실현된다.[5]
실행 파일에는 실행에 필요한 환경에 대한 정보, 디버깅 정보, 심볼 정보 등, 소스 코드에서 생성되는 기계어 프로그램 자체에 포함되지 않는 정보도 많이 저장되는 경우가 있다. 경우에 따라, 예를 들어 임베디드 시스템 개발이나 컴파일, 링크, 로더의 동작을 단순히 학습하고 싶은 경우 등, 이를 생략하고 싶은 경우가 있다. C에서는 일반적인 런타임을 생략할 수 있으며, 그 대신 명시적으로 링커 스크립트를 지정하고, 진입점을 생성하여 `main`을 호출하거나 커널에 종료 코드를 반환하는 것과 같은 시작/종료 처리를 수행한다.[6]
2. 4. 어셈블리 언어
실행 파일은 사람이 직접 기계어로 코딩할 수도 있지만, 사람이 이해하기 쉬운 고급 프로그래밍 언어로 소스 코드를 개발하는 것이 훨씬 편리하다. 어떤 경우에는 어셈블리 언어를 소스 코드로 사용할 수도 있는데, 이는 기계어 명령어와 밀접하게 관련되어 있으면서도 사람이 읽을 수 있다.
고급 언어는 실행 가능한 기계어 파일이나 실행 불가능한 기계어, 즉 일종의 오브젝트 파일로 컴파일된다. 어셈블리 언어 소스 코드에 대한 이와 유사한 프로세스를 '어셈블리'라고 한다. 여러 개의 오브젝트 파일이 링커를 통해 연결되어 실행 파일을 생성한다. 오브젝트 파일은 실행 가능 여부와 관계없이 일반적으로 실행 가능 및 링크 가능 형식(ELF) 또는 PE와 같은 컨테이너 형식으로 저장되며, 이는 운영 체제에 따라 다르다. 이는 생성된 기계어에 구조를 제공하며, 예를 들어 .text(실행 코드), .data(초기화된 전역 및 정적 변수), .rodata(상수 및 문자열과 같은 읽기 전용 데이터)와 같은 섹션으로 나뉜다.
3. 실행 파일 구조
실행 파일이 시스템에서 실행되려면, 시스템의 ABI를 따라야 한다. 대부분의 경우, 파일은 간단히 메모리에 로드되고 주소 공간의 시작점으로 점프하여 실행된다. 그러나 더 복잡한 인터페이스를 가진 실행 파일들은 엔트리 포인트를 지정하는 추가적인 메타데이터를 포함한다.
동일한 소스 코드는 다른 컴퓨터 구조에서 실행될 수 있도록 컴파일될 수 있다. 때로는 소스 코드 변경 없이 다른 기계어를 생성하고 다른 런타임과 링킹하는 것만으로 가능하다. 다른 경우에는 소스 코드 변경이 필요할 수도 있다. 다른 플랫폼으로 소스 코드를 변환하는 것을 이식 (컴퓨팅)이라고 한다.
3. 1. 코드 섹션 (.text)
오브젝트 파일은 일반적으로 실행 가능 및 링크 가능 형식(ELF) 또는 PE와 같은 컨테이너 형식으로 저장되며, 이는 운영 체제에 따라 다르다. 이는 생성된 기계어에 구조를 제공하며, 예를 들어 '''.text(실행 코드)''', .data(초기화된 전역 및 정적 변수), .rodata(상수 및 문자열과 같은 읽기 전용 데이터)와 같은 섹션으로 나뉜다.
3. 2. 데이터 섹션 (.data)
실행 파일은 생성된 기계어에 구조를 제공하기 위해 실행 가능 및 링크 가능 형식(ELF) 또는 PE와 같은 컨테이너 형식으로 저장되며, 운영 체제에 따라 다르다. 이는 .text(실행 코드), .data (초기화된 전역 및 정적 변수), .rodata(상수 및 문자열과 같은 읽기 전용 데이터)와 같은 섹션으로 나뉜다.[3]
3. 3. 읽기 전용 데이터 섹션 (.rodata)
.rodata 섹션은 읽기 전용 데이터를 포함하며, 여기에는 상수 및 문자열과 같은 데이터가 포함된다. 이는 ELF 또는 PE와 같은 컨테이너 형식의 한 부분으로, 생성된 기계어에 구조를 제공한다.
3. 4. 런타임 시스템
실행 파일은 보통 런타임 시스템을 포함한다. 런타임 시스템은 런타임 언어 특성(예외 처리, 정적 생성자와 소멸자 호출 등)을 구현하고, 매개변수, 환경, 종료 상태, 파일 핸들 등을 주고받으며 운영 체제와 상호작용한다.
C에서 런타임 시스템은 보통의 런타임을 생략하고, 대신에 링커 스크립트(시작과 종료 상태를 커널로 리턴하기 위해 main 함수를 호출하는 것 같이, 엔트리 포인트를 생성하고 시작과 종료를 다루는)를 명시함으로써 완료된다.[6]
실행 파일은 일반적으로 특정 소스 코드에서 직접 생성된 것 외에 상당한 추가 기계어를 포함한다.
4. 컴퓨팅 플랫폼과의 상호 작용
실행 파일은 특정 중앙 처리 장치(CPU)를 위한 기계어로 이루어지기 때문에, 다른 종류의 CPU에서는 사용할 수 없다. 같은 종류의 CPU에서는 하위 호환성이 필요하다.
특정 하드웨어(그래픽 카드 등)에 대한 의존성은 실행 파일 안에 코드화될 수 있다. 이는 가능한 이러한 의존성을 제거하고 다양한 하드웨어에서 사용될 수 있도록 하기 위함이다.
일부 운영 체제는 파일 확장자나 메타데이터(유닉스 계열 운영 체제의 "execute" 허가 등)를 통해 실행 파일을 식별한다. 대부분의 운영 체제는 파일이 올바른 실행 파일 형식인지 확인하여, 임의의 비트 시퀀스가 명령으로 잘못 실행되는 것을 방지한다. 현대 운영 체제는 컴퓨터 자원을 제어하며, 각 프로그램이 시스템 호출을 통해 권한이 필요한 자원에 접근하도록 요구한다. 운영 체제마다 고유한 호출 구조를 가지므로, 실행 파일은 일반적으로 특정 운영 체제에 한정된다.
다른 운영 체제에서 동작하게 하는 도구들(예: x86 프로세서용 Win32 호환 라이브러리를 갖춘 와인)은 호환 가능한 응용 프로그램 이진 인터페이스(ABI)를 추가하는 방식을 사용한다.
실행 파일이 시스템(운영 체제, firmware|펌웨어영어, 부트 로더)에서 실행되려면 시스템의 애플리케이션 바이너리 인터페이스(ABI)를 준수해야 한다. 간단한 인터페이스에서는 파일을 메모리에 로드하고 주소 공간의 시작점으로 이동하여 실행한다. 복잡한 인터페이스에서는 실행 파일에 별도의 진입점을 지정하는 추가 메타데이터가 있다. 예를 들어, ELF에서 진입점은 헤더의 `e_entry` 필드에 정의되어 있으며, 실행을 시작할 (가상) 메모리 주소를 지정한다. GNU 컴파일러 모음에서 이 필드는 `_start` 기호를 기반으로 링커에 의해 설정된다.
4. 1. 하드웨어 의존성
실행 파일은 특정한 중앙 처리 장치를 위한 기계어로 이루어진다. 다른 종류의 기계어는 실행 파일에서 사용될 수 없다. 같은 종류 안에서는 하위 호환성이 필요하다.특정한 하드웨어(그래픽 카드 같은)에 대한 몇몇 의존성은 실행 파일 안에 코드화될 수 있다. 이것은 가능한 이러한 의존성을 제거하고 다양한 하드웨어에서 사용되기 위한 방식으로 사용된다.
4. 2. 운영체제 의존성
일부 운영 체제는 파일 확장자로 실행 파일을 구분하거나 메타데이터(유닉스 계열 운영 체제의 "execute" 허가를 만드는 등의 과정을 통해)에 따라 파일을 식별한다. 대부분의 운영 체제는 해당 파일이 올바른 실행 파일 형식인지를 확인하여, 임의의 비트 시퀀스를 명령으로 잘못 실행하는 것을 방지한다. 현대의 운영 체제들은 컴퓨터 자원에 대한 제어권을 가지므로, 각 프로그램이 시스템 호출을 통해 특정 권한이 필요한 자원에 접근하도록 요구한다. 각 운영 체제 계열은 고유한 호출 구조를 가지므로, 실행 파일은 일반적으로 특정 운영 체제에 한정된다.[3]한 운영 체제에서 다른 운영 체제용으로 만들어진 실행 파일이 동작하게 하는 여러 도구들이 있다. 예를 들어 x86 프로세서용 Win32 호환 라이브러리를 갖춘 와인은, 호환 가능한 응용 프로그램 이진 인터페이스(ABI)와 비슷한 방식을 추가하여 이를 수행한다.
실행 파일은 프로세서뿐만 아니라 운영 체제에도 종속적이다.
5. 실행 파일 형식
실행 파일 형식은 실행 파일을 위한 파일 형식으로, 프로그램을 실행 파일로 저장하는 형식이다. 이는 컨테이너 형식의 일종이다.
일정 규격에 따라 프로그램이 파일 내에 배치됨으로써 프로세서・OS가 실행 파일을 로드할 수 있다. 따라서 각 실행 플랫폼은 대응하는 실행 파일 형식을 정하고 있다.
오브젝트 파일도 참고
실행 파일은 기계어로 직접 코딩할 수도 있지만, 사람이 쉽게 이해할 수 있는 고급 프로그래밍 언어로 소스 코드를 개발하는 것이 훨씬 편리하다. 어떤 경우에는 소스 코드를 어셈블리 언어로 지정할 수도 있는데, 이는 기계어 명령어와 밀접하게 연관되어 있으면서도 사람이 읽을 수 있기 때문이다.
5. 1. PE (Portable Executable)
PE (Portable Executable)는 윈도우 운영 체제에서 사용되는 실행 파일 형식이다. .exe, .dll, .ocx, .sys, .scr 등의 확장자를 가진다. PE 포맷은 ELF와 같은 컨테이너 형식의 일종으로, 생성된 기계어에 구조를 제공한다. 예를 들어 .text(실행 코드), .data(초기화된 전역 및 정적 변수), .rodata(상수 및 문자열과 같은 읽기 전용 데이터)와 같은 섹션으로 나뉜다.실행 파일 형식 | 확장자 | 이용 플랫폼 |
---|---|---|
PE | .exe | 윈도우 |
5. 2. ELF (Executable and Linkable Format)
고급 프로그래밍 언어로 작성된 소스 코드는 실행 가능한 기계 코드 파일이나 실행 불가능한 기계 코드 오브젝트 파일로 컴파일된다. 여러 오브젝트 파일들은 링크되어 실행 파일을 생성하며, 이 파일들은 보통 ELF (Executable and Linkable Format) 컨테이너 포맷 내에 위치한다. 생성된 기계어는 섹션들로 나뉜다.실행 파일이 시스템에서 실행되려면 시스템의 ABI를 따라야 한다. 간단한 인터페이스에서는 파일을 메모리에 로드하고 주소 공간의 시작점으로 점프하여 실행한다. 복잡한 인터페이스의 실행 파일들은 추가적인 메타데이터(각각의 엔트리 포인트를 명시하는)를 가진다. 예를 들어, ELF에서 진입점은 헤더의 `e_entry` 필드에 정의되어 실행을 시작할 (가상) 메모리 주소를 지정한다. GNU 컴파일러 모음에서는 이 필드는 `_start` 기호를 기반으로 링커에 의해 설정된다.
실행 파일들은 런타임 시스템을 포함하기도 한다. 런타임 시스템은 런타임 언어 특성(예외 처리, 정적 생성자와 소멸자 호출 등)들을 구현하며, 매개변수나 환경, 종료 상태, 파일 핸들 등을 운영체제와 주고받으며 상호작용한다.
실행 파일들은 소스 코드에서 직접 생성된 것 외에 추가적인 기계어들을 포함한다. C에서는 링커 스크립트(시작과 종료 상태를 커널로 리턴하기 위해 main 함수를 호출하는 것 같이, 엔트리 포인트를 생성하고 시작과 종료를 다루는)를 명시함으로써 런타임을 생략할 수 있다.
'''실행 파일 형식'''은 실행 파일을 위한 파일 형식 즉, 프로그램을 실행 파일로 저장하는 형식이다. 컨테이너 형식의 일종이다.
일정 규격에 따라 프로그램이 파일 내에 배치됨으로써 프로세서・OS가 실행 파일을 로드할 수 있다. 따라서 각 실행 플랫폼은 대응하는 실행 파일 형식을 정하고 있다. 다음은 그 예시이다.
5. 3. Mach-O
Mach-O는 macOS, iOS에서 사용되는 실행 파일 형식이다.5. 4. Dalvik Executable (.dex)
Dalvik Executable은 안드로이드, 구글 크롬 OS에서 이용되는 실행 파일 형식으로, 확장자는.dex
이다.5. 5. COM 파일 (.com)
COM은 도스에서 사용되는 실행 파일 형식이다.5. 6. MZ 실행 파일 (.exe)
MZ (.exe)는 도스, 윈도(일부)에서 사용되는 실행 파일 형식이다.5. 7. 아미가 헝크 (Hunk)
헝크는 아미가 운영 체제에서 사용되는 실행 파일 형식이다.참조
[1]
웹사이트
executable
http://www.merriam-w[...]
Merriam-Webster
2008-07-19
[2]
웹사이트
Machine Instructions
https://www.geeksfor[...]
2019-09-18
[3]
웹사이트
Chapter 4: Object Files
https://refspecs.lin[...]
2019-09-18
[4]
웹사이트
The 101 of ELF files on Linux: Understanding and Analysis - Linux...
https://linux-audit.[...]
2019-09-18
[5]
웹사이트
List of Executable File Extensions
https://www.lifewire[...]
2019-09-18
[6]
웹사이트
Hello from a libc-free world! (Part 1)
https://blogs.oracle[...]
2019-09-18
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com