моя жизнь в геологии - 2
Aug. 16th, 2020 03:07 pmЯ в этом не участвовал; мне было поручено дизайнить нашу собственную версию, считай, с нуля. Курочить написанную на ассемблере систему, работающую на голом железе, мне казалось чисто дикостью, и начальство (Леонид Григорьевич и Элвина Гургеновна) со мной почему-то было согласно.
Так что я занимался вот какой фигней:
- Выбирал язык программирования (в советском ГОСТе была должностная инструкция программисту, там первой строкой было - "программист выбирает язык программирования").
- Выбирал, ну... платформу. Точнее, операционную систему; рисовать хрень без ОС мне казалось совершенно нелепой идеей.
- Потихоньку интервьюировал кандидатов.
Кандидаты мне попадались больше женщины, а также евреи. Насчет евреев было все ясно: преследуемые категории людей идут в первую очередь; насчет же женщин - в те годы ни одному идиоту еще не приходила в голову идея, что женщины не могут программировать, программистами работали в-основном женщины, кроме как в разных "ящиках" (НИИ по производству средств убийства людей), где зарплаты были дикие, и мужики туда ломились, из того принципа, что пусть все сдохнут, а моя семья будет хорошо кушать. Моя семья тоже хотела кушать, но у меня перед глазами стояли пять принципов ахимсы. Да мы и не голодали вообще-то. В отличие от нашей соседки Любы, с двумя "гавриками" и мужем в тюрьме. Конечно, сосед через стенку, который работал приемщиком стеклотары, на меня смотрел свысока, мол, ты чо, к тебе друзья придут, ты не можешь выложить 200 р на водку? (Нет, не могу, а разве это надо?)
Ну и так постепенно подбиралась вполне интеллигентная группировка. Нина Владимировна тоже к нам просилась, но я ее так и не взял; при всем моем к ней уважении, мне нужны были люди, которые будут пахать (ну типа). Людмила Павловна попросилась было, но передумала; Людмила Павловна любила говаривать, мол, ох, я на работу приду - и отдыхаю, а дома сплошная готовка, стирка, глажка, уборка, дети... Дети, да. У Людмилы Павловны сын потом стал "новым русским" - так хоть бы какое спасибо ей сказал. Ну это принято было у "новых русских", у кого в душе есть благодарность, из того уж "нового русского" не получится.
А так хорошо было. Наталья Ивановна, Валентина Юрьевна, Ольга Валериановна, Гриша Б., Саша Ц... Кстати, Ольга Валериановна была моя жена. В геологической промышленности это разрешается, чтоб супруги работали в одной команде, и даже чтобы один был начальником другого.
Насчет языка - я выбрал такой, с которым уже был хорошо знаком: фортран. Точнее, Фортран-4, он присутствовал на ДОС РВ. ДОС РВ - это "дисковая операционная система реального времени". Да; no shit, preemptive interrupts, смена задач, своп, резидентные программы, транзитные (или как их) программы; мультитерминальность (ну, это мы уже сами насобачили).
Проблемы были с драйверами. Весь этот софт был не совсем цельнотянутый: хардвер был северодонецкий, и к ним нужны были драйвера. Все драйвера были написаны в Северодонецке одной левой; программистку звали Ольга Хурхулу. Потом ее забрали в кремлевскую спецбольницу, поддерживать тамошний софтвер - тут-то на кремлевских вождей и напал мор. Так что мы ей должны быть благодарны, если бы не она, Товарищ Брежнев еще бы лет десять прожил. Представляете, Брежнев дохнет в 1992-м; потом Андропов в 93-м, потом Черненко в 94-м... да нунах, уж лучше так.
Но нам надо было не помирать (цитируя известную поговорку японских заключенных в Минидоке), а работать. Так что я все драйвера починил, и драйвер диска, и драйвер терминала, и какие там еще, забыл уже. Драйвер терминала особенно; там если у тебя строка нечетной длины, то записывается в память неправильно. У каждого драйвера была таблица, где 4 слова были отведены под состояние; ну вот я на этой херне устроил стек состояний; эффективно получилось, ничо так.
Еще были разные вопросы принципа, а также жизни и смерти системы:
- message queue;
- common memory;
- live backup (так чтобы если на буровой вырубили свет (что случалось каждый день), то мы бы не теряли статус, а все программы знали б, где находятся;
- transaction rollback;
- pseudographics on the terminal - нормально так графики рисовали, художественно;
- хороший алгоритм сглаживания и детектирования событий;
- архитектура всей системы вообще (спизжено у Дийскстры, с его THE system);
- логгинг;
- слежение за событиями (вроде триггеров, по-нынешнему);
- приличная библиотека для работы со строками (ну чо, не впервой было);
- среда разработки;
- бекап (до гита оставалось четверть века);
- руководство по стилю программирования.
Чего тогда не было: никаких кюеев (их роль играли "технологи"); никаких тестов (их роль играли "технологи").
Да и бекап тоже... сначала у нас не было бекапа. И однажды оторвался проводочек у дисковода. Проводочек оторвался - значит, этот бит будет 1 при каждой записи.
Ну что ж. Бинарники-то нам не жалко, а вот сорсы - хуже. Сорсы пропали нах. В смысле, старший бит был взведен везде.
Ну и тут я озверел, сказал, все, ребята, никто ничего не делает, пока я не нарисую бекап. Сел и провел 24 часа в машинном зале, написал бекап, на ленты (ну и там сопровождающие технологии). После чего мы дружным коллективом восстановили наш код. Там главное было найти, где старший бит мог оставаться единицей (это в русских буквах).
Ну вот; это была техническая, софтверная часть.