Remote Initial Program Load

Last updated

Remote Initial Program Load (RIPL or RPL) is a protocol for starting a computer and loading its operating system from a server via a network. Such a server runs a network operating system such as LAN Manager, LAN Server, Windows NT Server, Novell NetWare, LANtastic, Solaris or Linux. [1]

Contents

RIPL is similar to Preboot Execution Environment (PXE), but it uses the Novell NetWare-based boot method. It was originally developed by IBM.

IBM LAN Server

IBM LAN Server enables clients (RIPL requesters) to load the operating systems DOS or OS/2 via the 802.2/DLC-protocol from the LAN (often Token Ring). Therefore, the server compares the clients' requests with entries in its RPL.MAP table. Remote booting DOS workstations via boot images was supported as early as 1990 by IBM LAN Server 1.2 via its PCDOSRPL protocol. IBM LAN Server 2.0 introduced remote booting of OS/2 stations (since OS/2 1.30.1) in 1992.

RPL and DOS

For DOS remote boot to work, the RPL boot loader is loaded into the client's memory over the network before the operating system starts. Without special precautions the operating system could easily overwrite the RPL code during boot, since the RPL code resides in unallocated memory (typically at the top of the available conventional memory). [2] [3] [4] The RPL code hides and thereby protects itself from being overwritten by hooking INT 12h [5] [4] and reducing the memory reported by this BIOS service by its own size. INT 12h is used by DOS to query the amount of available memory when initializing its own real-mode memory allocation scheme. [5] [4] This causes problems on more modern DOS systems, where free real-mode address ranges may be utilized by the operating system in order to relocate parts of itself and load drivers high, so that the amount of available conventional memory is maximized. Typically, various operating system vendor and version specific "dirty tricks" had to be used by the RPL code in order to survive this very dynamic boot process [2] and let DOS regain control over the memory occupied by RPL once the boot is complete in a seamless manner.

Since MS-DOS/PC DOS 5.0 and DR DOS 6.0, the operating system checks if the RPL has hooked INT 2Fh by looking for a "RPL" signature at the code pointed to by INT 2Fh. If present, DOS calls INT 2Fh/AX=4A06h [3] [4] [6] to retrieve the amount of memory from the RPL and integrate it into its own memory allocation, thereby protecting the RPL code from being overwritten by other programs. [3] [4] Still, it remained the RPL's difficult responsibility to cleanly remove itself from memory at the end of the boot phase, if possible.

RPLOADER and DR-DOS

In addition to this "RPL" interface, DR DOS 6.0 and higher since 1991 support a more flexible extension named "RPLOADER". [7] [4] If DR DOS detects the presence of RPLOADER rather than RPL only, it starts to issue INT 2F/AX=12FFh/BX=0005h [3] [7] [4] broadcasts at certain critical stages in the boot process. [3] [7] [4] The RPL code can use them to relocate itself in memory (in order to avoid conflicts with other resident software or to avoid memory fragmentation when the RPL memory is freed later on), or to hook into and better integrate with the operating system in order to perform its final cleanup tasks in a well-defined and coordinated manner through a robust and supported backend interface rather than mere hacks. [3] [7] [4] This helps to improve compatibility without having to adapt the RPL code with each new version of the operating system, and it avoids unnecessary memory fragmentation and thereby increases available memory for DOS programs to run. The interface can also be utilized to run DR DOS as a task under a host operating system such as Concurrent DOS. [6]

Since 2018, RxDOS  7.24 supports the "RPLOADER" broadcasts as well. [8]

See also

Related Research Articles

Booting Process of starting a computer

In computing, booting is the process of starting a computer. It can be initiated by hardware such as a button press, or by a software command. After it is switched on, a computer's central processing unit (CPU) has no software in its main memory, so some process must load software into memory before it can be executed. This may be done by hardware or firmware in the CPU, or by a separate processor in the computer system.

DR-DOS MS-DOS-like operating system

