Последний раз редактировалось form; 18.07.2017 в 06:01.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Да, именно так и организовано - код аппаратного загрузчика один, а в него добавляется драйвер BOOT/SAVE для конкретного контроллера.
В отличие от RT-11, загрузчик здесь не имеет никакого понятия о файловой системе - он просто знает где на диске лежит (место не фиксировано) образ сохраненной системы и каков ее размер, считывает этот образ в пямть, начиная с адреса 0 и передает управление в то самое место где программа SAV закончила сохранение этого самого образа из памяти. Далее уже программа SAV разбирается с настройкой свежезагруженной системы и запуском стартового файла. Таким образом программу SAV в этом месте можно считать некоторым аналогом BSTRAP в RT-11 с той только разницей, что система (со всеми драйверами, их настройками, фиксированными и/или запущенными на момент сохранения программами итд) тут изначально загружена в память еще аппаратным загрузчиком.
Сейчас подобное называется hybernate
Кстати именно из-за такой организации довольно трудно сделать драйвер SAVE/BOOT для УКНЦ-шного WD - там невозможна работа без прерываний, а стек использовать нельзя: мы оперируем со всей памятью в момент загрузки. Была мысль включить стек в область драйвера загрузки и подставлять его, но руки не дошли попробовать - слишком невелика отдача от RSX без MMU
Последний раз редактировалось form; 18.07.2017 в 06:40.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Так это же страшно! А вдруг что-то побилось? Вон, 8-я винда тоже вместо нормального выключения закрывает все задачи и хибернейтится, а потом, когда включаешь комп, поднимается из этого хибернейта, что преподносится, как "быстрая загрузка". Но тут хоть, поняв по неадекватному поведению системы, что что-то побилось, делаешь перезагрузку и она долго-долго загружается "с нуля". А как с этим у RSX ?
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Ничего побиться не может при правильном использовании. В RSX (в отличие от windows) нельзя тупо сохраниться со всем, что после загрузки невозможно восстановить - нужно выполнить некоторые требования, гарантирующие целостность: не должно быть открытых файлов, установленных программ не с системного устройства LB:, не должно быть активных файлов выгрузки, монтированных файловых систем (кроме системного диска) и тд. Далее, номера блоков установленных задач в момент сохранения заменяются на idы файлов, а при загрузке восстанавливаются. Таким образом система, будучи скопирована с диска на диск стандартными программами backup (BRU, DSC итд), останется работоспособной несмотря на то, что файлы будут перемещены на новые места (как к примеру поведет себя захыберначенный виндовс если диск подключить к другой системе и сделать его дефрагментацию, а потом попытаться с него разхыбернатиться?). При этом можно копировать систему на диск другого контроллера - драйвер в аппаратном загрузчике автоматом поменяется на нужный (главное чтобы в сохраненной системе был загружен соотвутствующий I/O драйвер [что можно сделать и вручную прямо на образе]).
Пока что такая система не давала сбоев
Разумеется, все можно попортить вручную - например скопировать систему пофайлово с диска на диск с помощью PIP - в этом случае чтобы она могла грузиться, придется пересоздать образ системы, с помощью программы VMR создать в нем разделы, загрузить в него драйвера, установить задачи, настроить что нужно итд, после чего загрузить этот образ напрямую и сохранить с записью аппаратного загрузчика.
Последний раз редактировалось form; 18.07.2017 в 07:48.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Как гласит следствие одного из законов Мэрфи (или Чизхолма, не помню точно, это который "Все, что может испортиться - портится") "Все, что не может испортиться, портится тоже!" Просто не так часто...
А вообще, как изящно решены все эти вопросы в RT-11 - никто и близко рядом не стоял, все нервно курят в сторонке. Ну, кроме хибернейта, который для такой малой системы был даром не нужен...
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Я бы сказал, что оно в той или иной степени не изящности не решено нигде. И чем сложней файловая система - тем сильней не изящно. Проблема в небольшом размере сектора, где размещается самый начальный загрузчик. Отсюда - или впихивание в boot-rom или (полу-)скрытые сектора, где остаток загрузчика или что то ещё.
А насчёт способа RSX - то, что там делается, строго говоря - назвать гибернацией нельзя - слишком много чего не должно быть (типа открытых файлов) - система, скажем так, в состоянии почти нулевой активности. Ну и обычный вариант создания аппаратно-загружаемой системы - две друг за друг идущих команды
BOO [1,54]RSX11M.SYS
...
SAV /WB
Как сказал уважаемый Form - сделать загружаемую систему не загружаемой достаточно просто - но нужно явно выраженное намерение
Последний раз редактировалось Hunta; 18.07.2017 в 10:14.
Однако, для УК-НЦ придумали же вариант загрузки через SLEPOK.SAV -подробности
вот только глючит он с некоторыми задачами (программами), запускаешь то, что при обычной загрузке 100% работает, а под слепком бац и получаешь вылет, двойное зависание или трап ту 4 какой-нибудь. Но всё равно слепком пользовались (в школах 100%), поскольку запуск системы
с дискеты с исп. слепка очень быстрый и позволяет так-же сразу создать группу команд (аналог STARTS.COM) для выполнения в первую очередь. Допустим, если на момент создания слепка в памяти был SL.SYS то при перезагрузке SL.SYS в памяти не восстанавливается, можно включить в группу команд SE SL ON, ну и т.п. Я в 90 слепок игнорировал всегда (мне 1 раз кто то из авторитетных для меня системщиков сказал - слепок = зло!), но в UKNCBTL я с ним поэкспериментировал (в теме софта УК-НЦ я делал отчёт и даже образ системы выкладывал для желающих побаловаться).[свернуть]
Последний раз редактировалось hobot; 19.07.2017 в 12:13.
RSX11M.SYS - лишнее
- - - Добавлено - - -
Тем не менее, система в данном случае является просто образом памяти, а это уже вполне себе гибернация. Все активные задачи - активны, да и сам SAV собственно - первейшее подтверждение
Есть даже такая ошибка SAV - task active in another system - task removed
Правда это только для 11M про который понемногу забываю как про страшный сон да абсолютно дыряво-защищенной системы эталон
- - - Добавлено - - -
Верно и обратное - что не может - не портится
- - - Добавлено - - -
Если точнее, то сначала нужен PIP RSX11M.SYS/BL:1026.=RSX11M.TSK (498 для 11M), потом INS $VMR (инсталить его по умолчанию в системе - смерть, равно как и BRU к примеру), ASN SY:=LB:, VMR @SYSVMR, ну а уж потом можно и BOO его
- - - Добавлено - - -
За изящность нужно платить - например тем, что у RT-11 в случае сбоя питания два варианта: молча рухнуть или после восстановления питания написать о том, что система рухнула из-за сбоя питания, а уже потом рухнуть
RSX же вполне себе оживает после сбоя питания, длившегося любое время, и продожает работать как ни в чем ни бывало
...ну или тем, что при наличии около 4Mb свободной памяти нельзя запустить прогу из-за нехватки свободной памяти (разумеется, речь о системе с поддержкой XM)
...ну или тем, что даже виртуальная прога в XM вполне себе успешно может обрушить систему даже не воспользовавшись системными вызовами, любезно предоставляемыми системой для этого
...или тем (плачь [именно так - с ь] программера), что нельзя изменить адрес возврата из подпрограммы завершения (CRTN в описании библиотек RT-11)
Последний раз редактировалось form; 19.07.2017 в 06:49.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Это если она была названа именно так, что как бэ не обязательно. Хотя в моём примере оно именно так, но я просто подчеркнул
Строго говоря - не активны, а запущены. Файлы открытые можно? А сигнал от системы, что она восстановлена из гибернации, активным задачам? В общем, если сравнивать с тем, что на писи называется гибернацией, то...
Я имел ввиду что, что оно уже сделано И кстати - 1026 и 498 - это тоже то, что генерит sysgen, но как и с RSX11M.SYS - может и не так быть
Последний раз редактировалось Hunta; 19.07.2017 в 09:41.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)