Удаленная начальная загрузка программы - Remote Initial Program Load

Удаленная начальная загрузка программы (RIPL или РПЛ) - это протокол для запуска компьютера и загрузка его Операционная система из сервер через сеть. На таком сервере работает сетевая операционная система такие как LAN менеджер, LAN сервер, Windows NT Сервер, Novell NetWare, LANtastic, Солярис или Linux.[1]

RIPL похож на Среда выполнения предварительной загрузки (PXE), но он использует Novell NetWare на основе ботинок метод. Первоначально он был разработан IBM.

Сервер IBM LAN

IBM LAN Server позволяет клиентам (инициаторам запросов RIPL) загружать операционные системы. ДОС или OS / 2 через 802.2 /DLC -протокол от LAN (довольно часто Token Ring ). Поэтому сервер сравнивает запросы клиентов с записями в своей таблице RPL.MAP. Удаленная загрузка рабочих станций DOS через загрузочные образы еще в 1990 году поддерживался IBM LAN Server 1.2 через его протокол PCDOSRPL. IBM LAN Server 2.0 представил удаленную загрузку станций OS / 2 (начиная с OS / 2 1.30.1) в 1992 году.

РПЛ и ДОС

Для работы удаленной загрузки DOS загрузчик RPL загружается в память клиента по сети до запуска операционной системы. Без особых мер предосторожности операционная система может легко перезаписать код RPL во время загрузки, поскольку код RPL находится в нераспределенной памяти (обычно в верхней части доступной обычная память ).[2][3][4] Код RPL скрывается и тем самым защищает себя от перезаписи при подключении ИНТ 12 ч[5][4] и уменьшение памяти, сообщаемой этой службой BIOS, на ее собственный размер. INT 12h используется DOS для запроса объема доступной памяти при инициализации собственной схемы выделения памяти в реальном режиме.[5][4] Это вызывает проблемы в более современных системах DOS, где свободные диапазоны адресов реального режима могут использоваться операционной системой для переехать части себя и высокая загрузка драйверов, чтобы максимально увеличить объем доступной обычной памяти. Как правило, для того, чтобы выжить в этом очень динамичном процессе загрузки, в коде RPL должны были использоваться различные "грязные уловки" различных поставщиков операционной системы и версий.[2] и позволить DOS восстановить контроль над памятью, занятой RPL, после того, как загрузка будет завершена без проблем.

поскольку MS-DOS /ПК DOS 5.0 и DR DOS 6.0, операционная система проверяет, подключил ли RPL INT 2Fh ища "РПЛ"подпись в коде, на который указывает INT 2Fh. Если присутствует, DOS вызывает INT 2Fh / AX = 4A06h[3][4][6] для извлечения объема памяти из RPL и интеграции его в собственное выделение памяти, тем самым защищая код RPL от перезаписи другими программами.[3][4] Тем не менее, RPL оставалась сложной задачей - полностью удалить себя из памяти в конце фазы загрузки, если это возможно.

RPLOADER и DR-DOS

В добавок к этому "РПЛ"интерфейс, DR DOS 6.0 и выше с 1991 года поддерживает более гибкое расширение"RPLOADER".[7][4] Если DR DOS обнаруживает присутствие RPLOADER, а не только RPL, он начинает выдавать INT 2F / AX = 12FFh / BX = 0005h[3][7][4] вещает на определенных критических этапах процесса загрузки.[3][7][4] Код RPL может использовать их для перемещения себя в память (чтобы избежать конфликтов с другим резидентным программным обеспечением или избежать фрагментация памяти когда память RPL будет освобождена позже), или подключиться к операционной системе и лучше интегрироваться с ней для выполнения ее окончательных задач очистки четко определенным и скоординированным образом с помощью надежной и поддерживаемой внутренний интерфейс а не просто хаки.[3][7][4] Это помогает улучшить совместимость без адаптации кода RPL к каждой новой версии операционной системы, а также позволяет избежать ненужной фрагментации памяти и тем самым увеличивает объем доступной памяти для запуска программ DOS. Интерфейс также можно использовать для запуска DR DOS как задачи в операционной системе хоста, такой как Параллельная DOS.[6]

С 2018 г. RxDOS 7.24 поддерживает "RPLOADER"тоже вещает.[8]

Смотрите также

использованная литература

  1. ^ Маккензи, Джеймс; Лайтфут, Крис (1999). «RPLD - сервер удаленной загрузки RPL / RIPL». В архиве из оригинала от 23.08.2017. Получено 2009-06-11.
  2. ^ а б Пол, Матиас Р. (1997-10-02) [1997-09-29]. "Caldera OpenDOS 7.01 / 7.02 Обновление Alpha 3 IBMBIO.COM BOOT.TXT - Краткое описание того, как загружается OpenDOS". Архивировано из оригинал на 2003-10-04. Получено 2009-03-29. [1]
  3. ^ а б c d е ж Пол, Матиас Р. (17 июля 2000 г.). Браун, Ральф Д. (ред.). "2F4A06: INT 2F - DOS 5+ - DOS SUPERVISOR" ПАНЕЛЬ ПЕРЕЗАГРУЗКИ "- НАСТРОЙКА РАЗМЕРА ПАМЯТИ". Список прерываний Ральфа Брауна 61. В архиве из оригинала от 22.08.2017. Получено 2017-08-22.
  4. ^ а б c d е ж г час я Пол, Матиас Р. (13 августа 2002 г.). "Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird" (на немецком). Группа новостейde.comp.lang.assembler.x86. В архиве из оригинала на 2017-09-04. Получено 2017-09-03.
  5. ^ а б Браун, Ральф Д. (ред.). «12: INT 12 - BIOS - ПОЛУЧИТЬ РАЗМЕР ПАМЯТИ». Список прерываний Ральфа Брауна. В архиве из оригинала от 22.08.2017. Получено 2017-08-22.
  6. ^ а б c Чаппелл, Джефф (январь 1994). Шульман, Эндрю; Педерсен, Аморетта (ред.). Внутреннее устройство DOS. Серия программирования Эндрю Шульман (1-е издание, 1-е изд.). Издательство Эддисон Уэсли. С. 134, 140–143. ISBN  978-0-201-60835-9. ISBN  0-201-60835-9. (xxvi + 738 + iv страницы, 3,5-дюймовые гибкие диски [2][3] ) Исправления: [4][5][6]
  7. ^ а б c d Пол, Матиас Р. (17 июля 2000 г.). Браун, Ральф Д. (ред.). "2F12FFBX0005: INT 2F - DR DOS 6.0+ - ФАЗОВЫЕ РАССЫЛКИ ЗАГРУЗКИ ДЛЯ MEMORYMAX / RPLOADER / SECURITY". Список прерываний Ральфа Брауна 61. В архиве из оригинала от 22.08.2017. Получено 2017-08-22. (NB. Дополнительная информация ожидается для версии 62.)
  8. ^ ecm (08.10.2018). «Релиз RxDOS 7.24». bttr-software.de. DOS жив. В архиве из оригинала на 2018-12-15. Получено 2020-01-27.

дальнейшее чтение