아미가 흥크

Amiga Hunk
헝크
개발자코모도어 인터내셔널
포맷의 종류아미가 실행 가능한

Hunk는 Motorola 68000 CPU 및 같은 패밀리의 다른 프로세서를 기반으로 하는 Amiga 운영 체제의 도구 및 프로그램의 실행 파일 형식입니다.이러한 종류의 실행 파일은 Amiga에 프로그래밍된 소프트웨어가 내부 구조에서 Hunks라고 불리는 많은 부분으로 나뉘어져 있고, 모든 부분에 코드 또는 데이터가 포함될 수 있다는 사실에서 유래되었습니다.

헝크 구조

Amiga 실행 파일의 hunk는 다양한 유형으로 존재할 수 있습니다.32비트 훈크, 16비트 훈크, 8비트 훈크도 있습니다.

훈크 유형은 AmigaOS에서 표준화되었으며 Amiga에서 잘 문서화되어 있습니다.Commodore가 Amiga 컴퓨터를 제조하던 시절 프로그래머에게 Amiga에서의 코드 작성 방법을 설명하기 위해 Commodore가 편집한 DOS 매뉴얼.그 구조는 공식적으로 성문화되었고 Commodore 위원회에서만 변경될 수 있었다. Commodore 위원회는 Amiga 운영 체제의 새로운 릴리스에 대한 수정 사항을 개발자에게 전달했다.

Amiga hunk의 구조는 매우 단순합니다.hunk의 선두에는 이러한 종류의 "코드 포트"가 이미 알려진 유효한 Amiga hunk 유형임을 나타내는 헤더가 있으며, 다음으로 hunk 자체의 길이를 나타내는 ID가 뒤따릅니다.하단에는 실제 코드 또는 데이터를 포함하는 hunk 세그먼트가 있습니다.

Amiga 실행 파일의 기능

Amiga 실행 파일은 Amiga의 그래픽 셸, Workbench 또는 Amiga의 명령줄 인터프리터(CLI, 이후 AmigaShell)에서 실행할 수 있습니다.

Amiga 실행 파일에는 특정 파일 확장자가 필요하지 않습니다.예를 들어 계산기 애플릿 "Calculator"의 이름을 "Calculator.com", "Calculator.exe", "Calculator.bin" 또는 "Calculator.jpeg"로 변경할 수 있습니다.Amiga는 프로그램 또는 도구의 유효한 이름입니다.OS 에서는, 파일명의 확장자를 구별하지 않습니다.

AmigaOS는 유효한 실행 파일을 처리하고 있음을 인식하기 위해 다른 방법을 채택했습니다.파일 헤더에는 특정 바이트 시퀀스가 있으며 16진수 값 $000003f3이 생성됩니다.실행 가능한 파일을 나타내며 자동으로 실행되도록 하는 이 시퀀스는 매직 쿠키라고 불립니다([citation needed]Lewis Carroll이 쓴 이상한 나라의 앨리스의 모험에 나오는 마법 쿠키).

Amiga에서 실행 파일을 식별하는 이러한 종류의 솔루션은 UNIX/Unix와 유사한 운영 체제에서 채택된 유사한 솔루션에서 따온 것입니다. 여기서 매직 쿠키는 매직 넘버라고 불립니다.

Amiga 실행 파일 구조

Amiga 실행 파일의 내부 구조는 매우 단순합니다.파일의 선두에는 매직쿠키가 있고, 그 다음에 실행 파일의 훈의 총수가 선언되며, 그 직후에는 훈의 누진수가 "0"(제로)로 시작됩니다.

첫 번째 hunk에는 항상 0의 번호가 매겨지기 때문에 (예를 들어) 실행 파일이 세 개의 hunk로 세분되어 있는 경우 첫 번째 hunk에는 "0", 두 번째 hunk에는 "1", 세 번째 hunk에는 "2" 등의 번호가 매겨집니다.

실제 훈크 시작 직전에는 실행 파일에 존재하는 훈크 길이에 대한 정보를 포함하는 테이블이 있으며 파일의 마지막 부분에는 각각 유형 이름 HUNK_CODE, HUNK_DATA, et cetera로 설명되는 실제 훈크 길이가 배치됩니다.

구조 표현:

매직 쿠키 훈크 총수 훈크 수의 누진 길이의 표 다양한 Hunks(Hunk_Code, Hunk_Data 등)

행크 타입

Amiga에 대해 알려진 hunk 유형은 다음과 같습니다.

