Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Расширенный двоично - десятичный код обмена [1] ( EBCDIC ; [1] / ɛ б ы ɪ д ɪ к / ) представляет собой восьми- битный кодировка символов используется в основном на IBM ЭВМ и IBM среднего класса компьютер операционных систем. Он произошел от кода, используемого с перфокартами, и соответствующего шестибитного двоичного десятичного кода, который использовался в большинстве компьютерных периферийных устройств IBM в конце 1950-х - начале 1960-х годов. [2] Он поддерживается различными платформами сторонних производителей, такими какFujitsu-Siemens ' BS2000 / OSD , ОС-IV MSP и MSP-EX, то серия SDS Сигма , Unisys В.С. / 9 , Unisys MCP и ICL УМЭ .

История [ править ]

Перфокарта с кодировкой Холлерита набора символов EBCDIC 1964 года. Контраст вверху увеличен для отображения напечатанных символов.

EBCDIC был разработан в 1963 году и 1964 году IBM и было объявлено , с выпуском IBM System / 360 линии мэйнфреймов компьютеров . Это восьмибитная кодировка символов, разработанная отдельно от семибитной схемы кодирования ASCII . Он был создан , чтобы расширить существующую двоично-Десятичный (BCD) Interchange код или двоично - кодированный десятичный информационный код , который сам по себе был разработан в качестве эффективного средства , кодирующие две зоны и число ударов на перфокартах на шесть битов. Различное кодирование s и S (с использованием позиции 2 вместо 1) сохранялось на перфокартах.где желательно не располагать дыроколы слишком близко друг к другу, чтобы обеспечить целостность физической карты. [ необходима цитата ]

Хотя IBM была главным сторонником комитета по стандартизации ASCII [3], у компании не было времени подготовить периферийные устройства ASCII (например, перфораторы карт) для поставки с компьютерами System / 360, поэтому компания остановилась на EBCDIC. [2] Система / 360 стала бешено успешной вместе с такими клонами, как RCA Spectra 70 , ICL System 4 и Fujitsu FACOM, как и EBCDIC.

Все периферийные устройства и операционные системы IBM для мэйнфреймов и среднего уровня используют EBCDIC в качестве кодировки [4] (с допуском для ASCII, например, ISPF в z / OS может просматривать и редактировать файлы в кодировке EBCDIC и ASCII). Программное обеспечение и многие аппаратные периферийные устройства могут выполнять преобразование в кодировки и из них, а современные мэйнфреймы (такие как IBM Z ) включают инструкции процессора на аппаратном уровне для ускорения преобразования между наборами символов.

Существует формат преобразования Unicode, ориентированный на EBCDIC, называемый UTF-EBCDIC, предложенный консорциумом Unicode, разработанный для обеспечения простого обновления программного обеспечения EBCDIC для обработки Unicode, но не предназначенный для использования в средах открытого обмена. Даже в системах с обширной поддержкой EBCDIC он не пользовался популярностью. Например, z / OS поддерживает Unicode (предпочитая конкретно UTF-16 ), но z / OS имеет только ограниченную поддержку UTF-EBCDIC.

IBM AIX, работающий на RS / 6000 и его потомках, включая IBM Power Systems , Linux, работающий на IBM Z , и операционные системы, работающие на IBM PC и его потомках, используют ASCII, как и AIX / 370 и AIX / 390, работающие на System / 370 и мэйнфреймы System / 390 .

Совместимость с ASCII [ править ]

