2 dépôts
Frameworks for implementing system calls and drivers using memory-safe interfaces to minimize the trusted computing base.
Distinct from Kernel Driver Implementation: Distinct from general driver implementation by focusing on the safety abstractions that minimize the trusted base.
Explore 2 awesome GitHub repositories matching operating systems & systems programming · Safe Kernel Abstractions. Refine with filters or upvote what's useful.
Asterinas est un noyau de système d'exploitation sécurisé en mémoire conçu pour prévenir les data races et la corruption mémoire. Il fonctionne comme un noyau compatible Linux-ABI, permettant l'exécution de binaires Linux existants et de charges de travail conteneurisées tout en offrant un modèle de distribution de système d'exploitation déclaratif. Le projet se distingue en agissant comme un hôte de conteneurs pour machines virtuelles et un OS invité pour le confidential computing, lui permettant de s'exécuter au sein d'environnements d'exécution isolés matériellement comme Intel TDX. Il implémente une base de calcul de confiance minimale en isolant les opérations dangereuses de bas niveau et sépare les mécanismes fondamentaux du noyau des implémentations de politiques spécifiques. Le système couvre un large éventail de capacités, incluant la gestion de la mémoire physique et virtuelle, le multi-processing symétrique et l'abstraction matérielle pour diverses architectures CPU. Il inclut également le support pour les runtimes de conteneurs sécurisés, un ensemble complet de primitives réseau et socket, ainsi qu'une toolchain spécialisée pour la compilation et l'émulation du noyau. Le projet prend en charge le déploiement multi-architecture sur les plateformes x86-64, RISC-V 64 et LoongArch 64.
Enables the development of system calls, file systems, and device drivers using safe kernel abstractions.
Cette bibliothèque fournit une collection d'abstractions de bas niveau pour interagir avec les périphériques matériels sur Raspberry Pi en utilisant le langage Rust. Elle sert d'interface typée pour contrôler les broches physiques et gérer la communication avec des composants électroniques et des capteurs externes. Le projet se distingue par l'utilisation d'abstractions à la compilation qui mappent directement les appels de fonctions de haut niveau vers des instructions matérielles, garantissant une surcharge minimale à l'exécution. Il offre un accès cohérent au matériel en encapsulant les interfaces de périphériques du noyau et les registres mappés en mémoire dans des abstractions basées sur des traits, permettant des implémentations de pilotes interchangeables. La bibliothèque couvre un large éventail de capacités d'intégration matérielle, incluant la gestion des protocoles de communication série standard tels que I2C, SPI et UART. Elle prend également en charge la modulation de largeur d'impulsion (PWM) et le contrôle des broches GPIO, permettant l'intégration de capteurs industriels et le déclenchement d'actionneurs. Le logiciel est distribué sous forme de crate, offrant une approche structurée pour le développement de systèmes embarqués et l'interfaçage matériel sur des ordinateurs monocarte sous Linux.
Wraps kernel-level sysfs device interfaces into safe programming abstractions for consistent hardware access.