이름. 값(10진수) 값(16진수)
HUNK_UNIT 999 3E7
HUNK_NAME 1000 3E8
HUNK_CODE 1001 3E9
HUNK_DATA 1002 3EA
HUNK_BSS 1003 3EB
HUNK_RELOC32 1004 3EC
HUNK_RELOC16 1005 3ED
HUNK_RLOC8 1006 3EE
HUNK_EXT 1007 3EF
HUNK_SYMBOL 1008 3층
HUNK_DEBUG 1009 3F1
HUNK_END 1010 3F2
HUNK_HEADER 1011 3층
HUNK_Overlay 1013 3층 5층
HUNK_BREAK 1014 3층 6호
HUNK_DREL32 1015 3F7
HUNK_DREL16 1016 3F8
HUNK_DREL8 1017 3F9
HUNK_LIB 1018 3FA
HUNK_INDEX 1019 3FB
HUNK_RELOC32 쇼트 1020 3FC
HUNK_RELELOC32 1021 3층
HUNK_ABSRLOC16 1022 3FE
HUNK_PPC_CODE* 1257 4E9
HUNK_RELELOC26 * 1260 4EC

* 확장 Hunk 형식

메타데이터

Hunk 구조가 이 기능을 지원하기 위해 쉽게 적응할 수 있었기 때문에 Amiga는 메타데이터를 Hunk에 저장할 수 있었지만 실행 파일의 Hunk 형식은 ELF를 위해 포기되었고 이 기능을 Amiga 표준 중 하나로 구현할 수 있는 중앙 기관(해임된 Commodore)이 없습니다.

Amiga는 일부 메타데이터를 ".info"로 알려진 사이드카 파일(확장자 서픽스의 이름에서 호출됨)에 저장합니다.

".info" 파일은 프로젝트(데이터 파일)가 디스크에 저장될 때마다 생성됩니다.예:사용자가 "My Project"라는 파일을 저장하면 "My Project"라는 디스크와 MyProject.info라는 두 개의 파일이 생성됩니다.

"My Project" 파일에는 프로젝트 파일의 실제 데이터가 포함되어 있는 반면 "MyProject.info" 파일에는 아이콘과 파일을 생성한 소프트웨어에 대한 정보가 포함되어 있기 때문에 마우스로 클릭하면 프로젝트 아이콘이 호출될 때마다 상위 소프트웨어가 열립니다(사용자는 언제든지 이 정보를 변경할 수 있습니다).프로젝트 파일을 물리적으로 만든 원래 소프트웨어가 아니라 자신이 프로젝트 파일을 만들었다고 믿게 하는 프로그램입니다).

Application Binding이 Amiga에 없습니다.OS는 MacOS와 같은 다른 시스템과 동일합니다.

".info" 파일에는 프로젝트 파일과 사용자 코멘트의 몇 가지 특성도 포함되어 있습니다.

".info" 파일은 Workbench 화면에 표시되지 않습니다(Workbench는 기본 Amiga Desktop GUI입니다).데스크톱 화면에는 "info" 파일에서 꺼낸 프로젝트 파일의 아이콘만 나타납니다.실제로 아이콘은 프로젝트 자체와 ".info"에 저장된 메타데이터를 연결하는 가상 매체입니다.

사용자가 마우스 왼쪽 버튼으로 아이콘을 클릭하면 프로젝트 ".info"가 해당 아이콘을 생성한 프로그램을 호출합니다.오른쪽 버튼으로 아이콘을 클릭하면 대화상자가 나타나 ".info" 파일에 포함된 메타데이터와 상호 작용할 수 있습니다.

.info 파일은 마우스를 사용하여 관련 프로젝트 파일과 함께 복사 또는 이동되며 AmigaShell 등의 Amiga 명령줄 인터페이스를 통해 독립 실행형 파일로 보거나 Directory Opus 또는 DiskMaster와 같은 서드파티 파일 관리자 또는 디렉토리 라이브러리를 사용하여 볼 수 있습니다.

".info" 파일이 실행 가능한 프로그램을 나타내는 경우, ".info" 파일에는 실행 파일(예를 들어 4096, 8192 또는 16384 바이트 이상의 RAM)에 예약될 수 있는 RAM 버퍼 스택에 대한 정보와 명령줄 인터페이스를 사용하여 호출할 수 있는 인수가 포함됩니다.예를 들어 Amiga 프로그램은 데스크톱 화면과 독립적으로 자체 그래픽 사용자 인터페이스 화면을 열 수 있습니다."Screen=800x600" 및 "Depth=8"과 같은 인수를 info 파일 대화 상자에 호출하여 이 정보를 관련 ".info" 파일에 저장한 다음 프로그램이 8비트 색 깊이의 800x600 화면 크기로 생산성 소프트웨어를 엽니다(색상은 256개까지).

