재배치 가능한 개체 모듈 형식

Relocatable Object Module Format
재배치 가능한 개체 모듈 형식
파일 이름 확장자
.obj
개발자도구 인터페이스 표준 위원회
포맷의 종류오브젝트 파일

재배치 가능한 오브젝트 모듈 포맷(OMF)은 주로 인텔 80x86 마이크로프로세서에서 동작하는 소프트웨어에 사용되는 오브젝트 파일 포맷입니다.버전 4.0은 1981년 인텔에 의해 오브젝트 모듈 [1]포맷이라는 이름으로 출시되었으며, DOS 사용자에게는 로 가장 잘 알려져 있습니다.OBJ 파일이후인터페이스 표준 위원회[2]의해 표준화되었습니다.

파일 형식

많은 객체 파일 형식은 재배치 테이블과 같은 테이블 세트로 구성됩니다.이 테이블은 파일의 고정 위치에 저장되거나 ELF 형식과 같은 헤더로 지정됩니다."섹션", 코드, 데이터 영역 등은 이러한 파일 내에서 바이트의 연속된 영역으로 저장됩니다.

그러나 재배치 가능한 오브젝트 모듈 포맷은 링크 시 최소한의 메모리만 요구하도록 설계되었으며 다음과 같은 형식의 일련의 레코드로 구성됩니다.

크기 내용물
1 바이트 레코드 유형(예: 재배치 정보)
2바이트 데이터 길이(N+1)
N바이트 수 데이터(레코드 유형에 따라 다름)
1 바이트 체크섬 또는 0

여러 벤더의 OMF 배리언트 통합 및 32비트코드나 다이내믹링크 등의 기능이 추가되어 레코드 타입이 다양합니다.다음은 중요한 레코드 유형입니다.

  • COMENT - (88h) 코멘트. 제어 정보를 포함할 수도 있습니다.
  • EXTDEF - (8Ch) 외부 참조 정의
  • PUBDEF - (90h/91h) 이 모듈에서 외부 기호를 식별합니다.
  • SEGDEF - (98h/99h) 세그먼트를 식별합니다.
  • GRPDEF - (9Ah) 세그먼트 그룹을 식별합니다(예: MS-DOS).DGROUP
  • FIXUP - (9Ch/9Dh) 픽스업 또는 재배치 레코드
  • LEDATA - (A0h/A1h) 코드 또는 데이터 섹션 텍스트 포함
  • COMDEF - (B0h) 초기화되지 않은 공통 데이터
  • COMDAT - (C2h/C3h) 초기화된 공통 데이터
  • MODEND - (8Ah/8Bh) 모듈의 끝을 나타냅니다.

파일에는 심볼 테이블로의 포인터 등 파일오프셋을 포함하는 헤더는 없습니다.링커는 모든 정보를 추출하기 위해 오브젝트파일을 완전히 해석해야 합니다.

OMF 형식에서는 한 섹션의 데이터가 파일에 연속된 바이트로 저장될 필요는 없으며 여러 레코드로 나타낼 수 있습니다.파일 형식 사양(버전 1.1)에서는 1KiB보다 큰 섹션에 대해 이 작업을 수행해야 한다고 명시되어 있습니다.재배치 정보(픽스업)를 포함한 레코드는 해당 섹션의 데이터 레코드 바로 뒤에 저장해야 하며, 따라서 섹션 데이터와 재배치 정보가 파일에 "혼재"됩니다.

파일 형식은 개체 파일에서 반복 데이터 시퀀스를 압축할 수 있는 특수 레코드(LIDATA)를 제공합니다.또한 이후 실행 파일의 진입점 기호 이름을 하나의 개체 파일에 저장할 수도 있습니다.

파일 형식은 라이브러리 파일 형식으로도 사용할 수 있습니다.

사용하다

파일 형식은 DOS, 16비트 Windows 및 16비트 및 32비트 OS/2에서 가장 중요한 개체 파일 형식입니다.

32비트 버전의 OMF 형식을 사용하는 툴체인은 거의 없습니다.예를 들어 Watcom C 툴체인을 사용하면 32비트 세그먼트메모리 레이아웃을 사용하는 타깃용 코드를 생성할 수 있습니다.Iron Spring PL/I는 OS/2 32비트 플랫메모리 레이아웃용 코드를 생성할 수 있습니다.

엠바카데로 델파이 컴파일러는 다음을 생성할 때 이 형식을 사용했습니다.objC++용 파일입니다.64비트 윈도 타깃과 함께 COFF 포맷 지원을 도입한 델파이 XE2 버전 이전에 오브젝트 파스칼로 작성된 프로그램이나 유닛에 링크할 수 있는 유일한 오브젝트 파일 형식이었다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "8086 Relocatable Object Module Formats". Version 4.0. Intel. 1981. Product Number 121748-001. ark:/13960/t07w7pz4b. Retrieved 2020-02-08. (104 페이지)
  2. ^ "Tool Interface Standards (TIS) Relocatable Object Module Format (OMF) Specification" (PDF). Version 1.1. TIS Committee / UNIX International, Inc. May 1995 [1992]. Archived (PDF) from the original on 2020-02-07. Retrieved 2020-02-07. (87페이지)

추가 정보