Русский
Русский
English
Статистика
Реклама

Билет без некоторых русских букв

Не так давно на Баше промелькнуло занятное открытие: в недрах системы бронирования ж/д билетов, оказывается, есть не все русские буквы. История вызвала массу домыслов в Тви, причём выдвинуты самые разные версии: от непрофессионализма инженеров РЖД до откровенной конспирологии. Всё проще, дело в истории железных дорог и советских компьютеров.

Всё началось в XIX веке

Первый проект по автоматизации сбора и обработки данных в серьёзных масштабах перепись населения США в 1890. Для фиксации данных была взята проверенная технология, придуманная для ткацких станков представление узора с помощью пробивки отверстий в картонных карточках. Так появились перфокарты, на них пробивались промежуточные результаты по округам, которые затем суммировались.

Перфокарты как стандарт хранения данных окончательно устаканились к концу 1920-х, стандартом стал формат IBM: 80 колонок по 12 отверстий. Тогда перфокарты применяли только для хранения и обработки числовых данных, о тексте речь не шла. Принцип был простой: каждая колонка одна цифра. Дополнительные 2 отверстия в каждой колонке служили для указания на промежуточный результат.

С появлением первых ЭВМ общего назначения стало необходимо как-то записывать на перфокарты и текст. В начале 50-х годов во время разработки IBM 701 первого коммерчески доступного компьютера была придумана довольно оригинальная кодировка текста специально для перфокарт, BCDIC, в дальнейшем расширенная до EBCDIC. Эта кодировка не имеет ничего общего со всем известной и ставшей мировым стандартом кодировкой ASCII, там не менее EBCDIC до сих пор используется в мейнфреймах IBM.

Конечно, никакой кириллицы в этой кодировке не было.

Кириллица

В СССР с 50-х годов ХХ века использовался тот же стандарт перфокарт IBM (8012), но вот кодировка символов, и даже направление записи, отличались. В стандарте IBM буквы, как и цифры, записывались поколонно, а в стандарте УПП (Устройство Подготовки Перфокарт) построчно, причем на каждый символ отводилось 8 отверстий, хотя фактически для данных из них использовалось только 7.

Более того, кодировка символов алфавита для УПП не соответствовала кодировке символов ВКД, принятой в первых советских ЭВМ (Урал и БЭСМ).

Из книги Алгоритмический язык ФОРТРАН, В.Я. Карпов, 1974 годИз книги Алгоритмический язык ФОРТРАН, В.Я. Карпов, 1974 год

Телеграф

На всё это разнообразие накладывался ещё два исторических фактора телеграф и телетайп.

Исторически телеграфные линии строились параллельно железным дорогам, и, конечно, железная дорога изначально была основным заказчиком и пользователем телеграфа. К началу XX столетия телеграфный аппарат был практически на каждой станции железных дорог Российской империи.

Телеграф тех времён использовал код Морзе сочетание точек и тире. Читать точки-тире и переводить их в буквы очень неудобно, поэтому довольно скоро появилось новое устройство, телетайп, представляющее из себя электромеханическую печатную машинку, передающую и принимающую данные по уже имеющимся телеграфным линиям.

Телетайп использовал свою кодировку, пятиразрядный код Бодо/Мюррея, который был стандартизирован, в том числе и в СССР, к началу 30-х годов. Для кодировки кириллицы использовались расширения кода Бодо/Мюррея, называемые регистрами.

Как азбука Морзе, так и код Бодо не включали в себя маленькие, строчные буквы. Весь текст передавался только заглавными.

К началу 50-х телетайпы, как и телеграфные аппараты за полвека до этого, были почти на каждой ж/д станции СССР, и часто не в единственном экземпляре.

Телетайп, ЭВМ и железные дороги

На железных дорогах телетайп применялся очень активно для диспетчеризации и координации поездов и грузов в них. Было сформировано несколько отраслевых стандартов кодирования данных о составах, о пунктах назначения и остановках, о тоннаже, грузах и тп. Многие из этих стандартов действуют до сих пор.

Примерно к середине 50-х стало понятно, что если к телетайпу прикрутить компьютер, то можно существенно оптимизировать движение грузовых составов, поэтому железные дороги стали одним из первых пользователей советских ЭВМ. Эксперименты по применению ЭВМ на ж/д начались в конце 40-х в самом деле, примерно в то же время, когда компьютеры только начали использоваться для расчётов в оборонке.

Важно понимать, что никаких мониторов в то время в составе ЭВМ не было в помине, данные в основном вводились через перфоленты или перфокарты, или напрямую с телеграфной линии, а результаты расчётов печатались на бумагу или выбивались на перфокартах.

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

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

К середине 60-х телетайпов на ж/д станциях было несколько тысяч, если не десятков тысяч, но буквы в этих принтерах были только заглавные, а прошивка, преобразующая коды в буквы, была механическая. Обновить такую механическую прошивку для изменения кодировки не было никакой возможности, для этого надо было физически заменять устройство.

