Till Straumann  explains how embedded devices boots up any OS using PXE:

In our context, OS is linuxRT and embedded device is a COTS linux server.

  1. Embedded device boots up using PXE ROM and sends bootp/dhcp request

  2. DHCP Server replies, providing IP configuration (IP, netmask, $next-server [=TFTP server], ...),  boot file.

  3. PXE ROM downloads boot file which is a NBP (Network Boot Program', i.e., a secondary bootloader). 
    This is necessary because PXE ROMs are too primitive to load a real OS.

  4. NBP executes, contacts DHCP server again.

  5. DHCP server replies, providing same IP configuration but different boot file

  6. NBP downloads boot file

  7. NBP boots real OS

  8. OS contacts DHCP for a third time; DHCP server provides same IP configuration again;
    could also provide yet a different boot file but this is most likely not needed.

  9. The DHCP server decides which 'boot file' to include in its reply based on the DHCP option(s) 'user-class' and/or 'vendor-class-identifier', respectively.
  • No labels