IPXE

iPXE is an open-source implementation of the Preboot eXecution Environment (PXE) client software and bootloader, created in 2010 as a fork of gPXE (gPXE was named Etherboot until 2008). It can be used to enable computers without built-in PXE capability to boot from the network, or to provide additional features beyond what built-in PXE provides.

While standard PXE clients use only TFTP to load parameters and programs from the server, iPXE client software can use additional protocols, including HTTP, iSCSI, ATA over Ethernet (AoE), and Fibre Channel over Ethernet (FCoE). Also, on certain hardware, iPXE client software can use a Wi-Fi link, as opposed to the wired connection required by the PXE standard.

The iPXE client is a superset of, and can replace or supplement, prior PXE implementations.

iPXE is the official replacement for gPXE. It has every feature of gPXE, and users can seamlessly upgrade from gPXE to iPXE.

PXE implementation
iPXE can be booted by a computer either by replacing (re-flashing) the existing standard PXE ROM on a supported network interface card (NIC), or by booting the NIC's standard PXE ROM and then chainloading into the iPXE binary, thus obtaining its features without the need to re-flash a NIC. iPXE firmware embeds its configuration script into the firmware image, thus any changes to the configuration require a NIC to be re-flashed.

iPXE implements its own PXE stack either by using the network card driver provided by iPXE, or the standard PXE UNDI driver if iPXE is chainloaded from a standard PXE ROM. Implementing an independent PXE stack allows clients without the standard PXE ROM on their NICs to use an alternative iPXE stack by loading it from an alternative medium.

Boot manager
Although its basic role was to implement a PXE stack, iPXE can be also used as a network boot manager with limited capabilities for menu-based interaction with end users. iPXE can fetch boot files using multiple network protocols, such as TFTP, NFS, HTTP or FTP.

iPXE can act as a boot loader for the Linux kernel, with support for multiboot. For other operating systems, for example Windows CE, iPXE chain-loads corresponding Microsoft boot loader. Additionally, iPXE is scriptable and can load COMBOOT and COM32 SYSLINUX extensions, which, for example, allows SYSLINUX-based graphical menu capabilities to be available for network booting.