DR-DOS is an operating system of the DOS family, written for IBM PC-compatible personal computers. It was originally developed by Gary A. Kildall's Digital Research and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86. As ownership changed, various later versions were produced with names including Novell DOS and Caldera OpenDOS.

A20 line Signal in the system bus of an x86-based computer system

The A20, or address line 20, is one of the electrical lines that make up the system bus of an x86-based computer system. The A20 line in particular is used to transmit the 21st bit on the address bus.

NetWare is a discontinued computer network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, using the IPX network protocol.

High memory area

In DOS memory management, the high memory area (HMA) is the RAM area consisting of the first 65520 bytes above the one megabyte in an IBM AT or compatible computer.

IPX/SPX stands for Internetwork Packet Exchange/Sequenced Packet Exchange. IPX and SPX are networking protocols used initially on networks using the Novell NetWare operating systems, and also became widely used on networks deploying Microsoft Windows LANS, as they replaced NetWare LANS, but is no longer widely used. IPX/SPX was also widely used prior to and up to Windows XP era, that supported the protocols, while later Windows versions do not, and TCP/IP took over for networking.

Bootloader Software responsible for starting the computer and load other software to the CPU memory

A bootloader, also spelled as boot loader or called boot manager and bootstrap loader, is a computer program that is responsible for booting a computer.

In x86 computing, unreal mode, also big real mode, huge real mode, flat real mode, or voodoo mode is a variant of real mode, in which one or more segment descriptors has been loaded with non-standard values, like 32-bit limits allowing access to the entire memory. Contrary to its name, it is not a separate addressing mode that the x86 processors can operate in. It is used in the 80286 and later x86 processors.

IBMBIO.COM System file (DOS BIOS) in PC DOS and DR-DOS

IBMBIO.COM is a system file in many DOS operating systems. It contains the system initialization code and all built-in device drivers. It also loads the DOS kernel (IBMDOS.COM) and optional pre-loadable system components, displays boot menus, processes configuration files and launches the shell.

A NetWare Loadable Module (NLM) is a loadable kernel module that can be loaded into Novell's NetWare operating system. NLMs can implement hardware drivers, server functions, applications, system libraries or utilities.

Caldera OpenLinux (COL) is a defunct Linux distribution. Caldera originally introduced it in 1997 based on the German LST Power Linux distribution, and then taken over and further developed by Caldera Systems since 1998. A successor to the Caldera Network Desktop put together by Caldera since 1995, OpenLinux was an early "business-oriented distribution" and foreshadowed the direction of developments that came to most other distributions and the Linux community generally.

A volume boot record (VBR) is a type of boot sector introduced by the IBM Personal Computer. It may be found on a partitioned data storage device, such as a hard disk, or an unpartitioned device, such as a floppy disk, and contains machine code for bootstrapping programs stored in other parts of the device. On non-partitioned storage devices, it is the first sector of the device. On partitioned devices, it is the first sector of an individual partition on the device, with the first sector of the entire device being a Master Boot Record (MBR) containing the partition table.

Network booting, shortened netboot, is the process of booting a computer from a network rather than a local drive. This method of booting can be used by routers, diskless workstations and centrally managed computers such as public computers at libraries and schools.

Computer hardware or software is said to be bug compatible if it exactly replicates even an undesirable feature of a previous version. The phrase is found in the Jargon File.

Personal NetWare

NetWare Lite and Personal NetWare are a series of discontinued peer-to-peer local area networks developed by Novell for DOS- and Windows-based personal computers aimed at personal users and small businesses in the 1990s.

Ralf Brown's Interrupt List is a comprehensive list of interrupts, calls, hooks, interfaces, data structures, CMOS settings, memory and port addresses, as well as processor opcodes and special function registers for x86 machines from the very start of the PC era in 1981 up to 2000, most of it still applying to PCs today.

