L'azienda Vivo ha aperto il codice del kernel BlueOS, scritto in Rust

L'azienda Vivo, che detiene circa il 10% del mercato globale degli smartphone (5° posto tra i produttori di smartphone), ha presentato il primo rilascio ufficiale aperto del kernel del sistema operativo BlueOS (Blue River OS). Il sistema operativo BlueOS è in sviluppo dal 2018 ed è già utilizzato negli smartwatch della serie Vivo Watch. Vivo sta inoltre lavorando all'applicazione di BlueOS in occhiali intelligenti, robot, terminali intelligenti e dispositivi AI consumer. Il codice del kernel è scritto in Rust ed è open source sotto licenza Apache 2.0. Anche i framework di sistema di BlueOS sono scritti in Rust.

Il sistema operativo BlueOS è inizialmente sviluppato tenendo conto della sicurezza e utilizza il linguaggio Rust per prevenire la comparsa di vulnerabilità causate da errori nella gestione della memoria, che statisticamente rappresentano il 70% di tutte le vulnerabilità nei sistemi operativi secondo Google e Microsoft. Per garantire un'utilizzo sicuro della memoria, BlueOS utilizza una combinazione di puntatori smart durante l'esecuzione e controlli in fase di compilazione forniti dal linguaggio Rust (tracciamento della proprietà degli oggetti, verifica dei prestiti delle variabili, gestione del ciclo di vita degli oggetti).

Il kernel di BlueOS (Blue River Kernel) è ottimizzato per un consumo minimo di risorse e può essere utilizzato su piattaforme embedded, dispositivi mobili e sistemi IoT. Nella sua configurazione minima, il kernel richiede solo 13 KB di memoria RAM per funzionare. Inoltre, il kernel supporta le moderne architetture dei processori, tra cui ARM e RISC-V. Sopra il kernel è implementata la libreria standard C, che supporta le interfacce di programmazione definite nello standard POSIX, oltre alla libreria rust-std.

Il kernel fornisce uno scheduler di attività, un file system, un meccanismo di gestione della memoria, uno stack di rete e un insieme di driver. Sono supportati diversi algoritmi di scheduling, tra cui algoritmi per la distribuzione uniforme dei quanti di tempo tra i processi e algoritmi per il funzionamento in tempo reale basati sul calcolo delle priorità. Sono disponibili diversi algoritmi di allocazione della memoria, ottimizzati per diversi scenari d'uso.

Viene fornito un file system proprietario con un'architettura gerarchica classica basata su inode, insieme a file system tmpfs, devfs, sysfs, procfs, nfs e fat32. Lo stack TCP/IP supporta POSIX Socket API, socketfd e l'elaborazione dei dati in modalità bloccante e non bloccante, e può essere utilizzato in configurazioni con più schede di rete. Per ridurre il sovraccarico durante la trasmissione dei dati, viene applicata un'architettura zero-copy che esclude il buffering intermedio.

Per lo sviluppo dei driver è previsto uno strato per l'astrazione dell'accesso all'hardware, che consente di creare driver in linguaggio Rust e di trasportare driver in linguaggio C già creati per altri kernel. La documentazione del kernel è attualmente limitata a istruzioni per la compilazione e il test, oltre a suggerimenti per l'implementazione delle proprie chiamate di sistema e descrizioni dei tipi di dati di base. Per il test, si consiglia di utilizzare QEMU (mps2-an385, mps3-an547, virt-aarch64, virt-riscv64) o la scheda Raspberry Pi Pico2.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster