Jump to content

Амига Ханк

(Перенаправлено из расширенного формата Hunk )
Красавчик
Разработано Commodore International MetaComCo plc.
Первоначальный выпуск 5 мая 1986 г .; 38 лет назад ( 1986-05-05 )
Тип формата Amiga Исполняемый файл

Hunk — это формат исполняемых файлов инструментов и программ операционной системы Amiga на базе Motorola 68000 процессора и других процессоров того же семейства. Формат файла изначально был определен MetaComCo. в составе TRIPOS , легшего в основу AmigaDOS. [ 1 ] Этот вид исполняемых файлов получил свое название из-за того, что программное обеспечение, написанное на Amiga, по своей внутренней структуре разделено на множество частей, называемых ханками , каждая часть которых может содержать либо код, либо данные.

Ханк-структура

[ редактировать ]

Части исполняемого файла Amiga могут существовать в разных типах. Существуют 32-битные ханки, 16-битные ханки и даже некоторые 8-битные ханки.

Типы ханков были стандартизированы в AmigaOS и хорошо документированы в «Руководстве AmigaDOS» , отредактированном Commodore, чтобы объяснить программистам, как программировать на Amiga, в те годы, когда Commodore производила компьютеры Amiga. Их структура была официально кодифицирована и могла быть изменена только комитетом Commodore, который затем сообщал об изменениях разработчикам новых выпусков операционной системы Amiga.

Структура фрагмента Amiga очень проста: в начале фрагмента имеется заголовок, указывающий, что такая «часть кода» является известным и допустимым типом фрагмента Amiga, затем следует идентификатор, указывающий длину фрагмента. сам по себе, а внизу находится сегмент фрагмента, который содержит реальный код или данные.

Особенности исполняемых файлов Amiga

[ редактировать ]

Исполняемые файлы Amiga можно запускать либо из графической оболочки Amiga, Workbench Amiga , либо из интерпретатора командной строки (называемого CLI, позже AmigaShell).

никакого конкретного расширения имени файла Для исполняемых файлов Amiga не требуется . Например, апплет калькулятора « Калькулятор » можно переименовать в « Calculator.com », « Calculator.exe », « Calculator.bin » или даже « Calculator.jpeg ». Все это допустимые имена для программ или инструментов, поскольку AmigaOS не различает расширения имен файлов .

AmigaOS использовала другой метод, чтобы распознать, что она имеет дело с действительным исполняемым файлом. В заголовке файла имеется определенная последовательность байтов, дающая шестнадцатеричное значение $000003f3 . Эта последовательность, которая обозначает исполняемый файл и позволяет ему запускаться самостоятельно, называется волшебным файлом cookie (от волшебного файла cookie в «Приключениях Алисы в стране чудес » Льюиса Кэрролла ). [ нужна ссылка ]

Такое решение для идентификации исполняемых файлов на Amiga было взято из аналогичных решений, которые были приняты UNIX / Unix-подобными операционными системами, где волшебные файлы cookie называются магическими числами .

Структура исполняемого файла Amiga

[ редактировать ]

Внутренняя структура исполняемого файла Amiga очень проста. В начале файла находится волшебный файл cookie, затем объявляется общее количество ханков в исполняемом файле, и сразу после этого идет прогрессивное количество ханков, начиная с «0» (нуля).

Первый фрагмент всегда имеет номер ноль, поэтому, если исполняемый файл (например) разделен на три фрагмента, они будут иметь номер «0» для первого, «1» для второго и «2» для третьего фрагмента и т. д. .

Непосредственно перед началом реальных ханков находится таблица, содержащая информацию о длине любых ханков, присутствующих в исполняемом файле, а в последней части файла расположены настоящие ханки, каждый из которых описывается своим именем типа: HUNK_CODE , HUNK_DATA и т. д. .

Представление структуры:

Волшебное печенье Общее количество кусков Прогрессивное количество кусков Таблица длины Различные ханки (Hunk_Code, Hunk_Data и т. д.)

Типы ханков

[ редактировать ]

Известные типы ханков для Amiga:

Имя Значение (десятичное) Значение (шестнадцатеричное)
HUNK_UNIT 999 3Е7
HUNK_NAME 1000 3Е8
HUNK_CODE 1001 3E9
HUNK_DATA 1002 3ЕА
HUNK_BSS 1003 3ЕВ
HUNK_RELOC32 1004 3EC
HUNK_RELOC16 1005 3ЭД
HUNK_RELOC8 1006 3EE
HUNK_EXT 1007 3ЭФ
HUNK_SYMBOL 1008 3F0
HUNK_DEBUG 1009 3F1
HUNK_END 1010 3F2
HUNK_HEADER 1011 3F3
HUNK_OVERLAY 1013 3F5
HUNK_BREAK 1014 3F6
HUNK_DREL32 1015 3F7
HUNK_DREL16 1016 3F8
HUNK_DREL8 1017 3F9
HUNK_LIB 1018 3ФА
HUNK_INDEX 1019 3ФБ
HUNK_RELOC32SHORT 1020 3ФК
HUNK_RELRELOC32 1021 3ФД
HUNK_ABSRELOC16 1022 3FE
HUNK_PPC_CODE * 1257 4E9
HUNK_RELRELOC26 * 1260 4EC

* Расширенный формат ханка

Метаданные

[ редактировать ]

Amiga могла сохранять метаданные в виде ханков, поскольку структуру ханков можно было легко адаптировать для поддержки этой функции, но от формата ханков исполняемых файлов отказались в пользу ELF , и не существует центрального органа (как уволенный Commodore), который мог бы реализовать эту функцию. как один из стандартов Amiga.

Amiga сохраняет некоторые метаданные в дополнительные файлы, известные как «.info» (названные так по названию суффикса расширения).

Файлы «.info» могут создаваться в любое время при сохранении проекта (файла данных) на диске. Пример: когда пользователь сохраняет файл с именем «MyProject», на диске могут быть созданы два файла с именами «MyProject» и MyProject.info».

Файл «MyProject» содержит реальные данные файла проекта, а файл «MyProject.info» содержит значок и информацию о программном обеспечении, создавшем файл, поэтому каждый раз, когда значок проекта вызывается щелчком по нему с помощью мыши, родительское программное обеспечение будет открыто (пользователи могут изменить эту информацию в любое время, позволяя другим программам полагать, что они создали файл проекта, а не исходное программное обеспечение, которое физически создало его).

Привязка приложений не существует в AmigaOS , как в других системах, таких как MacOS.

Файл «.info» также содержит некоторые характеристики файла проекта и комментарии пользователей.

Файлы «.info» не отображаются на экране Workbench (Workbench — это графический интерфейс Amiga Desktop по умолчанию). На экране рабочего стола появляется только иконка файла проекта, вынутого из "информационного" файла. Фактически значок — это виртуальный носитель, который соединяет сам проект и метаданные, хранящиеся в «.info».

Когда пользователь щелкает по значку левой кнопкой мыши, проект «.info» вызывает программу, которая его создала. Когда пользователь нажимает на значок и выбирает соответствующий пункт меню, появляется диалоговое окно, позволяющее пользователю взаимодействовать с метаданными, содержащимися в файле «.info».

Файлы «.info» копируются или перемещаются вместе со связанным с ними файлом проекта путем перемещения значка с помощью мыши и могут просматриваться как отдельный файл через интерфейсы командной строки Amiga, такие как AmigaShell, или с помощью сторонних файловых менеджеров или списки каталогов, такие как Directory Opus или DiskMaster .

Если файл «.info» представляет исполняемую программу, то файл «.info» содержит информацию о стеке буферов ОЗУ, которые могут быть зарезервированы для исполняемого файла (например, 4096, 8192 или 16384 или более байт ОЗУ) и даже аргументы, которые можно вызвать с помощью интерфейса командной строки. Например, программа Amiga может открыть собственный экран графического интерфейса пользователя, независимый от экрана рабочего стола. Вызывая такие аргументы, как «Screen=800x600» и «Depth=8», в диалоговом окне информационного файла, пользователь может сохранить эту информацию в связанном файле «.info», а затем программа откроет программное обеспечение для повышения производительности на собственном экране размером с экран. 800×600 с глубиной цвета 8 бит (что соответствует 256 цветам).