FlexOS is a discontinued modular real-time multiuser multitasking operating system (RTOS) designed for computer-integrated manufacturing, laboratory, retail and financial markets. Developed by Digital Research's Flexible Automation Business Unit in Monterey, California, in 1985, the system was considered to become a successor of Digital Research's earlier Concurrent DOS, but with a new, modular, and considerably different system architecture and portability across various processor families. Still named Concurrent DOS 68K and Concurrent DOS 286, it was renamed into FlexOS on 1 October 1986 to better differentiate the target audiences. FlexOS was licensed by several OEMs who selected it as the basis for their own operating systems like 4680 OS, 4690 OS, S5-DOS/MT and others. Unrelated to FlexOS, the original Concurrent DOS system architecture found a continuation in successors like Concurrent DOS XM and Concurrent DOS 386 as well.

A master boot record (MBR) is a special type of boot sector at the very beginning of partitioned computer mass storage devices like fixed disks or removable drives intended for use with IBM PC-compatible systems and beyond. The concept of MBRs was publicly introduced in 1983 with PC DOS 2.0.

DOS Protected Mode Services (DPMS) is a set of extended DOS memory management services to allow DPMS-enabled DOS drivers to load and execute in extended memory and protected mode.

DR-WebSpyder A graphical web browser for DOS and Linux

DR-WebSpyder is a DOS web browser, mail client and operating system runtime environment that was developed by Caldera UK in 1997. It was based on the DR-DOS operating system and networking components from Novell as well as the Arachne web browser by Michal Polák of xChaos software. The system was designed to run on low-end desktop systems, but being able to boot and execute from disk as well as from ROM or network, it was also tailored for x86-based thin clients and embedded systems with or without disk drives. Using the web browser as its principal user interface, it could be also used for kiosk systems and set-top boxes. Named Embrowser, it has been ported to Linux in 1999 and was called Embedix Browser since 2000.

References

  1. McKenzie, James; Lightfoot, Chris (1999). "RPLD - an RPL/RIPL remote boot server". Archived from the original on 2017-08-23. Retrieved 2009-06-11.
  2. 1 2 Paul, Matthias R. (1997-10-02) [1997-09-29]. "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM BOOT.TXT - A short description of how OpenDOS is booted". Archived from the original on 2003-10-04. Retrieved 2009-03-29.
  3. 1 2 3 4 5 6 Paul, Matthias R. (2000-07-17). Brown, Ralf D. (ed.). "2F4A06: INT 2F - DOS 5+ - DOS SUPERVISOR "REBOOT PANEL" - ADJUST MEMORY SIZE". Ralf Brown's Interrupt List 61. Archived from the original on 2017-08-22. Retrieved 2017-08-22.
  4. 1 2 3 4 5 6 7 8 9 Paul, Matthias R. (2002-08-13). "Suche freien Speicherbereich unterhalb von 1 MB, der nicht von OS überschrieben wird" (in German). Newsgroup:  de.comp.lang.assembler.x86. Archived from the original on 2017-09-04. Retrieved 2017-09-03.
  5. 1 2 Brown, Ralf D. (ed.). "12: INT 12 - BIOS - GET MEMORY SIZE". Ralf Brown's Interrupt List . Archived from the original on 2017-08-22. Retrieved 2017-08-22.
  6. 1 2 3 Chappell, Geoff (January 1994). Schulman, Andrew; Pedersen, Amorette (eds.). DOS Internals. The Andrew Schulman Programming Series (1st printing, 1st ed.). Addison Wesley Publishing Company. pp. 134, 140–143. ISBN   978-0-201-60835-9. ISBN   0-201-60835-9. (xxvi+738+iv pages, 3.5"-floppy ) Errata:
  7. 1 2 3 4 Paul, Matthias R. (2000-07-17). Brown, Ralf D. (ed.). "2F12FFBX0005: INT 2F - DR DOS 6.0+ - BOOT PHASE BROADCASTS FOR MEMORYMAX/RPLOADER/SECURITY". Ralf Brown's Interrupt List 61. Archived from the original on 2017-08-22. Retrieved 2017-08-22. (NB. Additional information is pending for release 62.)
  8. ecm (2018-10-08). "RxDOS 7.24 release". bttr-software.de. DOS ain't dead. Archived from the original on 2018-12-15. Retrieved 2020-01-27.

Further reading