Недавний пост на тему «Как прочитать 100 книг за год и добиться успеха в жизни» заставил меня вспомнить, какие книги действительно изменили мой взгляд на жизнь.
Ну да ладно, пусть даже не для жизни, но хотя бы для программирования, для начала.
И в то же время я вспомнил старую-старую книгу по стандартам программирования с заманчивым названием «Что мама никогда не говорила вам об обслуживании виртуальных машин».
Оригинальное название — «Что мама никогда не говорила вам о VM Service» Мелинды В.
Вариан.
Итак, минуточку, на дворе 1983 год. Только что появилась первая версия MS DOS. До появления CVS еще около 8 лет. Unix уже существует, но еще не получил широкого распространения (в Москве он появится в виде Demos примерно в 1986 году на машинах СМ-4).
Большинство компьютерных книг того времени сейчас безнадежно устарели.
Книга предназначалась для системных программистов — тех, кто обслуживал систему VM (также известную как CP 67, VM/370, VM/SP, VM/ESA и многие другие названия).
Казалось бы, может ли такая книга быть интересна нынешним администраторам (возможно, это как нельзя лучше соответствует той деятельности, которая тогда называлась системным программированием)? Посмотрим, судите сами.
Итак, книга посвящена тому, как генерировать ядро, применять обновления и исправления, полученные от IBM, делать резервные копии и многому другому.
Выходит, это еще возможно? Первое, что тогда изменило мои взгляды на программирование, — это то, как я вносил изменения в код ядра.
Сегодня мы бы назвали это патчем.
В принципе, утилита IEBUPDTE мне известна давно, еще со времен OS/360, и синтаксис из самих патчей для утилиты UPDATE в CMS был очень похож.
Разница заключалась в том, что сами патчи могли быть созданы с помощью текстового редактора XEDIT. Вместо изменения исходного файла он создавал патчи, которые затем применялись с помощью UPDATE. Сам процесс генерации ядра в упрощенном виде выглядел так: берём дистрибутив, состоящий из исходных текстов ядра на ассемблере S/370, скомпилированных объектных файлов (часть исходников не была предоставлена), макробиблиотек, наносим патчи на ядро по списку из так называемого CONTROL файла, далее ассемблер, компоновщик и запись ядра на диск.
Готовое ядро также включало в себя таблицу периферийных устройств, созданную системным программистом из макросов.
В принципе, ничего сложного.
Но сама идея о том, что можно получить две разные версии программы, применив два разных набора патчей, была совершенно новой для меня и большинства моих коллег.
Конечно, UPDATE (даже вместе с XEDIT) — это не Git. Более того, это даже не CVS. Это примерно соответствует возможностям RCS, которые, однако, появились примерно в то же время.
Но это было одно из первых применений управления версиями кода, с которым я столкнулся на практике.
Правила выживания системного программиста Вторая, более техническая часть книги содержала информацию о том, как на самом деле применять патчи, в том числе выпущенные независимо, к различным частям системы (поколение CMS имело некоторые особенности).
Опустим технические подробности и приведем лишь список правил, которым рекомендует следовать автор:
- НИКОГДА НЕ ИЗМЕНЯЙТЕ НИЧЕГО, ЧТО IBM ОТПРАВЛЯЕТ ВАМ — никогда не меняйте то, что было отправлено вам от IBM.
- ХРАНИТЕ СВОИ МАТЕРИАЛЫ ОТДЕЛЬНО ОТ IBM — храните свои файлы отдельно от файлов IBM.
- НЕ ОЖИДАЙТЕ, ЧТО ЭТО РАБОТАЕТ - не ожидайте, что это сработает
- ВСЕГДА ОСТАВЛЯЙТЕ СЛЕДЫ – оставляйте след перемен
- ПРОГРАММИСТЫ VM-СИСТЕМ ДЕЛАЮТ ЭТО ПОСТОЯННО — вы можете проверить новую систему в любое время.
- BACK IT UP – делать резервные копии
- BACK IT UP AGAIN — снова сделать резервную копию
- НЕ ДОВЕРЯЙТЕ DDR – не доверяйте DDR
- CHECK THE UNRESOLVED REFERENCES — проверить неразрешенные ссылки.
- PLAN ON BACKING IT OUT — планируйте резервное копирование и откат.
- ВЫ ИМЕЕТЕ ПРАВО НА ДОМАШНИЙ ТЕРМИНАЛ - вы имеете право на собственный (домашний) терминал.
- ИЗМЕНЯЙТЕ ТОЛЬКО ОДНУ вещь ЗА РАЗ – меняйте только одну вещь за раз.
- У ВАС НИКОГДА НЕ МОЖЕТ БЫТЬ СЛИШКОМ МНОГО S-ДИСКОВ Никогда не может быть слишком много S-дисков
Например, пятое правило означало, что вы могли протестировать свежесобранное ядро, загрузившись с него на виртуальной машине — т. е.
виртуальной машине не нужно было посвящать время реальной машины тестированию изменений — она могла размещать свои копии в качестве гостей, практически без ограничений по функциональности.
В восьмом правиле об утилите Disk Dump Restore говорилось, что не следует доверять как самим дампам, так и утилите, которая их создает и восстанавливает, особенно в условиях, когда лента может быть нечитабельна.
Наконец, правило 13 говорит о S-дисках системы CMS, согласно букве, которой этот диск был обозначен.
Имелось в виду, что вы можете иметь запасные копии CMS, в любом необходимом вам количестве, и их никогда не будет слишком много.
Остальные пункты очевидны без пояснений.
Делайте резервные копии системы перед изменениями, делайте их снова после них, храните свои изменения отдельно от дистрибутива, не меняйте сам дистрибутив, меняйте по одному - думаю, что сегодня на это подпишутся многие.
И уж тем более тогда для нашей команды системных программистов эта книга была обязательной к прочтению, причем практически настольной, наравне с обычной документацией по ВМ.
Кстати, эту книгу до сих пор рекомендуют на форумах системным программистам z/OS. Были даже планы выпустить новую, отражающую реалии VM/390. Дальше пересказывать не буду.
Если вас интересует история компьютеров, лучше прочитать ее самостоятельно.
Книга доступна в формате PDF в Интернете, на сайте Мелинды.
Сохранилось оригинальное форматирование, выполненное для существовавших на тот момент принтеров.
В нем около 120 страниц, и я надеюсь, что он будет интересен всем, кто интересуется историей компьютеров и операционных систем.
И, наконец, одно правило самовыживания, которое мы старались не нарушать: Не стоит генерировать систему, если уже вечер — велика вероятность, что вы останетесь на ночь, чтобы устранить последствия.
Наслаждайся чтением! Теги: #VM/SP CMS SVM #Системное программирование
-
Пять Историй О Лидерстве В Команде
19 Oct, 24 -
Вышла Новая Версия Apache Poi 3.8Beta4.
19 Oct, 24 -
Жизнь В Движении
19 Oct, 24 -
Вудикаст #03. В Стиле Подкаста =)
19 Oct, 24