Пользователь также может удалить файлы «.info», но тогда он откажется от преимуществ наличия значка, обозначающего файл проекта, на рабочем столе, а также потеряет все содержащиеся в нем метаданные.

Краткий обзор растровых значков, содержащихся в файлах метаданных «.info»:

Значки представляют собой растровые данные RAW, содержащиеся в файлах «.info», и не являются стандартными Amiga IFF / LBM файлами . Пользователи могут работать со значками с помощью стандартной программы AmigaOS «IconEdit», присутствующей в операционной системе начиная с ее ранних версий. Начиная с версии AmigaOS 2.0, IconEdit может импортировать и сохранять обычные файлы IFF/LBM, используемые в качестве стандартных графических файлов в AmigaOS. [ 2 ]

Некоторые программы Amiga, такие как Personal Paint от Cloanto, могут просматривать, загружать и сохранять растровые данные как обычные значки Amiga или как уже существующие файлы Amiga «.info».

Устаревшие значки Amiga могут иметь значки с двумя состояниями, используя два разных растровых изображения. Первое растровое изображение содержит данные «тихого» значка, также известного как «тихое состояние» значка. Второе растровое изображение содержит данные «выбранного» состояния значка. Когда пользователь щелкает значок и активирует его, данные растрового изображения тихого значка внезапно заменяются данными растрового изображения выбранного значка. Такое поведение придает значкам Amiga эффект движущихся мультфильмов. Если это второе растровое изображение не существует в файле «.info» (создавать оба растровых изображения не обязательно), то при выборе значка используется инверсный цветовой эффект.

Существуют сторонние «движки» иконок, которые пытаются поддерживать внешний вид AmigaOS в соответствии с современными стандартами других операционных систем. Эти программы исправляют процедуры ОС, предназначенные для обработки значков, заменяя их собственными. Одна из таких попыток, NewIcons , стала практически новым стандартом де-факто для AmigaOS 3.x. Он был настолько популярен, что новая система значков, используемая в AmigaOS 3.5 и выше, GlowIcons , основана на формате файла значков.

Все современные Amiga-подобные операционные системы ( AmigaOS 4 , MorphOS и AROS ) могут ассоциировать либо растровые данные RAW, файлы IFF/LBM, либо файлы PNG в качестве стандартного внутреннего растрового изображения любого значка.

Наложенные исполняемые файлы

[ редактировать ]

Тип HUNK_OVERLAY был предназначен для уменьшения объема оперативной памяти, необходимой для запуска программы. Исполняемые файлы с наложенной структурой имеют корневой узел, который постоянно находится в памяти, а остальная часть программы разбита на более мелкие модули, которые загружаются и выгружаются автоматически при необходимости. [ 3 ]

Формат Overlay работает путем добавления к коду небольших заглушек, так что, когда они разветвляются на подмодуль, он вызывает диспетчер наложений, который загружает необходимый модуль. Commodore определил стандартный менеджер наложений, чтобы код C мог автоматически вставлять эти заглушки, а также генерировать таблицу наложений, которую стандартный менеджер наложений знал, как читать.

Однако формат Overlay использовался редко, особенно по назначению. Чаще всего он использовался с пользовательским менеджером наложений. Формат наложения популярно использовался в Titanics Cruncher. [ 4 ] который сжимал исполняемые файлы. Вместо того, чтобы загружать весь сжатый исполняемый файл в память перед распаковкой, Titanics Cruncher использовал оверлей, поэтому в память загружался только крошечный деранчер, который затем считывал и распаковывал данные по мере их поступления.

Другие форматы исполняемых файлов, используемые на Amiga

[ редактировать ]

С помощью сторонних надстроек AmigaOS до версии 3.9 распознает различные виды исполняемых файлов, кроме формата Hunk, созданного для Motorola 68000.

