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.
- Embedded device boots up using PXE ROM and sends bootp/dhcp request
- DHCP Server replies, providing IP configuration (IP, netmask, $next-server [=TFTP server], ...), boot file.
- 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.
- NBP executes, contacts DHCP server again.
- DHCP server replies, providing same IP configuration but different boot file
- NBP downloads boot file
- NBP boots real OS
- 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.
- 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.