Пассажирские перевозки

Первые эксперименты по созданию сети продажи ж/д билетов начались в начале 60-х было принято решение попытаться автоматизировать билетные кассы Московского узла железных дорог. По косвенной информации, путём интриг и использования родственных связей разработка была передана аж в Ереван (Армения) и за основу была взята ЭВМ Раздан-3.

Так появилась система Маршрут-1, которая, после примерно пятилетней отладки, начала обслуживать кассы Киевского вокзала. После введения в эксплуатацию систему переименовали в АСУ Экспресс, так она и называется до сих пор.

Особенности разработки ЭВМ в СССР

Как и везде в мире, первые компьютеры в СССР строились для расчётов в оборонке. Проектированием занимались сразу несколько коллективов, практически никак друг с другом не сотрудничавших, причём не только из-за секретности, но и из-за административной конкуренции (это когда борьба не за рынки, а за благосклонность партийного руководства). Такой расклад привёл к появлению сразу нескольких не совместимых между собой ветвей развития ЭВМ.

Более того, в погоне за госпремиями и весьма ограниченными материальными и людскими ресурсами, коллективы разработчиков и их кураторы иногда устраивали настоящие межведомственные войны. Высшим пилотажем считалось протолкнуть ГОСТ, не совместимый с разработками конкурентов и перечёркивающий многолетние результаты их труда.

Это чрезвычайно тормозило прогресс в целом, и после смерти главного титана советского компьютеростроения академика Лебедева, под руководством которого была разработана линейка ЭВМ БЭСМ, в начале 70-х было принято антисоломоново решение: скопировать в СССР штатовскую IBM System/360. Просто чтобы навсегда пресечь разброд и шатание.

На основе архитектуры System/360 предполагалось создать целую линию компьютеров разной мощности. Всё получилось и эти компьютеры вошли в историю как Единая Серия Электронно-Вычислительных Машин ЕС ЭВМ.

Разумеется, ЭВМ производства IBM не понимала кириллицу, но что ещё хуже, и стандартная к тому моменту ASCII была для System/360 не родной. Как выше уже упоминалось, основной кодировкой System/360 была EBCDIC.

При клонировании архитектуры в эту кодировку добавили кириллицу, но за основу взяли принципы, применявшиеся ещё в кодировках БЭСМ ВКД и УПП: зачем добавлять кириллические символы, похожие на латиницу, давайте добавим только те, которых в латинице нет.

Так появилась кодировка ДКОИ, ставшая стандартом для серии ЕС ЭВМ, а позже и весьма странным отраслевым ГОСТ-ом 19768-74.

Экспресс-2

АСУ Экспресс-1, в целом, была устаревшей и плохо масштабируемой с момента внедрения, поэтому после начала производства машин Единой Серии было принято решение переделать всё на ЕС ЭВМ. На основе этих машин была спроектирована и введена в эксплуатацию в начале 80-х АСУ Экспресс-2.

Понятно, что ради встраивания системы автоматизированных продаж билетов никто не собирался менять устоявшуюся кодировку имеющихся на ж/д телетайпов для этого надо было поменять сами телетайпы. То-есть в системе остались только цифры, знаки препинания и заглавные буквы, которые в телетайпах были почти все. Но вот зато в EBCDIC/ДКОИ они были не все, и поэтому в Экспресс-2 оставили только заглавные за вычетом русских букв А, В, Е, К, М, Н, О, Р, С, Т и Х, потому что их просто не было в ДКОИ. Конечному то пользователю билета совершенно всё равно, напечатана, скажем, буква М латиницей или кириллицей они визуально совершенно одинаковы.

Экспресс-3

С увеличением объёмов ж/д перевозок системы Экспресс-2 стало не хватать уже к концу 80-х, но в 1991 произошел распад СССР и стало не до этого. К вопросу вернулись только к концу 90-х.

Источник https://bit.ly/38VKEqzИсточник https://bit.ly/38VKEqz

К тому моменту сколь-нибудь серьёзных компьютеров производства РФ не существовало в природе, поэтому следующую версию стали делать на мейнфреймах IBM, просто чтобы всё не переписывать и внедрять поэтапно, соединяя новые узлы системы со старыми, на ЕС ЭВМ.

Вероятно, в новую систему мигрировало часть старого кода, в т.ч. сообщения об ошибках, записанные в кодировке только из заглавных букв с пропусками в кириллице.

Судя по всему, они там остались до сих пор, и именно на них и наткнулись разработчики, запостившие своё открытие на Башорг.

И, скорее всего, именно поэтому билеты в кассах РЖД до сих пор печатаются только заглавными.

Источник: habr.com
К списку статей
Опубликовано: 18.03.2021 22:21:23
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

История it

Ржд

Телетайп

Ebcdic

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru