Podjetje Intel razvija novo arhitekturo programske opreme Universal Scalable Firmware (USF), usmerjeno v poenostavljanje razvoja vseh komponent programske opreme za različne kategorije naprav, od strežnikov do sistemov na čipu (SoC). USF ponuja ravni abstrakcije, ki omogočajo ločevanje logike nizko nivojskega inicializiranja strojne opreme od komponent platforme, odgovornih za konfiguracijo, posodobitev programske opreme, zagotavljanje varnosti in nalaganje operacijskega sistema. Osnutek specifikacije in implementacije tipičnih elementov arhitekture USF je na voljo na GitHubu.
USF ima modularno strukturo, ki ni vezana na posebne rešitve in omogoča uporabo različnih obstoječih projektov, ki izvajajo faze inicializacije strojne opreme in nalaganja, kot so UEFI sklad TianoCore EDK2, minimalistična programska oprema Slim Bootloader, nalagalnik U-Boot in platforma CoreBoot. Kot okolja payload, ki se uporabljajo za iskanje nalagalnika in predajo nadzora operacijskemu sistemu, se lahko uporabljajo UEFI vmesnik, plast LinuxBoot (za neposredno nalaganje jedra Linux), VaultBoot (potrjeno nalaganje) in hipervizor ACRN. Za operacijske sisteme so na voljo standardni vmesniki, kot so ACPI, UEFI, Kexec in Multi-boot.
USF izpostavlja ločen sloj za podporo strojni opremi (FSP, Firmware Support Package), ki deluje z univerzalnim in prilagodljivim slojem orkestracije platforme (POL, Platform Orchestration Layer) preko skupnega API. FSP abstrahira takšne operacije, kot so ponastavitev CPU, inicializacija strojne opreme, delo s SMM (System Management Mode), avtentifikacija in verifikacija na ravni SoC. Sloj orkestracije poenostavi ustvarjanje ACPI vmesnikov, podpira standardne knjižnice nalagalnikov, omogoča uporabo jezika Rust za ustvarjanje zaščitenih komponent programske opreme ter omogoča določanje konfiguracije s pomočjo jezika označevanja YAML. Na ravni POL se prav tako izvaja avtentikacija, potrjevanje pristnosti in organizacija varne namestitve posodobitev.

Pričakuje se, da bo nova arhitektura omogočila:
- Zmanjšajte kompleksnost in stroške razvoja programske opreme za nova naprave z ponovno uporabo kode pripravljenih tipičnih komponent, modularne arhitekture, ki ni vezana na določene zagonske naloge, ter možnostjo uporabe univerzalnega API za nastavitev modulov.
- Izboljšajte kakovost in varnost programske opreme z uporabo preverljivih modulov za interakcijo s strojno opremo in bolj varne infrastrukture za preverjanje pristnosti in overjanje programske opreme.
- Uporabljajte različne zagonske naloge in komponente payload, odvisno od rešenih nalog.
- Pospešite uvajanje novih tehnologij in skrajšajte cikel razvoja — razvijalci se lahko osredotočijo le na dodajanje specifične funkcionalnosti, ostalo pa z uporabo že preverjenih komponent.
- Širite razvoj programske opreme za različne mešane računalniške arhitekture (XPU), na primer, ki vključujejo poleg CPU tudi vgrajeni diskretni grafični pospeševalnik (dPGU) in programirljive omrežne naprave za pospeševanje omrežnih operacij v podatkovnih centrih, ki zagotavljajo delovanje oblačnih sistemov (IPU, Infrastructure Processing Unit).
Izvor: opennet.ru
