Коктейль Молотова для сына (СИ) - Леонов Дмитрий Николаевич
— Михаил, — представился он. — Я тут вроде начальника ВЦ — это если по-старому. А по-новому — сисадмин. Давай паспорт, пойдём в бюро пропусков пропуск тебе делать.
По дороге Михаил стал вводить нового практиканта в курс дела.
— Я сам тут второй год работаю. Представляешь, у них математические модели до сих пор на ЕСке крутятся. А я взялся перевести это дело на персоналки. А то у ЕСки производительность меньше, чем у смартфона.
— А чего раньше это не сделали? — спросил Лёха.
— Да никто за это браться не хотел, им проще было ЕСку поддерживать в рабочем состоянии. Ведь эти модели годами совершенствовались. Изделие полетело, параметры сняли — в модели подправили. А если перенести модель на другую платформу, ещё неизвестно — будет ли она корректно работать, надо заново поверять.
— И как же это на персоналки переводить? — не понял Лёха.
— Вот это как раз самое простое, — объяснил Михаил. — Модель написана на языке высокого уровня, на Фортране. Для персоналок существуют эмуляторы OS/360 и трансляторы Фортрана. Так что перенести — вообще никаких проблем. Самое трудоёмкое — поверить получившуюся модель. То есть поступаем так — переносим софт на персоналки, а ЕСку сохраняем, а потом сравниваем работу модели на персоналке и ЕСке. Если совпадают — хорошо, не совпадают — корректируем.
— Скажите, а у вас тут есть устройство ввода с перфокарт? — наконец Лёха задал мучивший его вопрос.
— Конечно, есть! — обрадовал его Михаил. — И давай на «ты» — вроде почти ровесники.
Наконец все формальности были улажены, и Михаил повёл Лёху в машинный зал. Лёха с уважением смотрел на обшарпанную консоль управления ЕСки — машину явно сделали ещё до его рождения.
— Так чего ты там про перфокарты спрашивал? — окликнул его Михаил.
— Да мне там надо программу с перфокарт считать, — объяснил Лёха.
— Какие проблемы? Неси — считаем.
— Вот в этом-то и проблема. Там этих перфокарт примерно полтонны.
— Да, действительно проблема, — Михаил задумался. — Давай вот так попробуем.
Он вышел в соседнюю комнату и вернулся с небольшим металлическим ящиком.
— Это портативный считыватель. Подключается к последовательному порту, вот тут на дискетке программа, которая с ним работает. Тебе недели хватит?
— Не знаю, — смутился Лёха. — Как пойдёт.
— Короче — забирай, введёшь — принесёшь назад.
— А вахта?
— Если у них будут вопросы — пусть мне позвонят.
Ближе к вечеру Лёха взял портативный считыватель под мышку и отправился к проходной. Вахтёр лениво выглянул из-за стекла.
— Что несём?
— Прибор на полевые испытания.
— А разрешение на вынос есть?
— Конечно же! — уверенно заявил Лёха.
— Тогда проходи.
Звонить Михаилу не потребовалось.
Всю ночь Лёха подключал считыватель к компу. Заработало только к утру, но уже было пора уходить. Зато на практике Михаил показал, как на персоналке работает эмулятор среды OS/360.
— То есть один персональный компьютер, помещающийся на столе, может заменить весь этот машинный зал? — пришёл в восторг Лёха.
— А вот это нам ещё предстоит доказать, — дал осторожный ответ Михаил. — Понимаешь, вот мы берём математическую модель на языке высокого уровня, транслируем её в машинные коды, потом эти машинные коды будут исполняться не на реальном железе, а на программном эмуляторе. Формально всё должно работать — есть стандарты языка высокого уровня, программисты должны были их соблюдать. А на практике то, что нормально проходит на ЕСке, на эмуляторе выдаёт ошибку деления на ноль. Вот поэтому-то до сих пор было проще поддерживать в рабочем состоянии ЕСку, чем фактически заново переписывать математическую модель.
— Так поддерживали бы её и дальше, в чём проблема?
— А проблема в том, что уже весь запас запчастей к ЕСке закончился. Меня уже на радиорынке все в лицо знают — я у них там всё скупил, что у них к ЕСке было. Теперь приходится на свалку ездить.
— Что, серьёзно? — удивился Лёха. — Да, это не Америка!
— Думаешь, там у них по-другому? — просветил его Михаил. — Ты разве не слышал эту историю с их Шаттлом? Его проектировали ещё в начале 70-х, и многие вещи были сделаны на микропроцессоре Моторола-6800, причём, естественно, в милитари-исполнении, то есть в керамическом корпусе. И вот на дворе уже 21-й век, процессоры 6800 давным-давно не выпускаются, а весь софт написан именно под них, переделывать — это время и деньги. И пришлось инженерам НАСА шариться по помойкам и искать там старую мед. аппаратуру — туда в 70-е тоже ставили эти процессоры в керамических корпусах. А в каждом Шаттле таких процессоров много. Так что если хочешь — в выходные поехали со мной на свалку.
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-144', c: 4, b: 144})— Нет, у меня дела, — отказался Лёха. Только сейчас до него дошла серьёзность положения. Просто запустить программу от ЕСки на персоналке — это ещё полдела. Главное — надо быть уверенным в том, что она всё сосчитает правильно. Поэтому придётся действовать так, как говорит Михаил — запустить программу на ЕСке и на персоналке, а потом сравнивать результаты. Но его практика заканчивается через полтора месяца, а потом его уже сюда не пустят. А может, вообще ЭВМ к тому времени разберут. Надо торопиться!
Поэтому все выходные Лёха с утра до ночи занимался тем, что скармливал перфокарты портативному считывателю. Даже когда пришла Светка, он не оторвался от своего занятия, а заставил подругу аккуратно раскладывать стопки перфокарт по всей комнате. За этим занятием их застала Лёхина мать, заглянувшая в комнату.
— Вы чего тут затихли?
— Мы заняты, — ответил Лёха, засовывая в считыватель очередную колоду перфокарт. — Не мешай, а то мы всё перепутаем.
— У вас тут прямо целый вычислительный центр! — покачала головой мать.
Лёха не обратил на эти слова внимания, но Светка тут же проявила свою журналистскую хватку.
— Мария Тимофеевна, а вы работали в вычислительном центре?
— Так, имею общее представление, — смутилась мать. — Вы не голодные? Может, вам бутербродов сделать?
— Мам, давай потом, — отмахнулся Лёха.
К вечеру выходных они со Светкой перелопатили все коробки с перфокартами, в результате получилось пять мегабайт текста программы. Лёха скинул их на флешку, потом подумал и сделал ещё одну копию. Когда он убирал флешку в карман, Светка поразилась:
— И что, вся информация с этой кучи перфокарт уместилась на одну флешку?
Лёха покрутил руках флешку.
— На самом деле сюда в тысячу раз больше может поместиться.
5
В понедельник с утра Лёха с флешкой в руках подошёл к Михаилу.
— У меня тут одна программа для ЕСки есть. Можно её прогнать и посмотреть, что получится?
— На ЕСке только ночью — днём она занята, — ответил Михаил. — А на эмуляторе — сколько угодно. У тебя в каком виде — Фортран, Ассемблер?
— Если честно — я не разбираюсь, — признался Лёха. — Но в виде исходного текста.
Михаил подключил флешку и стал листать файлы.
— Вот это? Похоже на классический Фортран. Давно писали, последние годы подпрограммы по-другому оформляли. Это кто писал-то?
Лёха не хотел посвящать его во все подробности, надо было придумать какое-то объяснение.
— А это у меня мать раньше в вычислительном центре работала, вот её ностальгия замучила. Попробуй, говорит, запустить — может, заработает.
— Так она у тебя программист? — уважительно спросил Михаил.
— Да не… — растерялся Лёха. — Она это… Ну неважно, давно это было.
— Точно, давно, — согласился Михаил, продолжая листать на экране текст программы. — Тут вон в заголовке дата стоит — март 1969 года.
— Где?! — через его плечо Лёха заглянул в монитор. — Вот это? «CONT PROGLIB ####»? Это что такое?
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-145', c: 4, b: 145})— Управляющая перфокарта, — коротко пояснил Михаил. — Сейчас попробую скормить твою программу транслятору.
По экрану персонального компьютера побежали строки сообщений транслятора. Ждать пришлось минут пять.
— Ничего себе! — удивился Михаил. — Могучая программа! Обычно за несколько секунд проскакивает. Но вроде оттранслировалось без ошибок. Попробовать запустить?