Compania Vivo, care deține aproximativ 10% din piața mondială a smartphone-urilor (locul 5 între producători), a lansat primul release oficial deschis al nucleului sistemului de operare BlueOS (Blue River OS). Sistemul de operare BlueOS este dezvoltat din 2018 și este deja utilizat în ceasurile inteligente din seria Vivo Watch. Vivo lucrează de asemenea la aplicarea BlueOS în ochelarii inteligenți, roboți, terminale inteligente și dispozitive AI pentru consumatori. Codul nucleului este scris în limbajul Rust și este deschis sub licența Apache 2.0. Framework-urile de sistem BlueOS sunt, de asemenea, scrise în Rust.
Sistemul de operare BlueOS a fost inițial dezvoltat având în vedere securitatea și utilizează limbajul Rust pentru a preveni apariția vulnerabilităților cauzate de erori în gestionarea memoriei, care reprezintă statistic, conform Google și Microsoft, 70% din toate vulnerabilitățile sistemelor de operare. Pentru a asigura o gestionare sigură a memoriei, BlueOS folosește o combinație de pointeri inteligenți la runtime și verificări la etapa de compilare, oferite de limbajul Rust (urmărirea proprietății obiectelor, verificarea împrumutului variabilelor, gestionarea duratei de viață a obiectelor).
Nucleul BlueOS (Blue River Kernel) este optimizat pentru un consum minim de resurse și poate fi utilizat pe platforme încorporate, dispozitive mobile și sisteme pentru internetul lucrurilor. În configurația minimă, nucleul necesită doar 13 KB de memorie RAM pentru a funcționa. De asemenea, nucleul suportă arhitecturi moderne de procesor, inclusiv ARM și RISC-V. Peste nucleu este implementată biblioteca standard C, care suportă interfețele de programare definite în standardul POSIX, precum și biblioteca rust-std.
Nucleul oferă un planificator de sarcini, un sistem de fișiere, un mecanism de gestionare a memoriei, un stack de rețea și un set de drivere. Suportă mai multe algoritmi de planificare a sarcinilor, inclusiv algoritmi pentru distribuirea uniformă a cuantumurilor de timp între procese, precum și algoritmi pentru operarea în timp real pe baza calculului priorităților. Sunt disponibile mai multe algoritmi de alocare a memoriei, optimizați pentru diferite scenarii de utilizare.
Se oferă un sistem de fișiere propriu cu arhitectură ierarhică clasică bazat pe inode, precum și sisteme de fișiere tmpfs, devfs, sysfs, procfs, nfs și fat32. Stiva TCP/IP suportă POSIX Socket API, socketfd și procesarea datelor în moduri blocante și neblocate, și poate fi utilizată în configurații cu mai multe plăci de rețea. Pentru a reduce supracosturile în transferurile de date, se aplică arhitectura zero-copy, care elimină tamponarea intermediară.
Pentru dezvoltarea driverelor, se oferă un strat pentru abstractizarea accesului la hardware, care permite crearea de drivere în limbajul Rust, precum și portarea driverelor scrise în C, deja create pentru alte nuclee. Documentația pentru nucleu este, deocamdată, limitată la instrucțiuni de construire și testare, precum și sfaturi pentru implementarea propriilor apeluri de sistem și descrierea tipurilor de date de bază. Pentru testare, se recomandă utilizarea QEMU (mps2-an385, mps3-an547, virt-aarch64, virt-riscv64) sau a plăcii Raspberry Pi Pico2.
Sursa: opennet.ro
