Симлинки в "Дубне"
Jul. 19th, 2025 08:50 amТипичная ситуация: в организации установлено несколько версий некоторого развивающегося продукта.
Желательно, чтобы пользователям не нужно было знать, какая из установленных версий на этой неделе "текущая" и где она находится, а она вызывалась бы по умолчанию просто по имени продукта, и чтобы процесс смены текущей версии делался с минимальными затратами труда.
Сегодня это делается с помощью символических ссылок, а вот как это делалось 45 лет назад:
В каталоге стандартных оверлеев Монитора-80 видим цельный компилятор Форекс
который, будучи вызван с помощью *FOREX, печатает
F О R Е Х ИПМ АН СССР ВЕРСИЯ 2.02 ОТ 15.07.80
и работает.
Также в каталоге видим
(подозрительно короткий) и в дампе диска можно увидеть, что оверлей с этим именем вызывается по управляющей карте *FORX3.
Однако (в режиме *SYSTEM LOAD LIST),
Постойте-ка, как это он отсутствует, когда вот он только что нашёлся и загрузился в 01770? Да точно так же, как сейчас, когда симлинк битый, он в выдаче ls (без -l) виден как файл, а при попытке обратиться к нему получается No such file or directory.
Вот как это работало:
Короткая программка длиной 136₈ слов, когда грузится как оверлей, видит в памяти лист с содержимым каталога оверлеев, из которого она загрузилась, ищет в этом каталоге вхождение имени вида LBnnzzzz, читает зону nnzzzz в лист каталога оверлеев, берёт своё имя из своего заголовка оверлея и идёт снова в загрузчик.
Содержимое фиктивного оверлея LBnuzzzz непринципиально, он никогда не загружается.
Тут же видно, что образ Монитора-80, который достался организации К-71, дрался в другой организации с какого-то 29-мегабайтного диска (зоны 4010₈ на обычном 7.25-Мб диске не бывает). Форекс 3 у нас есть, например, на образе диска 2048 из ИТМиВТ (2148), откуда его надо было вызывать с помощью *TRANS:FOREX3*,,nu1550 (кто ж это упомнит, особенно две запятые подряд).
Корректируем симлинк: закажем в паспорте ДИС 31(2148), правим на диске 2048 ровно одно слово (LB304010 на LB311550), и voilà:
Желательно, чтобы пользователям не нужно было знать, какая из установленных версий на этой неделе "текущая" и где она находится, а она вызывалась бы по умолчанию просто по имени продукта, и чтобы процесс смены текущей версии делался с минимальными затратами труда.
Сегодня это делается с помощью символических ссылок, а вот как это делалось 45 лет назад:
В каталоге стандартных оверлеев Монитора-80 видим цельный компилятор Форекс
FОRЕХ* 60 0044 03 20664 01770
LО*SУN 60 0046 03 33466 22654
LО*GЕN 60 0062 35 33712 22654
который, будучи вызван с помощью *FOREX, печатает
F О R Е Х ИПМ АН СССР ВЕРСИЯ 2.02 ОТ 15.07.80
и работает.
Также в каталоге видим
FОRЕХ3* 60 0152 17 00136 01770
LВ304010 60 0152 22 00011 02126
(подозрительно короткий) и в дампе диска можно увидеть, что оверлей с этим именем вызывается по управляющей карте *FORX3.
Однако (в режиме *SYSTEM LOAD LIST),
*FОRХ3
FОRЕХ3* 01770
ОТСУТСТВУЕТ FОRЕХ3*
СВОБОД 01770
Постойте-ка, как это он отсутствует, когда вот он только что нашёлся и загрузился в 01770? Да точно так же, как сейчас, когда симлинк битый, он в выдаче ls (без -l) виден как файл, а при попытке обратиться к нему получается No such file or directory.
Вот как это работало:
Короткая программка длиной 136₈ слов, когда грузится как оверлей, видит в памяти лист с содержимым каталога оверлеев, из которого она загрузилась, ищет в этом каталоге вхождение имени вида LBnnzzzz, читает зону nnzzzz в лист каталога оверлеев, берёт своё имя из своего заголовка оверлея и идёт снова в загрузчик.
Содержимое фиктивного оверлея LBnuzzzz непринципиально, он никогда не загружается.
Тут же видно, что образ Монитора-80, который достался организации К-71, дрался в другой организации с какого-то 29-мегабайтного диска (зоны 4010₈ на обычном 7.25-Мб диске не бывает). Форекс 3 у нас есть, например, на образе диска 2048 из ИТМиВТ (2148), откуда его надо было вызывать с помощью *TRANS:FOREX3*,,nu1550 (кто ж это упомнит, особенно две запятые подряд).
Корректируем симлинк: закажем в паспорте ДИС 31(2148), правим на диске 2048 ровно одно слово (LB304010 на LB311550), и voilà:
*FОRХ3
FОRЕХ3* 01770
FОRЕХ3* 01770
19.07.25 М1
LО*SУN 31561
LО*GЕN 31561
F О R Е Х ИПМ АН СССР 4.12 ОТ 25.06.85 ВРЕМЯ: 00.00
no subject
Date: 2025-07-19 06:38 pm (UTC)no subject
Date: 2025-07-19 10:31 pm (UTC)