Обновление shared image на странице RTEM.
Поправлен косяк в KMON который обрушивает систему при попытке выгрузить foreground job.
Проблема сама по себе не относится к RTEM, просто дошли руки поковырять...
DEC немного перемудрил.
При выгрузке FG job, KMON пытается отменить назначения ему устройств в личное пользование.
При этом тупо сканится таблица $OWNER без всяких проверок загружен драйвер или нет.
Для простого драйвера такой способ работает - просто лишняя работа получается, а для драйвера с поддержкой 64 устройств используется дополнительная таблица которой не существует если драйвер не загружен в память (или, к слову, если драйвер при загрузке сам не сделал на нее ссылку). Как результат - вместо таблицы под раздачу попадают вектора устройств.

Код:
OINST   MOV     .$OWNER,R0,*    ;Start at the beginning of the $OWNER table
        MOV     #<$SLOT>,R2     ;Get number of device slots for loop count
10$:
  .IF NE UNI$64
        CMP     @R0,#<OWN.EX>   ;Is this an extended unit entry?
        BNE     20$             ;No
        MOV     #<32.>,R5       ;R5 = # bytes to check (extended ownership)
        MOV     R0,-(SP)        ;Save R0 pointer into real $OWNER table
        MOV     2(R0),R0        ;Point to the extended ownership table
        CALL    40$             ;Clean out the extended ownership table
        MOV     (SP)+,R0        ;Restore R0
        CMP     (R0)+,(R0)+     ;Point R0 at next entry
        BR      30$             ;And move onto next entry
Я не стал возиться с проверкой что драйвер загружен - просто добавил проверку что расширенной таблицы нет.

Теперь все выглядит так:
Код:
.FR FJTST
F>
*** EXIT ***
B>


.UNL F

.
А было так:
Код:
.FR FJTST
F>
*** EXIT ***
B>


.UNL F
02:56:13  Task "RTET55" terminated
          SST abort. Bad stack
          R0=110234
          R1=000000
          R2=000000
          R3=000003
          R4=140006
          R5=137600
          SP=177764
          PC=140476
          PS=170005
>
Ну и понятно, что проблема проявляется только в системах, собранных с расшиненными унитами и таблицей $OWNER. Если в такой системе загрузить в память драйверы которые поддерживают расширенные номера (обычно это LD и DU), то проблема тоже не проявляется.