stringtranslate.com

EBCDIC

Расширенный двоично-десятичный код обмена [1] [2] ( EBCDIC ; [1] / ˈ ɛ b s ɪ d ɪ k / ) — восьмибитная кодировка символов , используемая в основном в операционных системах мэйнфреймов IBM и IBM среднего уровня . Он произошел от кода, используемого в перфокартах , и соответствующего шестибитного двоично-десятичного кода, который использовался в большинстве компьютерных периферийных устройств IBM в конце 1950-х - начале 1960-х годов. [3] Он поддерживается различными платформами сторонних производителей, такими как Fujitsu-Siemens BS2000 /OSD , OS-IV, MSP и MSP-EX, серия SDS Sigma , Unisys VS/9 , Unisys MCP и ICL VME .

История

Перфокарта с кодировкой Холлерита набора символов EBCDIC 1964 года. Контраст вверху увеличен, чтобы лучше видеть напечатанные символы. «Цифровые» элементы (0–9) напрямую преобразуются в младшие 4 бита EBCDIC, хотя верхние 4 бита EBCDIC более сложны.

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

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

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

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

Не все операционные системы, работающие на оборудовании IBM, используют EBCDIC; IBM AIX , Linux на IBM Z и Linux на Power используют ASCII, как и все операционные системы на персональном компьютере IBM и его преемниках.

Совместимость с ASCII

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

Макет кодовой страницы

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

В таблице ниже показано «инвариантное подмножество» [9] EBCDIC, которое представляет собой символы, которые должны иметь одинаковые назначения на всех кодовых страницах EBCDIC, использующих латинский алфавит. (Это включает в себя большую часть инвариантного репертуара ISO/IEC 646 , за исключением восклицательного знака .) Он также показывает (серым цветом) отсутствующие знаки препинания ASCII и EBCDIC, расположенные там, где они находятся на кодовой странице 37 (один из вариантов кодовой страницы EBCDIC). . В вариантах пустые ячейки заполняются символами, специфичными для региона, но символы серого цвета также часто меняются местами или заменяются. Как и ASCII, инвариантное подмножество работает только для языков, использующих базовый латинский алфавит ISO , таких как английский (исключая заимствованные слова и некоторые необычные орфографические варианты) и голландский (если лигатуры «ij» и «IJ» написаны как два символа).

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

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

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

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

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

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

В разных странах используются разные кодовые страницы, поскольку эти кодовые страницы возникли как кодовые страницы с репертуаром символов для конкретной страны, а затем были расширены и теперь содержат весь репертуар ISO 8859-1, что означает, что данный символ ISO 8859-1 может иметь разные значения кодовых точек. в разных кодовых страницах. Они известны как расширенные кодовые страницы страны ( CECP ). [20]

Критика и юмор

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

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

—  Файл жаргона 4.4.7.

Дизайн EBCDIC также стал источником множества шуток. Одна из таких шуток, найденная в файле состояний Unix 4.3BSD Reno (1990) [23], гласила:

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

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

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

В 2021 году стало известно, что бельгийский банк все еще использовал EBCDIC внутри компании в 2019 году. Это привлекло внимание, поскольку клиент настоял на том, чтобы правильное написание его фамилии включало умлаут , который банк пропустил. Клиент подал жалобу, сославшись на гарантию в Общем регламенте защиты данных права на своевременное «исправление неточных персональных данных». Банк частично утверждал, что не мог выполнить требования, поскольку его компьютерная система была совместима только с EBCDIC, который не поддерживает умлауты. Апелляционный суд вынес решение в пользу заказчика. [24] [25]

Смотрите также