사용자는 ".info" 파일도 삭제할 수 있지만 데스크톱에 프로젝트 파일을 나타내는 아이콘이 있는 이점을 포기하게 되며 여기에 포함된 메타데이터도 모두 손실됩니다.

아이콘

.info 메타데이터 파일에 포함된 비트맵 아이콘의 간단한 보기:

아이콘은 ".info" 파일에 포함된 RAW 비트맵 데이터이며 표준 Amiga IFF/LBM 파일이 아닙니다.사용자는 Amiga를 사용하여 아이콘을 다룰 수 있습니다.OS 표준 프로그램 "IconEdit"은 초기 버전부터 운영 체제에 포함되어 있습니다.아미가를 기점으로OS 버전 2.0, IconEdit은 Amiga에서 표준 그래픽 파일로 사용되는 일반 IFF/LBM 파일을 Import 및 저장할 수 있습니다.OS.[1]

CloantoPersonal Paint와 같은 일부 Amiga 프로그램은 비트맵 데이터를 일반 Amiga 아이콘 또는 이미 존재하는 Amiga ".info" 파일로 표시, 로드 및 저장할 수 있습니다.

레거시 Amiga 아이콘은 2개의 다른 비트맵 이미지를 사용하여 2개의 상태 아이콘을 가질 수 있습니다.첫 번째 비트맵에는 아이콘의 "quiet" 상태라고도 하는 "quiet" 아이콘의 데이터가 포함됩니다.두 번째 비트맵 이미지에는 아이콘의 "선택된" 상태의 데이터가 포함됩니다.사용자가 아이콘을 클릭하여 활성화하면 조용한 아이콘 비트맵 데이터가 선택한 아이콘 비트맵 데이터로 갑자기 대체됩니다.이러한 행동은 아미가 아이콘에게 만화를 움직이는 효과를 준다.이 두 번째 비트맵이 ".info" 파일에 존재하지 않는 경우(두 비트맵을 모두 작성할 필요는 없음), 아이콘을 선택하면 역색 효과가 사용됩니다.

Amiga의 외관을 유지하려는 서드파티 아이콘 "engines"가 있습니다.다른 운영 체제의 최신 표준을 갖춘 OS.이러한 프로그램은 아이콘 처리 전용 OS 루틴에 패치를 적용하여 사용자 지정 루틴으로 대체합니다.이러한 시도 중 하나인 뉴아이콘은 AmigaOS 3.x의 거의 새로운 사실상의 표준이 되었습니다. AmigaOS 3.5 이상에서 사용되는 새로운 아이콘 시스템인 글로우아이콘은 아이콘 파일 형식을 기반으로 하여 매우 인기가 있었습니다.

현대의 Amiga와 유사한 모든 운영 체제(AmigaOS 4, MorphOSAROS)는 RAW 비트맵 데이터, IFF/LBM 파일 또는 PNG 파일을 모든 아이콘의 표준 내부 비트맵 이미지로 연결할 수 있습니다.

오버레이된 실행 파일

HUNK_OVERLAY 타입은 프로그램 실행에 필요한 RAM 용량을 줄이기 위한 것입니다.오버레이 구조의 실행 파일은 항상 메모리에 있는 루트 노드를 가지며,[2] 나머지 프로그램은 필요에 따라 자동으로 로드 및 언로드되는 작은 모듈로 분할됩니다.

Overlay 형식은 코드에 작은 스텁을 추가하여 동작합니다.스텁이 서브모듈로 분기되면 오버레이 매니저를 호출하여 필요한 모듈을 로드합니다.Commodore는 표준 오버레이 매니저를 정의하여 C코드에 이러한 스터브를 자동으로 삽입하고 표준 오버레이 매니저가 읽는 방법을 알고 있는 오버레이 테이블도 생성할 수 있도록 했습니다.

