gPXE is an open-source Preboot eXecution Environment (PXE) client firmware implementation and bootloader derived from Etherboot.
While standard PXE clients use TFTP to transfer data, gPXE client firmware adds the ability to retrieve data through other protocols like HTTP, iSCSI and ATA over Ethernet (AoE), and can work with Wi-Fi rather than requiring a wired connection.
This allows to use a PXE stack even if the network card has no boot ROM, by loading gPXE from a fixed medium.
Although its basic role was to implement a PXE stack, gPXE can be used as a full-featured network bootloader.
It can fetch files from multiple network protocols,[6] such as TFTP, NFS, HTTP[7][8] or FTP, and can boot PXE, ELF, Linux, FreeBSD, multiboot, EFI, NBI and Windows CE images.