Zdalne początkowe ładowanie programu

Zdalne ładowanie programu początkowego ( RIPL lub RPL ) to protokół służący do uruchamiania komputera i ładowania jego systemu operacyjnego z serwera za pośrednictwem sieci . Na takim serwerze działa sieciowy system operacyjny taki jak LAN Manager , LAN Server , Windows NT Server, Novell NetWare , LANtastic , Solaris czy Linux .

RIPL jest podobny do Preboot Execution Environment (PXE), ale wykorzystuje metodę rozruchu opartą na Novell NetWare . Pierwotnie został opracowany przez IBM .

Serwer LAN IBM

IBM LAN Server umożliwia klientom (requesterom RIPL) ładowanie systemów operacyjnych DOS lub OS/2 poprzez protokół 802.2 / DLC z sieci LAN (często Token Ring ). Dlatego serwer porównuje żądania klientów z wpisami w swojej tabeli RPL.MAP. Zdalne uruchamianie stacji roboczych DOS za pomocą obrazów startowych było obsługiwane już w 1990 roku przez IBM LAN Server 1.2 za pośrednictwem protokołu PCDOSRPL. IBM LAN Server 2.0 wprowadził zdalne uruchamianie stacji OS/2 (od wersji OS/2 1.30.1) w 1992 roku.

RPL i DOS

Aby zdalny rozruch systemu DOS działał, moduł ładujący RPL jest ładowany do pamięci klienta przez sieć przed uruchomieniem systemu operacyjnego. Bez specjalnych środków ostrożności system operacyjny mógłby łatwo nadpisać kod RPL podczas rozruchu, ponieważ kod RPL znajduje się w nieprzydzielonej pamięci (zwykle na górze dostępnej pamięci konwencjonalnej) ). Kod RPL ukrywa się i w ten sposób chroni się przed nadpisaniem poprzez przechwycenie INT 12h i zmniejszenie pamięci raportowanej przez tę usługę BIOS o jej własny rozmiar. INT 12h jest używane przez DOS do sprawdzania ilości dostępnej pamięci podczas inicjowania własnego schematu alokacji pamięci w trybie rzeczywistym. Powoduje to problemy w nowszych systemach DOS, gdzie wolne zakresy adresów w trybie rzeczywistym mogą być wykorzystywane przez system operacyjny w celu przenoszenia części siebie i wysokiego obciążenia sterowników , aby zmaksymalizować ilość dostępnej pamięci konwencjonalnej. Zwykle kod RPL musiał stosować „brudne sztuczki” różnych dostawców systemów operacyjnych i specyficznych dla wersji, aby przetrwać ten bardzo dynamiczny proces rozruchu i pozwolić DOSowi odzyskać kontrolę nad pamięcią zajmowaną przez RPL po zakończeniu rozruchu w płynny sposób .

Od wersji MS-DOS / PC DOS 5.0 i DR DOS 6.0 system operacyjny sprawdza, czy RPL przechwycił INT 2Fh, szukając sygnatury „ RPL ” w kodzie wskazanym przez INT 2Fh. Jeśli jest obecny, DOS wywołuje INT 2Fh/AX=4A06h, aby pobrać ilość pamięci z RPL i zintegrować ją z własną alokacją pamięci, chroniąc w ten sposób kod RPL przed nadpisaniem przez inne programy. Mimo to, trudnym zadaniem RPL było czyste usunięcie się z pamięci pod koniec fazy rozruchu, jeśli to możliwe.

RPLOADER i DR-DOS

Oprócz tego interfejsu „ RPL ”, DR DOS 6.0 i nowsze wersje od 1991 roku obsługują bardziej elastyczne rozszerzenie o nazwie „ RPLOADER ”. Jeśli DR DOS wykryje obecność RPLOADER, a nie tylko RPL, zaczyna wysyłać emisje INT 2F/AX=12FFh/BX=0005h na pewnych krytycznych etapach procesu rozruchu. Kod RPL może ich użyć do przeniesienia się w pamięci (w celu uniknięcia konfliktów z innym oprogramowaniem rezydentnym lub uniknięcia fragmentacji pamięci gdy pamięć RPL zostanie później zwolniona) lub podłączyć się do systemu operacyjnego i lepiej go zintegrować, aby wykonać końcowe zadania czyszczenia w dobrze zdefiniowany i skoordynowany sposób za pomocą solidnego i obsługiwanego interfejsu zaplecza, a nie zwykłych hacków . Pomaga to poprawić kompatybilność bez konieczności dostosowywania kodu RPL do każdej nowej wersji systemu operacyjnego i pozwala uniknąć niepotrzebnej fragmentacji pamięci, a tym samym zwiększa pamięć dostępną do uruchamiania programów DOS. Interfejsu można także używać do uruchamiania DR DOS jako zadania w systemie operacyjnym hosta, takim jak Concurrent DOS .

Od 2018 roku RxDOS 7.24 obsługuje również transmisje „ RPLOADER ”.

Zobacz też

Dalsza lektura