Симлинки в "Дубне"

11 views
Skip to first unread message

Leo B.

unread,
Jul 19, 2025, 12:48:58 PMJul 19
to БЭСМ-6
Типичная ситуация: в организации установлено несколько версий некоторого развивающегося продукта.
Желательно, чтобы пользователям не нужно было знать, какая из установленных версий на этой неделе "текущая" и где она находится, а она вызывалась бы по умолчанию просто по имени продукта, и чтобы процесс смены текущей версии делался с минимальными затратами труда.

Сегодня это делается с помощью символических ссылок, а вот как это делалось 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

Reply all
Reply to author
Forward
0 new messages