Phase5 внедрила исполняемые файлы ELF для своих плат ускорителей PowerUP. Он оказался громоздким из-за динамической компоновки. Этот формат затем был принят в качестве стандарта AmigaOS 4.0 , MorphOS и AROS . Поддержка ELF была добавлена ​​в WarpUp сторонними разработчиками, и Hyperion Entertainment выпустила ряд игр WarpUp только в формате ELF. [ 5 ]

Расширенный формат Hunk

[ редактировать ]

В 1997 году компания Haage & Partner разработала ядро ​​WarpUp PowerPC для плат-ускорителей PowerUP. Вместо двоичного формата ELF они решили расширить существующий формат ханка. Проблема с двоичным форматом ELF заключалась в том, что пользователям приходилось обновлять свою систему для загрузки исполняемых файлов ELF, и смешивание кода PPC/68k было невозможно. Расширенный формат Hunk (EHF), разработанный Haage & Partner, позволял смешивать код PPC и 68k в один исполняемый файл без изменения существующей системы, если ускоритель PowerPC не был установлен. [1] [2] .

АмигаОС 4 и МорфОС

[ редактировать ]

AmigaOS 4.0 и MorphOS могут работать с ELF изначально, но поскольку эти системы были разработаны для работы на машинах с процессором PowerPC, разработчики добавили также совместимость с программным обеспечением WarpUP, используемым в AmigaOS 3.9. Кроме того, MorphOS реализует совместимость программного обеспечения PowerUp, как это реализовано в Phase5 для карт-ускорителей PowerUP.

Обе новые операционные системы также могут работать в формате Amiga Hunk, поскольку они реализуют старую среду Amiga API на основе AmigaOS 3.1 и могут запускать код 68000 посредством эмуляции.

  • Примечания:
  1. ^ См. также страницы, посвященные истории процессора PPC на Amiga , на сайте Amiga.History.
  2. ^ Спецификации EHF. Архивировано 16 ноября 2007 г. на Wayback Machine (также на английском языке ) на сайте Haage&Partners.

См. также

[ редактировать ]
  • Руководство AmigaDOS, третье издание (Bantam Books), Commodore Business Machines, июль 1991 г. ISBN   0-553-35403-5
  • Справочное руководство по ядру Amiga ROM, Включает и Autodocs (3-е издание; темно-серая обложка) Addison-Wesley, 1991. ISBN   0-201-56773-3
  • Commodore Business Machines: Заметки конференции разработчиков Amiga, 1989 г. , Commodore, 1989 г. Номера деталей CATS: ПРИМЕЧАНИЕ89 и ПРИМЕЧАНИЕ89D.
  • Commodore Business Machines: Набор дисков для обновлений Amiga Developer Update V3.1 , Commodore, 1994 г. Номер детали CATS: AMDEV3.1

(информация с этого набора дискет, распространяемых Commodore разработчикам Amiga, устарела, обновлена ​​и заменена на «Компакт-диск разработчика»)

  • Commodore Business Machines: Заметки конференции разработчиков Amiga, 1988 г. Commodore , 1988 г. Номера деталей CATS: ПРИМЕЧАНИЕ88 и ПРИМЕЧАНИЕ88D
  • Стивен Леви: Руководство программиста Amiga , Compute! Публикации, 1986. ISBN   0-87455-028-9
  • Юджин П. Мортимор: Справочник программиста Amiga , Sybex, 1985. ISBN   0-89588-343-0

Примечания

[ редактировать ]
  1. ^ МЕТАКОМКО, ООО. (1986). Знакомство с Трипосом .
  2. ^ http://krashan.ppa.pl//articles/amigaicons/ некоторые подробности.
  3. ^ http://aminet.net/package/docs/misc/Overlay Документ о файлах двоичного наложения.
  4. ^ Titanics Cruncher 1.2 (Инструмент/Exec/Data Cruncher) от Titanics
  5. ^ Штеффен Хойзер (18 декабря 2002 г.). «взрыв из прошлого» . Проверено 1 августа 2011 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cbe4950f01babe878fe93b92e8d55a70__1722210600
URL1:https://arc.ask3.ru/arc/aa/cb/70/cbe4950f01babe878fe93b92e8d55a70.html
Заголовок, (Title) документа по адресу, URL1:
Amiga Hunk - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)