A Das U-Boot (teljes nevén: "the Universal Boot Loader", illetve gyakorta rövidítve: U-Boot) egy nyílt forráskódú bootloader, melyet főként beágyazott rendszerekben alkalmaznak alacsonyszintű hardver-inicializációs, hardver-diagnosztikai és rendszerindítási feladatokra. A szoftver különféle számítógép-architektúrákon érhető el, így például: PPC, MIPS, ARM, 68k, x86 stb.
Történet A projektet '8xx PowerPC' néven kezdte el Magnus Damm. 1999 októberében aztán Wolfgang Denk átköltöztette a projektet a SourceForge fejlesztői portálra és PPCBoot nevet adott neki, mivel a portál névkonvenciója miatt nem lehetett számmal kezdődő projektnéven regisztrálni. A legelső nyilvánosan elérhető változat 2000. július 21-én jelent meg és a 0.4.1 verziószámot kapta. Az 1.0.0 változat csaknem egy év múlva jelent meg kibővített processzor és alaplap támogatással, valamint a BedBug hibakereső integrálásával. Ezen a néven a 2.0.0 verzió volt az utolsó, ami megjelent 2002 november 1-jén.
Az újabb névváltás oka egyszerűen az volt, hogy már nem akarták kizárólag csak PPC processzorok támogatását biztosítani, ráadásul már ebben a változatban is támogatva volt néhány ARM processzor is, de már ekkor tervben volt a ColdFire és az x86 platformok támogatása. Az teljes új név innentől "Das U-Boot" - the Universal Boot Loader lett.
Fejlesztés A szoftver fejlesztése háromhavi kiadási ciklusokban (Release Cycle) történik. Az első három hét a "beolvasztási ablak" (Merge Window), amikor az új funkcionalitást megvalósító programkódok (patchek) benyújtására áll nyitva időablak, utána pedig a stabilizációs periódus jön, amikor már csak hibajavítások történhetnek. A programozói munkát felügyelők kezelik, akik a mesterkódba történő "beolvasztási kéréseket" (pull request) gyűjtik és küldik be a beolvasztási időszak végén, illetve visszajelzéseket adnak a kódfejlesztők felé.
A fejlesztés a Linux operációs rendszerrel összhangban zajlik, ugyanakkor csak a végleges kiadásokat (release) veszik figyelembe, a kiadásra jelölt (release candidate) változatokat nem.
Működés Az U-Boot első- és második fázisú rendszertöltésre is képes, azaz a hardver (memória, perifériák stb.) inicializálása mellett rendszermag (kernel) vagy más szoftver betöltését is elvégzi. Az U-Bootot a rendszer Boot ROM-ja tölti be teljes egészében, vagy — tárhelykorlát esetén — előbb általában egy kisebb SPL (Secondary Program Loader) komponens formájában, mely csak memóriaellenőrzést hajt végre, majd betölti a teljes rendszertöltőt.
Az UEFI specifikációnak az Embedded Base Boot Requirements (EBBR) által meghatározottak szerint felel meg. Képes betölteni a GNU GRUB rendszertöltőt, mellyel akár több párhuzamosan tárolt operációs rendszer is futtatható, de gond nélkül tölt be Linux kernelt is. Rendelkezésre áll felhasználóbarát boot manager, vagy akár a beépített parancssoros felhasználói felület (CLI), mely utóbbi elérhető konzolról vagy soros portról és számos eszközinformációs, eszközfa-kezelő, környezeti változó beállítást szolgáló parancsot tartalmaz.
Rendszertöltési források Alaplapi vagy csatlakoztatott eszközök SD kártya SATA SCSI I²C (pl. EEPROM, flashmemória) SPI ONFI eMMC eUFS NVMe USB háttértár Soros port (fájlátvitel) Kermit protokoll S-Record fájlformátum YMODEM protokoll Hálózati rendszertöltés (optionálisan: DHCP, BOOTP, vagy RARP) TFTP NFS
Kompatibilis fájlrendszerek
btrfs CBFS (coreboot) Cramfs ext2 ext3 ext4 F2FS FAT CP/M JFFS2 ReiserFS Squashfs UBIFS ZFS
Alkalmazások Az ARM-alapú Chromebookok rendszertöltője az U-Boot, míg az x86 alapú modelleknél a coreboot betöltését végzi. A PowerPC alapú AmigaOne számítógépek a rendszer és az AmigaOS 4 indítására az U-Bootot használják. Az Amazon Kindle e-könyv-olvasó eszközök módosított U-Bootot használnak bootloaderként. A SpaceX űrhajói (Falcon és Dragon) rendszerei felhasználják az U-Bootot a működésük során. Az Ubiquiti vezetéknélküli hálózati eszközeiben alkalmazzák. Számos router (TP-Link, Teltonika) rendszertöltője.
Jegyzetek
Kategória:Szabad szoftverek Kategória:Hardver Kategória:Beágyazott rendszerek Kategória:Nyílt forrású szoftverek Kategória:Bootloader