Было много трудностей с написанием программного обеспечения, которое работало бы как в ASCII, так и в EBCDIC.

  • Пробелы между буквами делали простой код, который работал в ASCII, не работал на EBCDIC. Например, будет печатать алфавит от A до Z, если используется ASCII, но печатать 41 символ (включая ряд неназначенных) в EBCDIC. Чтобы исправить это, потребовалось усложнить код вызовами функций, чему очень сопротивлялись программисты.for (c = 'A'; c <= 'Z'; ++c) putchar(c);
  • Сортировка EBCDIC помещает строчные буквы перед прописными буквами и буквы перед числами, в точности противоположно ASCII.
  • Языки программирования, форматы файлов и сетевые протоколы, разработанные для ASCII, быстро использовали доступные знаки препинания (такие как фигурные скобки { и } ), которых не было в EBCDIC, что затруднило перевод в системы EBCDIC. И наоборот, в EBCDIC было несколько символов, таких как ¢ ( цент США ), которые использовались в системах IBM и не могли быть переведены в ASCII.
  • Наиболее распространенное соглашение о новой строке, используемое с EBCDIC, - это использование кода NEL (NEXT LINE) между строками. Конвертеры в другие кодировки часто заменяют NEL на LF или CR / LF , даже если в целевой кодировке есть NEL. Это приводит к тому, что LF и NEL переводятся в один и тот же символ и не могут быть различимы.
  • Если использовался семибитный ASCII, в 8-битных байтах был «неиспользуемый» старший бит, и многие части программного обеспечения сохраняли там другую информацию. Программное обеспечение также упаковывает семь битов и отбрасывает восьмой, например, упаковывая пять семибитных символов ASCII в 36-битное слово. [5] В PDP-11 байты с установленным старшим битом обрабатывались как отрицательные числа, поведение копировалось в C , вызывая неожиданные проблемы, если был установлен старший бит. Все это затрудняло переключение с ASCII на 8-битный EBCDIC (это также затрудняло переключение на (8-битные) расширенные кодировки ASCII ).

Макет кодовой страницы [ править ]

Существуют сотни кодовых страниц EBCDIC, основанных на исходной кодировке символов EBCDIC; существует множество кодовых страниц EBCDIC, предназначенных для использования в разных частях мира, включая кодовые страницы для нелатинских шрифтов, таких как китайский, японский (например, EBCDIC 930, JEF и KEIS), корейский и греческий (EBCDIC 875) ). Также существует огромное количество вариаций, в которых буквы меняются местами без видимой причины.

В таблице ниже показано «инвариантное подмножество» [6] EBCDIC, которое представляет собой символы, которые должны иметь одинаковые назначения на всех кодовых страницах EBCDIC. Он также показывает (серым цветом) отсутствующие знаки препинания ASCII и EBCDIC, расположенные там, где они находятся на кодовой странице 037 (один из вариантов кодовой страницы EBCDIC). Неназначенные коды обычно заполняются международными или региональными символами в различных вариантах кодовой страницы EBCDIC , но символы серого цвета также часто перемещаются или меняются местами. В каждой ячейке первая строка представляет собой аббревиатуру управляющего кода или самого символа; а вторая строка - это код Unicode (пусто для элементов управления, не существующих в Unicode).

  Письмо  Число  Пунктуация  Символ  Другой  Неопределенный

Определения элементов управления EBCDIC, отличных от ASCII [ править ]

Ниже приведены определения управляющих символов EBCDIC, которые либо не отображаются на управляющие символы ASCII , либо имеют дополнительное применение. При отображении в Unicode они в основном отображаются в кодовые точки управляющих символов C1 способом, указанным в Архитектуре представления символьных данных IBM (CDRA). [7] [8]

Хотя отображение по умолчанию новой строки (NL) соответствует символу следующей строки ISO / IEC 6429 (NEL) (поведение которого также указано, но не требуется, в Приложении 14 Unicode), [9] большинство из этих C1- сопоставленные элементы управления не соответствуют ни элементам из набора ISO / IEC 6429 C1 , ни тем из других зарегистрированных наборов элементов управления C1, таких как ISO 6630 . [10] Хотя это фактически делает не-ASCII элементы управления EBCDIC уникальным набором элементов управления C1, они не входят в число наборов элементов управления C1, зарегистрированных в реестре ISO-IR , [11] что означает, что они не имеют назначенной последовательности назначения набора элементов управления. (как указано в ИСО / МЭК 2022 и, возможно, разрешено в ИСО / МЭК 10646).(Юникод)). [12]

