IPXE

iPXE is an open-source implementation of the Preboot eXecution Environment (PXE) client firmware and bootloader, created in 2010 as a fork of gPXE. It can be used to enable computers without built-in PXE support to boot from the network, or to extend an existing PXE client implementation so it supports additional protocols.
While standardized PXE clients use TFTP to transfer data, non-standardized iPXE client firmware adds the ability to retrieve data through other protocols, including HTTP, iSCSI, ATA over Ethernet (AoE), and Fibre Channel over Ethernet (FCoE). Also, on supported hardware iPXE firmware can use a Wi-Fi link rather than requiring a wired connection. iPXE firmware cannot be considered as a "drop-in" replacement for PXE firmware.
iPXE is the official replacement for gPXE. Any feature present in gPXE is also present in iPXE, and users can seamlessly upgrade from gPXE to iPXE. Before 2008, gPXE was known as Etherboot.
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. PXE 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.