Jump to content

БинХекс

БинХекс 4
Расширение имени файла
.hqx
Тип интернет-СМИ
приложение/mac-binhex40
приложение/mac-binhex
приложение/binhex
Единый идентификатор типа (UTI) com.apple.binhex-архив

BinHex , изначально сокращенное от «двоичное преобразование в шестнадцатеричное», представляет собой систему кодирования двоичного кода в текст , которая использовалась в классической Mac OS для отправки двоичных файлов по электронной почте . Первоначально это была шестнадцатеричная кодировка, последующие версии BinHex больше похожи на uuencode , но объединили обе «вилки» файловой системы Mac вместе с расширенной информацией о файлах. Файлы BinHexed занимают больше места, чем исходные файлы, но не будут повреждены программным обеспечением, отличным от « 8-битного чистого ».

TRS-80 BinHex (.hex)

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

BinHex был первоначально написан в 1981 году Тимом Манном для TRS-80 как автономная версия схемы кодирования, изначально встроенной в популярный эмулятор терминала ST80-III Ланса Миклуса . BinHex использовался для отправки файлов через основные онлайн-сервисы , такие как CompuServe , которые не были «8-битными» и требовали защиты ASCII для выживания . Однако не все использовали ST-80, поэтому Манн написал BinHex, чтобы позволить пользователям других терминалов использовать этот формат. [1]

Исходная система ST-80 работала путем преобразования содержимого двоичного файла в шестнадцатеричные числа, которые кодировались как ASCII ( цифры и буквы 09, AF). Затем он добавлял новую строку после каждых 60 символов. Система стала очень популярной после того, как Манн загрузил ее в файловую область TRS-80 CompuServe. Система быстро добавила контрольную сумму в конце каждой строки для проверки на наличие ошибок. Билл Стоквелл преобразовал эту версию в компилятор BASIC/S, который работал намного быстрее, чем интерпретированная версия Манна. [1]

Файлам BinHex той эпохи обычно присваивалось расширение. .шестнадцатеричный . Вскоре появились порты для других популярных платформ той эпохи, включая Apple II . Позже CompuServe добавила поддержку 8-битной передачи, и этот формат быстро исчез. [1]

Mac BinHex (.hex)

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

Проблема с загрузкой файлов все еще существовала на CompuServe, когда Mac был впервые выпущен в 1984 году. В апреле 1984 года Уильям Дэвис портировал BinHex на Mac с использованием Microsoft BASIC, чтобы создать версию, которая во многом была идентична версиям TRS-80 той же эпохи. [1] Эта версия поддерживала только кодирование «вилки данных», игнорируя вилку ресурса , что означало, что ее можно было использовать только для файлов данных. Рост использования электронной почты в Интернете примерно совпал с выпуском Macintosh, и версия Дэвиса была размещена в Info-Mac списке рассылки Джоэлом Хеллером в июне 1984 года. В 1984 году было опубликовано несколько новых версий, в результате чего появился BinHex 3, который мог бы закодировать обе вилки.

Ив Лемперёр, автор первого ассемблера для Mac, MacASM, обнаружил, что для загрузки файлов на CompuServe ему приходится использовать BinHex. Версия BASIC была очень медленной, поэтому Лемпер портировал BinHex 3 на ассемблер и выпустил ее как BinHex 1.0. Программа была примерно в сто раз быстрее версии BASIC, и вскоре запросы на обновление посыпались потоком. [2]

Компактный BinHex (.hcx)

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

Исходный формат BinHex был довольно простым, но не очень эффективным, поскольку расширял каждый входной байт на два, как того требует шестнадцатеричное представление — кодировка 8–4 бита. Для BinHex 2.0 Лемперёр использовал новую кодировку 8-6, которая уменьшила размер файла на 50%. Он также воспользовался возможностью расширить контрольную сумму с 8 до 16 бит. [2]

В этой новой кодировке для представления данных использовались первые 64 печатных символа ASCII, включая пробел. [3] аналогично uuencode . Несмотря на то, что новая кодировка уже не носила шестнадцатеричный характер, устоявшееся название программы было сохранено. Меньшие файлы были несовместимы со старыми, поэтому расширение стало .hcx , c, что означает компактный. Новая версия заменила предыдущие «в одночасье». [2]

БинХекс 4 (.hqx)

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

У Лемперера были опасения по поводу некоторых особенностей BinHex, в частности, использования контрольной суммы вместо проверки циклическим избыточным кодом (CRC) и того факта, что информация метаданных в заголовке была в виде обычного текста и, следовательно, могла быть повреждена таким же образом, как и в случае с BinHex . данные. [2]

Чтобы решить все эти проблемы, Лемперёр выпустил BinHex 4.0 в 1985 году, пропустив версию 3.0, чтобы избежать путаницы с давно умершей версией BASIC. Версия 4.0 сначала объединила ветвь данных, ветвь ресурса и метаданные файла в общий 8-битный формат, запустила кодирование длины серии (RLE) для результата, чтобы обеспечить некоторое сжатие, а затем выполнила преобразование 8->6 результата и защитила его. все с несколькими CRC. В результате .hqx файлы были примерно такого же размера, как и .hcxх, но гораздо более надежный. [2]