Помимо U + 0085 (Следующая строка), стандарт Unicode не предписывает интерпретацию управляющих символов C1, оставляя их интерпретацию протоколам более высокого уровня (он предлагает, но не требует, их интерпретации ISO / IEC 6429 в отсутствие использования для для других целей), [13], поэтому такое сопоставление допустимо в Юникоде, но не определяется им.

Кодовые страницы с наборами символов Latin-1 [ править ]

Следующие кодовые страницы содержат полный набор символов Latin-1 (ISO / IEC 8859-1). В первом столбце указан исходный номер кодовой страницы. Во втором столбце указан номер кодовой страницы, обновленной знаком евро (€), заменяющим знак универсальной валюты (¤) (или, в случае EBCDIC 924, с набором, измененным в соответствии с ISO 8859-15 ).

Критика и юмор [ править ]

Защитник программного обеспечения с открытым исходным кодом и разработчик программного обеспечения Эрик С. Реймонд пишет в своем « Жаргонном файле», что EBCDIC ненавидели хакеры, имея в виду [15] членов субкультуры программистов-энтузиастов. Файл жаргона 4.4.7 дает следующее определение: [16]

EBCDIC: / eb´s @ · dik /, / eb´see`dik /, / eb´k @ · dik /, n. [сокращение, Extended Binary Coded Decimal Interchange Code] Предполагаемый набор символов, используемый на динозаврах IBM. Он существует как минимум в шести взаимно несовместимых версиях, каждая из которых отличается такими прелестями, как несмежные последовательности букв и отсутствие нескольких знаков пунктуации ASCII, довольно важных для современных компьютерных языков (какие именно символы отсутствуют, зависит от того, какую версию EBCDIC вы используете смотря на). IBM адаптировала EBCDIC из кода перфокарт в начале 1960-х годов и провозгласила его тактикой контроля над потребителями (см. Заговор о соединителях ), отказавшись от уже установленного стандарта ASCII. Сегодня IBM заявляет, что является открытыми системами.компании, но собственное описание IBM вариантов EBCDIC и способов преобразования между ними по-прежнему засекречено внутри компании как совершенно секретное, «прожиг перед чтением». Хакеры бледнеют от самого названия EBCDIC и считают его проявлением чистейшего зла.

-  Файл жаргона 4.4.7

Дизайн EBCDIC был также источником многих шуток. Одна такая шутка [ необходима цитата ] гласила:

Профессор: «Итак, американское правительство обратилось к IBM с предложением разработать стандарт шифрования , и они придумали…»
Студент: «EBCDIC!»

Ссылки на набор символов EBCDIC сделаны в классической серии приключенческих игр Infocom Zork . В «Машинном зале» в Zork II EBCDIC используется для обозначения непонятного языка:

Это большая комната, полная разнообразной тяжелой техники, шумно жужжащей. В комнате пахнет сгоревшими резисторами. Вдоль одной стены расположены три кнопки соответственно круглой, треугольной и квадратной формы. Естественно, над этими кнопками есть инструкции, написанные в EBCDIC ...

См. Также [ править ]

  • UTF-EBCDIC

Ссылки [ править ]

  1. ^ a b Маккензи, Чарльз Э. (1980). Наборы кодированных символов, история и развитие . Серия системного программирования (1-е изд.). ISBN издательства Addison-Wesley Publishing Company, Inc.  0-201-14460-3. LCCN  77-90165 . ISBN 978-0-201-14460-4 . Проверено 22 мая 2016 .  [1]
  2. ^ а б Бемер, Боб . «EBCDIC и P-Bit (самый большой компьютерный тупик в истории) - виньетки компьютерной истории» . Архивировано из оригинала на 2018-05-13 . Проверено 2 июля 2013 . ... но их принтеры и перфораторы не были готовы к работе с ASCII, и IBM просто НАДО было объявить.
  3. ^ "X3.4-1963" . 1963. с. 4. Архивировано 12 августа 2016 года. (NB. В последнем подкомитете ASA X3.2 из 21 члена IBM было четыре сотрудника.)
  4. ^ IBMnt (2008). «IBM подтверждает использование EBCDIC в своих мэйнфреймах по умолчанию» . Архивировано из оригинала на 2013-01-03 . Проверено 16 июня 2008 .
  5. ^ Справочное руководство PDP-10, Книга 2: Сборка исходной программы (PDF) . Корпорация цифрового оборудования . п. 221.
  6. ^ IBM Knowledge Center Неизменный набор символов
  7. ^ a b c Умамахесваран, ВС (1999-11-08). «3.3 Шаг 2: Преобразование байтов» . UTF-EBCDIC . Консорциум Unicode . Технический отчет по Unicode №16. 64 управляющих символа ... символ ASCII DELETE (U + 007F) ... отображаются в соответствии с соглашениями EBCDIC, как определено в Архитектуре представления символьных данных IBM, CDRA, с одним исключением - пара символов перевода строки EBCDIC и новой строки управляющие символы заменяются из их пар по умолчанию CDRA на управляющие символы ISO / IEC 6429 Line Feed (U + 000A) и Next Line (U + 0085)
  8. ^ a b Стил, Шон (1996-04-24). cp037_IBMUSCanada в таблицу Unicode . Консорциум Microsoft / Unicode .
  9. ^ Хенингер, Энди (2019-02-15). «NL: Next Line (A) (Не адаптируется)» . Алгоритм разрыва строки Unicode . Редакция 43. Консорциум Unicode . Приложение № 14 к стандарту Unicode.
  10. ^ ISO / TC 46 (1986-02-01). Дополнительные функции управления для библиографического использования в соответствии с международным стандартом ISO 6630 (PDF) . ITSCJ / IPSJ . ISO-IR-124.
  11. ^ Международный регистр кодированных наборов символов ISO / IEC для использования с escape-последовательностями (PDF) , ITSCJ / IPSJ , ISO-IR
  12. ^ ISO / IEC JTC 1 / SC 2 (2017). «12.4: Идентификация набора функций управления». Информационные технологии - Универсальный набор кодированных символов (UCS) (5-е изд.). ISO . С. 19–20. ИСО / МЭК 10646. Для других наборов C0 или C1 последний октет F должен быть получен из Международного регистра наборов кодированных символов .... Если такая escape-последовательность появляется в последовательности кодовых единиц, соответствующей настоящему международному стандарту, она должна быть дополненным в соответствии с разделом 11.
  13. ^ Консорциум Unicode (2019). «23.1: Контрольные коды» (PDF) . Стандарт Юникода (изд. 12.0.0). С. 868–870. ISBN  978-1-936213-22-1.
  14. ^ a b «Приложение G-1. Определения управляющих символов EBCDIC» . Архитектура представления символьных данных . Корпорация IBM . Архивировано из оригинала на 2018-09-11.
  15. Перейти ↑ Raymond, Eric S. (1997). «Словарь нового хакера» . п. 310.
  16. ^ "EBCDIC" . Файл жаргона . Архивировано 13 мая 2018 года . Проверено 13 мая 2018 .

Внешние ссылки [ править ]

  • Архитектура представления символьных данных (CDRA) от IBM на Wayback Machine (архивировано 13 мая 2018 г.). Содержит официальную информацию IBM о кодовых страницах и наборах символов.
    • Кодовая страница 37
    • Кодовая страница 1047
  • Ссылка на кодовую страницу хоста от IBM, показывает диаграммы кода для нескольких однобайтовых страниц EBCDIC.
  • «Кодовые страницы» .из «IBM i глобализация» .
  • ICU Converter Explorer Содержит дополнительную информацию о EBCDIC, полученную из IBM CDRA, включая DBCS EBCDIC (двухбайтовый набор символов EBCDIC)
  • Таблицы сопоставления кодировки ICU Содержат машиночитаемые таблицы сопоставления Unicode для EBCDIC и многих других наборов символов.
  • Список символов EBCDIC , включая десятичные и шестнадцатеричные значения, символьное имя и символ / функцию
  • Кодовые страницы EBCDIC с кодировкой Latin-1 (JavaScript)
  • Все кодовые страницы EBCDIC и 3270 графических escape-кодов на Wayback Machine (архивировано 27 августа 2016 г.)