그러나 Overlay 형식은 특히 의도한 방식에서 거의 사용되지 않았습니다.커스텀 오버레이 매니저와 함께 자주 사용되었습니다.오버레이 포맷의 일반적인 용도는 실행 파일을 압축한 타이타닉스 크런처입니다.압축된 실행 파일 전체를 압축 해제하기 전에 메모리에 로드하는 대신, 타이타닉스 크런처는 오버레이를 사용했기 때문에 메모리에 작은 디크런처만 로드한 후 데이터를 읽고 압축을 풉니다.

Amiga에서 사용되는 기타 실행 파일 형식

서드파티 애드온 포함 Amiga최대 3.9의 OS는 Motorola 68000용으로 작성된 Hunk 포맷 이외의 다양한 종류의 실행 파일을 인식합니다.

엘프

Phase 5는 그 파워에 대해 ELF 실행 파일을 구현했습니다.업 액셀러레이터 보드그것은 동적인 연결로 인해 번거롭게 느껴졌다.이 포맷은 AmigaOS 4.0, MorphOS, AROS에서 표준으로 채택되었으며, 서드파티 개발자에 의해 WarpUp에 ELF 지원이 추가되었으며, Hyperion Entertainment는 [3]ELF 포맷으로만 다수의 WarpUp 게임을 출시하였다.

확장 Hunk 형식

1997년 Haage & Partner 개발자 WarpUp Power전원용 PC 커널업 액셀러레이터 보드ELF 바이너리 포맷 대신 기존 hunk 포맷을 확장하기로 했습니다.ELF 바이너리 포맷의 문제는 사용자가 ELF 실행 파일을 로드하기 위해 시스템에 패치를 적용해야 하고 PPC/68k 코드를 혼합할 수 없다는 것이었습니다.Haage & Partner가 개발한 Extended Hunk Format(EHF)을 통해 Power의 경우 기존 시스템을 변경하지 않고 PPC와 68k 코드를 하나의 실행 파일로 혼재시킬 수 있습니다.PC 액셀러레이터가 설치되지 않았습니다.

AmigaOS 4 및 MorphOS

AmigaOS 4.0과 MorphOS는 ELF를 네이티브로 실행할 수 있지만 PowerPC 프로세서 기반 머신에서 실행되도록 설계되었기 때문에 개발자들은 Warp에 대한 호환성도 추가했습니다.AmigaOS 3.9에서 사용되는 UP 소프트웨어.또한 MorphOS는 Phase 5 for Power에서 구현한 PowerUp 소프트웨어 호환성 구현업 액셀러레이터 카드

두 새로운 운영 체제 모두 Amiga OS 3.1에 기반한 오래된 Amiga API 환경을 구현하고 에뮬레이션을 통해 68000 코드를 실행할 수 있기 때문에 Amiga Hunk 형식을 실행할 수도 있습니다.

  • 주의:
  1. ^ Amiga의 PPC 프로세서의 이력에 관한 페이지도 참조해 주세요.역사 사이트
  2. ^ Haage & Partners 사이트의 EHF 사양(영어판도 참조).

「 」를 참조해 주세요.

레퍼런스

  • 아미가DOS 매뉴얼 제3판 (밴텀 북스), Commodore Business Machines, 1991년 7월 ISBN0-553-35403-5
  • Amiga ROM 커널 레퍼런스 매뉴얼, Includes and Autodocs (제3판, 짙은 회색 커버)Addison-Wesley, 1991년.ISBN 0-201-56773-3
  • Commodore Business Machines: 1989 Amiga Developers Conference Notes, Commodore, 1989.고양이 부품 번호: NOTES89 및 NOTES89D
  • Commodore Business Machines: V3.1 Amiga Developer Update Disk Set, Commodore, 1994.CATS 부품 번호: AMDEV 3.1

(Commodore가 Amiga 개발자에게 배포한 일련의 플로피 정보는 더 이상 사용되지 않고 업데이트되어 "개발자 CD"로 대체됩니다.)

  • Commodore Business Machines: 1988 Amiga Developers Conference Notes Commodore, 1988.고양이 부품 번호: NOTES88 및 NOTES88D
  • Stephen Levy: Amiga 프로그래머 가이드, 컴퓨터!출판물, 1986.ISBN 0-87455-028-9
  • 유진 P.모티모어:Amiga Programmer's Handbook, Sybex, 1985.ISBN 0-89588-343-0
  1. ^ http://krashan.ppa.pl//http/amigaicons/상세
  2. ^ http://aminet.net/package/docs/misc/Overlay 바이너리 오버레이 파일에 대한 문서
  3. ^ Steffen Haeuser (18 December 2002). "blast from the past". Retrieved 2011-08-01.

외부 링크