Рекомендации

  1. ^ аб Маккензи, Чарльз Э. (1980). Наборы кодированных символов, история и развитие (PDF) . Серия системного программирования (1-е изд.). ISBN издательства Addison-Wesley Publishing Company, Inc.  0-201-14460-3. LCCN  77-90165 . Проверено 6 апреля 2022 г.
  2. ^ Донован, Джон Дж. (1972). Системное программирование . п. 65. ИСБН 0-07-085175-1.
  3. ^ аб Бемер, Боб . «EBCDIC и P-Bit (самая большая компьютерная глупость за всю историю) - краткие обзоры истории компьютеров». Архивировано из оригинала 13 мая 2018 г. Проверено 2 июля 2013 г. ...но их принтеры и перфораторы не были готовы обрабатывать ASCII, и IBM просто ДОЛЖНА была объявить об этом.
  4. ^ "Коды перфокарт Дуга Джонса" . homepage.cs.uiowa.edu . Проверено 14 января 2023 г.
  5. ^ "X3.4-1963". 1963. с. 4.(Примечание. В последний подкомитет ASA X3.2, состоящий из 21 члена, у IBM было четыре сотрудника.)
  6. ^ IBMnt (2008). «IBM подтверждает использование EBCDIC в своих мэйнфреймах в качестве практики по умолчанию». Архивировано из оригинала 3 января 2013 г. Проверено 16 июня 2008 г.
  7. ^ «Обоснование международного стандарта – Языки программирования – C» (PDF) . Версия 5.10. Апрель 2003 г. § MSE.4: Поддержка инварианта ISO/IEC 646. Архивировано (PDF) из оригинала 06 июня 2016 г. Проверено 24 ноября 2022 г.
  8. ^ Справочное руководство PDP-10, Книга 2: Сборка исходной программы (PDF) . Корпорация цифрового оборудования . п. 221.
  9. ^ «Инвариантный набор символов». Центр знаний IBM . 14 августа 2018 г.
  10. ^ abc Умамахесваран, В.С. (1999-11-08). «3.3 Шаг 2: Преобразование байтов». UTF-EBCDIC . Консорциум Юникод . Технический отчет Unicode № 16. 64 управляющих символа... символ ASCII DELETE (U+007F)... отображаются в соответствии с соглашениями EBCDIC, как определено в архитектуре представления символьных данных IBM, CDRA, за одним исключением - сочетание перевода строки EBCDIC и новой строки. управляющие символы заменяются из пар CDRA по умолчанию на управляющие символы перевода строки (U+000A) и следующей строки (U+0085) ISO/IEC 6429.
  11. ^ Аб Стил, Шон (24 апреля 1996 г.). «cp037_IBMUSCanada в таблицу Юникода». Консорциум Microsoft / Unicode .
  12. ^ Хенингер, Энди (15 февраля 2019 г.). «NL: Следующая линия (A) (не настраивается)». Алгоритм разрыва строки в Юникоде . Редакция 43. Консорциум Unicode . Стандартное приложение Unicode № 14.
  13. ^ ISO/TC 46 (1 февраля 1986 г.). Дополнительные функции контроля библиографического использования в соответствии с международным стандартом ISO 6630 (PDF) . ITSCJ/ IPSJ . ИСО-ИК -124.{{citation}}: CS1 maint: numeric names: authors list (link)
  14. ^ Международный реестр ISO/IEC наборов кодированных символов, которые будут использоваться с escape-последовательностями (PDF) , ITSCJ/ IPSJ , ISO-IR
  15. ^ ISO/IEC JTC 1/SC 2 (2017). «12.4: Идентификация набора функций управления». Информационные технологии - Универсальный набор кодированных символов (UCS) (5-е изд.). ИСО . стр. 19–20. ISO/IEC 10646. Для других наборов C0 или C1 последний октет F должен быть получен из Международного реестра наборов кодированных символов.... Если такая escape-последовательность появляется в последовательности кодовой единицы, соответствующей настоящему международному стандарту, она должна быть дополнено в соответствии с пунктом 11.{{citation}}: CS1 maint: numeric names: authors list (link)
  16. ^ Консорциум Unicode (2019). «23.1: Коды управления». Стандарт Юникод (PDF) (изд. 12.0.0). стр. 868–870. ISBN 978-1-936213-22-1.
  17. ^ abcd «Приложение G-1. Определения управляющих символов EBCDIC». Архитектура представления символьных данных . Корпорация IBM . Архивировано из оригинала 11 сентября 2018 г.
  18. ^ abcdefghij ГОСТ (1993). "Информационная технология. Наборы 8-битных кодированных символов. Двойной код обработки информации" [Информационные технологии. 8-битные кодированные наборы символов. Двоичный код обработки информации. ГОСТ 19768-93.
  19. ^ IBM . «Архитектура представления символьных данных (CDRA)». ИБМ . п. 327. Мнемоника управляющего символа начала значения в EBCDIC была изменена и теперь включает точку (.) в конце (SOS.). Это было сделано для того, чтобы отличить его от мнемоники SOS, используемой в ISO-8 для управляющего символа начала строки. Точка никоим образом не изменяет свойство элемента управления.
  20. ^ "iso8859.txt". Кермитский проект / Колумбийский университет .
  21. ^ Раймонд, Эрик С. (1997). «Словарь нового хакера». п. 310.
  22. Ссылки _ Файл жаргона . Архивировано из оригинала 13 мая 2018 г. Проверено 13 мая 2018 г.
  23. ^ 4.3BSD-Reno/share/games/fortune/fortunes
  24. ^ "Апелляционный суд Брюсселя - 2019/AR/1006 - GDPRhub" .
  25. ^ Иден, Теренс (25 октября 2021 г.). «EBCDIC несовместим с GDPR – блог Теренса Идена».

Внешние ссылки