3 repositorios
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 3 awesome GitHub repositories matching operating systems & systems programming · Safe Kernel Abstractions. Refine with filters or upvote what's useful.
Asterinas es un kernel de sistema operativo con seguridad de memoria diseñado para prevenir condiciones de carrera (data races) y corrupción de memoria. Funciona como un kernel compatible con la ABI de Linux, permitiendo la ejecución de binarios de Linux existentes y cargas de trabajo en contenedores mientras proporciona un modelo de distribución de sistema operativo declarativo. El proyecto se distingue por actuar como host de contenedores de máquinas virtuales y como SO invitado de computación confidencial, permitiendo su ejecución dentro de entornos de ejecución confiables (TEE) aislados por hardware como Intel TDX. Implementa una base de computación confiable mínima al aislar operaciones inseguras de bajo nivel y separa los mecanismos centrales del kernel de las implementaciones de políticas específicas. El sistema cubre una amplia gama de capacidades, incluyendo gestión de memoria física y virtual, multiprocesamiento simétrico y abstracción de hardware para varias arquitecturas de CPU. También incluye soporte para runtimes de contenedores seguros, un conjunto completo de primitivas de red y sockets, y una cadena de herramientas especializada para la compilación y emulación del kernel. El proyecto admite el despliegue en múltiples arquitecturas en plataformas x86-64, RISC-V 64 y LoongArch 64.
Enables the development of system calls, file systems, and device drivers using safe kernel abstractions.
This project provides a framework and toolset for developing memory-safe kernel-mode and user-mode drivers for the Windows operating system. It enables developers to build drivers using safe programming patterns that prevent common memory errors and system crashes, while providing the necessary infrastructure to interface with low-level hardware and system APIs. The framework distinguishes itself by offering procedural macros and binding generation tools that translate complex C-style system headers into idiomatic, type-safe code. It includes a custom global allocator designed for the strict
Wraps low-level system interfaces in memory-safe abstractions to reduce complexity and prevent common kernel errors.
Esta biblioteca ofrece una colección de abstracciones de bajo nivel para interactuar con periféricos de hardware en dispositivos Raspberry Pi usando el lenguaje de programación Rust. Funciona como una interfaz con seguridad de tipos para controlar pines físicos y gestionar la comunicación con componentes electrónicos y sensores externos. El proyecto destaca por el uso de abstracciones en tiempo de compilación que mapean llamadas a funciones de alto nivel directamente a instrucciones de hardware, asegurando una sobrecarga mínima en tiempo de ejecución. Proporciona un acceso consistente al hardware envolviendo interfaces de dispositivos a nivel de kernel y registros mapeados en memoria en abstracciones basadas en traits, lo que permite implementaciones de controladores intercambiables. La biblioteca cubre una amplia gama de capacidades de integración de hardware, incluyendo la gestión de protocolos de comunicación serie estándar como I2C, SPI y UART. También admite modulación por ancho de pulsos (PWM) y control de pines de entrada y salida de propósito general (GPIO), permitiendo la integración de sensores industriales y el disparo de actuadores. El software se distribuye como un crate, proporcionando un enfoque estructurado para el desarrollo de sistemas embebidos e interfaces de hardware en computadoras de placa única basadas en Linux.
Wraps kernel-level sysfs device interfaces into safe programming abstractions for consistent hardware access.