bash.im ithappens.me zadolba.li
8601

Оболочка повышенной неприкосновенности

Дело было в конце восьмидесятых. Учился я тогда в институте, и был у нас предмет «программирование». Работали на мейнфрейме то ли 1045, то ли 1061 в СВМ. В ней было организовано под сотню виртуальных машин, но студентов-то куда больше. Каждому на семестр выделялась виртуальная машина. Ей можно было пользоваться во время лабов, какое-то время выделялось по вечерам для подготовки отладки. На той же виртуальной машине в другое время работал другой студент.

В очередном семестре попался мне коллега чуть более продвинутый, чем остальные. Он знал, что можно для линковки и компиляции создавать командные файлы. Ну, чтоб не ручками каждый раз две строки в 50–60 символов набирать. Всё бы ничего, но в СВМ отчего-то приоритет был отдан не встроенным командам ОС, а командным файлам. Однажды по команде fl я получил не список файлов на своём виртуальном диске, а компиляцию чужой задачи. Не, можно, конечно, filelist — но это же долго, да и отвык я. Руки же сами пишут. Переименовываю fl во что-то там. Работаю. На следующий раз всё, конечно же, повторяется. Жалуюсь преподу — ему пофиг.

За неделю до следующих лаб решение было найдено и реализовано. Я сделал набор командных файлов, имена которых полностью повторяли набор команд ОС (полных и сокращённых). В принципе, почти все они делали простую вещь — тупо вызывали одноимённую системную команду с некоторыми доработками, а именно: из списка файлов выкусывали сами себя, не давали себя стирать/переименовывать/показывать/редактировать и пр.

Чудесным образом я прожил на своей ВМ до конца семестра. На консультации перед экзаменом я с удивлением узнал, что у меня пятёрка автоматом.

— Почему?
— Вы же сами знаете.
— А как вы догадались?
— Из четырёх пользователей ВМ вы один не подошли жаловаться на то, что система ведёт себя не так, как должна.