Společnost Vivo, která má přibližně 10 % světového trhu se smartphony (5. místo mezi výrobci smartphonů), představila svůj první oficiální veřejný release jádra operačního systému BlueOS (Blue River OS). Operační systém BlueOS se vyvíjí od roku 2018 a již se využívá v chytrých hodinkách řady Vivo Watch. Vivo také pracuje na aplikaci BlueOS ve chytrých brýlích, robotech, chytrých terminálech a spotřebitelských AI zařízeních. Kód jádra je napsán v jazyce Rust a je otevřen pod licencí Apache 2.0. Systémové frameworky BlueOS jsou také napsány v jazyce Rust.
Operační systém BlueOS se původně vyvíjí s ohledem na zajištění bezpečnosti a používá jazyk Rust, aby předešel vzniku zranitelností způsobených chybami při práci s pamětí, které podle statistik Googlu a Microsoftu tvoří 70 % všech zranitelností v operačních systémech. Pro zajištění bezpečné práce s pamětí se v BlueOS používá kombinace chytrých ukazatelů během běhu a kontrol, které jsou poskytovány jazykem Rust v průběhu kompilace (sledování vlastnictví objektů, kontrola půjčování proměnných, se zřetelem na dobu životnosti objektů).
Jádro BlueOS (Blue River Kernel) je optimalizováno pro minimální spotřebu zdrojů a může být používáno na vestavěných platformách, mobilních zařízení a v systémech internetu věcí. V minimální konfiguraci jádro vyžaduje pro svou práci pouze 13 KB operační paměti. Přitom jádro podporuje moderní procesorové architektury, včetně ARM a RISC-V. Na jádru je realizována standardní knihovna C, která podporuje programové rozhraní definované ve standardu POSIX, a také knihovna rust-std.
Jádro poskytuje plánovač úloh, souborový systém, mechanismus správy paměti, síťový stack a sadu ovladačů. Podporuje několik algoritmů plánování úloh, mezi kterými jsou jak algoritmy pro rovnoměrné rozdělování časových kvant mezi procesy, tak algoritmy pro práci v reálném čase na základě výpočtu priorit. K dispozici je několik algoritmů alokace paměti optimalizovaných pro různé scénáře použití.
Poskytuje vlastní souborový systém s klasickou hierarchickou architekturou založenou na inode, stejně jako souborové systémy tmpfs, devfs, sysfs, procfs, nfs a fat32. TCP/IP stack podporuje POSIX Socket API, socketfd a zpracování dat v blokujícím a neblokujícím režimu, a může být používán v konfiguracích s několika síťovými kartami. Pro snížení režijních nákladů při přenosu dat se používá architektura zero-copy, která vylučuje mezilehlé vyrovnávání.
Pro vývoj ovladačů je k dispozici vrstva pro abstrakci přístupu k hardwaru, která umožňuje vytvářet ovladače v jazyce Rust a také přenášet ovladače v jazyce C, které byly již vytvořeny pro jiné jádra. Dokumentace k jádru je zatím omezena na pokyny pro sestavení a testování, stejně jako na tipy pro implementaci vlastních systémových volání a popis základních typů dat. Pro testování se doporučuje použít QEMU (mps2-an385, mps3-an547, virt-aarch64, virt-riscv64) nebo desku Raspberry Pi Pico2.
Zdroj: opennet.ru