БинХекс 5

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

Примерно в то время, когда был выпущен BinHex 4, большинство онлайн-сервисов начали поддерживать надежные 8-битные протоколы передачи файлов, такие как ZMODEM , и необходимость в защите ASCII отпала. Однако это создало проблему для Mac, поскольку по-прежнему существовала необходимость кодировать две вилки в одну.

Результатом командных усилий программистов связи Macintosh, включая Лемпера, стал MacBinary . Эти .bin файлы оставили содержимое форков в исходном 8-битном формате и добавили простой заголовок для их объединения при приеме; Таким образом, файлы MacBinary были намного меньше, чем BinHex. Lempereur выпустил BinHex 5.0, почти идентичный версии 4.0, за исключением того, что он использовал MacBinary для объединения вилок перед запуском кодирования 8-6. Как он и ожидал, от этого не было никакой пользы. [2]

В Интернете электронная почта по-прежнему оставалась основным способом перемещения файлов. В то время относительно немногие люди имели полный доступ к Интернету, и такие службы, как FTPmail, были единственным способом, с помощью которого многие пользователи могли загружать файлы. Спустя годы, впервые попав в Интернет, Лемперёр с удивлением обнаружил, что BinHex 4.0 по-прежнему пользуется огромной популярностью. [2]

Того же результата можно было достичь, сначала используя MacBinary или AppleSingle для объединения вилок, а затем используя Uuencode или Base64 для полученного файла, но ни одно из этих решений так и не стало популярным, и BinHex 4.0 дожил до конца 1990-х годов. Файловые архивы классического программного обеспечения Mac OS по-прежнему заполнены файлами BinHexed.

Формат файла BinHex 4

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

Глядя на содержимое файла BinHex, можно заметить, что в первой строке обычно есть сообщение, идентифицирующее его как BinHex, за которым следует множество 64-символьных строк, состоящих из, казалось бы, случайных букв, цифр и знаков препинания. Вот пример того, как на самом деле выглядит BinHex:

(This file must be converted with BinHex 4.0)

:$f*TEQKPH#jdCA0d,R0TG!"6594%8dP8)3#3"!&m!*!%EMa6593K!!%!!!&mFNa
KG3,r!*!$&[rr$3d,BQPZD'9i,R4PFh3!RQ+!!"AV#J#3!i!!N!@QKUjrU!#3'[q
3"&4&@&483N)f!3#Xaj6bV-H8mJ!!!B3!N!0"!*!$[3#3!cR@iiY)!*!'[I%4!!J
Fp$X%X3@J!mZE6!GRiKUi$HGKMf0U61S46%i1"AB!TI,fLl!d1X3RDDE8ALfTCbM
8UP9p4iUqY-0k4krHpk9XK@`rbj2Ti'U@5rGH@+[fr-i4T6-qXpfl26,k!H5$Nml
TIkI'(l3GI4)f8mII&01CNEbC2LrNLBeaZ1HG@$G8!Z6"k)hh,q9p"r6FC*!!Se"
(ic,Pd(4(b`pflKC`H1&JN5)GVX3mREdH55[l`%`Yhp%q092c`A(hPV)!83Dr&f4
$$L#I1aM-"VjqV-q$34KQq6$M$f8#,Zc,i),!(`*ZN!$K$rS!LA%3cL+dYi"@,K(
Z"`#3!fKi!!!:

Должна быть текстовая строка, которая используется пользователями и инструментами для распознавания версий BinHex: (This file must be converted with BinHex 4.0). Любой текст перед этой строкой игнорируется. [4]

Остальная часть файла состоит из трех частей: заголовка (содержащего имя файла, размер и т. д.), ветви данных (содержащей данные файла) и ветви ресурса . Каждый из них имеет двухбайтовую контрольную сумму CRC .

Все, кроме (This file... строка тогда рассматривается как область двоичных данных, закодированных символами ASCII. Алгоритм кодирования говорит, что три входных байта делятся на четыре 6-битных значения, аналогично тому, как это делает Base64 . Числам 0–63 присвоены символы согласно следующему списку. !"#$%&'()*+,-012345689@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr

При кодировании <return> следует вставлять после каждых 64 символов. После кодирования перед и после данных ставится двоеточие.

  1. ^ Перейти обратно: а б с д Манн .
  2. ^ Перейти обратно: а б с д и ж г Император 1997 .
  3. ^ Например, исходный код версии CWI hexbin включен в macutils , в hecx.c строка 187 использует выражение ((c)-0x20) & 0x3f чтобы получить числовое значение цифры HCX со значением ASCII c.
  4. ^ Тип содержимого RFC   1741 MIME для файлов в кодировке BinHex. Фальтстрем П., Крокер Д. и Фэйр Э. (декабрь 1994 г.).

Библиография

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

См. также

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ac8c3c79a1aa92ed07c7a0f5b5d043a7__1700219220
URL1:https://arc.ask3.ru/arc/aa/ac/a7/ac8c3c79a1aa92ed07c7a0f5b5d043a7.html
Заголовок, (Title) документа по адресу, URL1:
BinHex - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)