Integrating Gpxe and PXELINUX

Integrating Gpxe and PXELINUX

x86 Network Booting: Integrating gPXE and PXELINUX H. Peter Anvin Marty Connor rPath, Inc. Etherboot Project <[email protected]> <[email protected]> Abstract 2 The PC Platform: Ancient History On the x86 PC platform, network booting is most com- Network booting has been implemented in various monly done using software that follows the Preboot Ex- forms for many years. To appreciate how it evolved it ecution Environment (PXE) specification. PXELINUX is instructive to examine the early days of PC comput- from the SYSLINUX Project and gPXE from the Ether- ing when standards were few, and achieving consensus boot Project are popular Open Source implementations between vendors on any technical innovation was even of key PXE components. more difficult than it is today. In this presentation, we will describe how these two The x86 PC platform has a direct lineage to the origi- projects were able to jointly develop an integrated PXE- nal IBM PC 5150 released in 1981. This machine, an compatible product that provides additional network open platform, and its successors, the 1983 IBM XT booting capabilities that go well beyond the PXE spec- and the 1984 IBM AT, were widely copied by a num- ification. We will also discuss some of the organiza- ber of manufacturers. The PC industry largely followed tional challenges encountered during this collaboration IBM’s technical lead until the disastrous 1987 attempt between two Open Source projects with different prior- at reclaiming their initial monopoly position with the ities, design goals, and development strategies. closed platform PS/2 line erased their technical and mar- ketplace leadership positions in the industry. 1 Motivation As a result, for the first half of the 1990s there was no Open Source software development by definition allows clear path for new standards to become accepted on the and encourages code sharing and collaboration between PC platform, and PCs were becoming little more than projects. There are, however, costs associated with these massively sped-up versions of the IBM AT. Thus, even endeavors, and these costs must be weighed against po- as new media such as networking and CD-ROMs be- tential benefits associated with using code developed by came available to the platform, there was little support another project. for booting from anything other than the initially sup- ported floppy and hard disk, although PCs could option- In the case of improving integration between gPXE and ally use an expansion card carrying proprietary booting PXELINUX, developers from SYSLINUX and the Ether- firmware. boot Project were motivated to collaborate because they believed there might be significant benefits to leverag- TCP/IP networking, as something other than a niche ing work already done by the other project. Although product, came late to the x86 PC platform. For many the process of creating better interoperability between years, memory limitations when running MS-DOS and products required significant communication and effort, its derivatives meant that simpler, proprietary network it was a useful and rewarding exercise for both develop- stacks were used; the primary ones being NetBIOS from ment teams. IBM and Microsoft, and IPX from Novell. To understand how these two Open Source projects The response of early network card manufacturers, to reached this point of collaboration we will examine the the extent they supported booting from networks at all, history of network booting on the x86 PC platform, as was simply to provide a socket into which a ROM (usu- well as the development journey each project took prior ally an EPROM) could be inserted by the end user. This to this collaborative effort. ROM had to be preprogrammed with firmware specific • 9 • 10 • x86 Network Booting: Integrating gPXE and PXELINUX both to the network card and the network protocol used; Open Source world at specifying an OS-independent as a result, these ROMs were frequently expensive, and method for network booting on the PC platform. few PCs were ever so equipped. To further complicate the situation, the size of ROMs varied widely depend- To keep NBI loader code uncomplicated, a utility called ing on the card. Some cards supported as little as 8K of mknbi was used to convert OS specific files such as ker- ROM space, greatly limiting the amount and complexity nels and initrds into NBI format for loading into mem- of boot software that could be supplied. ory. This simplified loader code because it only needed to load a single, uncomplicated image format. It did, In the early 1990s, as the use of TCP/IP became more however, require an extra step to convert OS images to prevalent, some manufacturers provided TCP/IP-based NBI format prior to booting. booting solutions using the then-standard BOOTP and TFTP protocols, often based on downloading a floppy NBI was never used in the closed-source OS world. image to high memory (above the 1 MB point address- Instead, vendors continued to offer incompatible solu- able by DOS.) These solutions generally did not pro- tions, usually based on their respective proprietary net- vide any form of post-download access to the firmware; work stacks. the downloaded floppy image was expected to contain a software driver for a specific network card and to access In 1997, Intel et al. published the Wired for Manage- the hardware directly. ment Specification (WfM) [5]. It included as an ap- pendix a specification for the Preboot Execution En- By the mid 1990s, the PC industry, including IBM, was vironment (PXE), a TCP/IP-based, vendor-neutral net- seriously suffering from having outgrown IBM AT stan- work booting protocol for PCs, which included an appli- dards. In January 1995, Phoenix and IBM published the cation programming interface (API) for post-download “El Torito” standard [3] for booting PCs from CD-ROM access to the firmware driver. The specification, as well media. Support for this standard was initially poor, and as its current successor [6], both have numerous techni- for the rest of the decade most operating systems that cal shortcomings, but it finally made it possible for NIC were distributed on CD-ROM media generally shipped and motherboard vendors to ship generic network boot- with install floppies for booting PCs that lacked func- ing firmware. Higher-end NICs began to have onboard tional CD-ROM booting support. flash memory preprogrammed with PXE from the fac- tory instead of providing a socket for a user-installable 3 NBI and PXE: Network Booting Strategies ROM. Motherboards began to have PXE firmware inte- grated into their BIOSes. As the cost of network interface cards (NICs) dropped The PXE specification defines a set of software com- dramatically in the early 1990s, the cost of a network ponents (Figure 1) including a PXE Base Code (BC) boot ROM could be a substantial fraction of the cost of stack, a Universal Network Driver Interface (UNDI) the NIC itself. The use of OS-dependent, user-installed driver—both in ROM—and a Network Boot Program ROMs as the only method for network booting had be- (NBP), which loads from a server. Of these compo- come a significant limitation. In the Open Source world, nents, only the UNDI is specific to a certain NIC. Just this issue was further complicated by the need to supply as with the Open System Interconnect (OSI) networking a physical piece of hardware, since a software-only dis- model, this model does not completely reflect the actual tribution would require end users to have access to an division into components, but is nevertheless useful as a expensive EPROM burner to program the software into basis for discussion. an EPROM. The PXE approach is significantly different from the one In 1993, Jamie Honan authored a document titled “Net taken by NBI. NBI simply loads a mknbi-prepared Boot Image Proposal” [4] which defined image formats bootable OS image into memory with no further ac- and methods for downloading executable images to a cess to the ROM-resident network routines.1 In contrast, client computer from a server. A key feature of Jamie’s PXE BC first loads an NBP, which then loads a target proposal was the specification of Network Boot Image (NBI) file format, “a vendor independent format for boot 1Some NBI-compliant ROMs would provide APIs to request ad- images.” This may have been the first attempt in the ditional services, but those APIs were never standardized. 2008 Linux Symposium, Volume One • 11 Initial load via TFTP Network Boot BIOS PXE BC OS load Program (NBP) TFTP and UDP API UNDI API UNDI driver ROM Figure 1: The PXE concept model OS using still-resident BC and/or UNDI stacks from the filesystem itself was a point of criticism in the early ROM using an API defined in the PXE specification. days): as of version 1.30 (November 3, 1996) the SYS- LINUX binary was 4.5K in size. Even so, it contained a These differences in approach allow PXE ROMs to con- reasonably flexible configuration system and support for tain simple, compact loader code while enabling more displaying online help; the latter was particularly impor- specific and capable second-stage loader code to load tant for install disks. native OS image formats without pre-processing. Fur- ther, NBP code resident on a network server can be up- In 1999 Chris DiBona, then of VA Linux Systems, pro- graded centrally to fix bugs or add capabilities. Added vided an early PXE-equipped system as a development costs to this approach versus NBI include extra time and platform for a PXE loader. Since the Intel PXE specifi- server load to transfer an NBP before the target OS im- cation at the time specified that only 32K was available age is loaded, and the need to maintain multiple com- to the NBP it was decided that basing the PXE loader ponents on the boot server.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us