| U-Boot (Universal Bootloader) maakt niet strikt deel uit van de Linux *kernel* zelf, maar is eerder een cruciaal stukje software dat draait *voordat* de Linux-kernel wordt geladen. Het is een bootloader, wat betekent dat het zijn taak is om de hardware van het ingebedde systeem (zoals een router, smartphone of ingebedde computer) te initialiseren en vervolgens het besturingssysteem te laden en te starten (dit kan Linux zijn, maar ook andere besturingssystemen). 
  
 Hier is een overzicht van zijn rol: 
  
 * Hardware-initialisatie: U-Boot voert hardware-initialisatie op laag niveau uit. Dit omvat zaken als het instellen van de klok, het initialiseren van het geheugen en het identificeren van aangesloten apparaten.  
  
 * Opstartapparaatselectie: U-Boot bepaalt vanaf welk apparaat moet worden opgestart (bijvoorbeeld SD-kaart, NAND-flash, Ethernet). Deze selectie kan vaak door de gebruiker worden geconfigureerd, meestal via een opdrachtregelinterface.  
  
 * De kernel laden: Zodra het opstartapparaat is geselecteerd, laadt U-Boot de Linux-kernelimage van dat apparaat in het RAM.  
  
 * Parameters doorgeven: U-Boot geeft parameters door aan de Linux-kernel, zoals de locatie van het rootbestandssysteem en andere opstartopties.  
  
 * Kerneluitvoering: Ten slotte draagt U-Boot de besturing over aan de geladen Linux-kernel, die vervolgens het opstartproces van het systeem overneemt.  
  
  
 In essentie is U-Boot de brug tussen de ruwe hardware en het besturingssysteem. Zonder dit zou de Linux-kernel (of welk ander besturingssysteem dan ook) niet weten hoe te starten. Zie het als de eerste vonk die het opstartproces van het besturingssysteem doet ontbranden. Er bestaan veel andere bootloaders, maar U-Boot is heel gebruikelijk, vooral in embedded systemen. |