34 repositorios
Developing specialized drivers that operate within the kernel for high-performance filesystem requirements.
Distinct from Kernel Development: Focuses on the implementation of filesystem drivers rather than general OS kernel or bootloader development.
Explore 34 awesome GitHub repositories matching operating systems & systems programming · Kernel Driver Implementation. Refine with filters or upvote what's useful.
XNU es un kernel de sistema operativo híbrido que combina una arquitectura de microkernel con una capa monolítica para servicios del sistema. Proporciona una base para el desarrollo de sistemas operativos, incorporando interfaces de llamadas al sistema estandarizadas, un framework de controladores de dispositivos modular y seguridad de control de acceso obligatorio. La arquitectura cuenta con un microkernel basado en Mach y una capa monolítica basada en BSD. Utiliza un bus de comunicación entre procesos de paso de mensajes para el intercambio seguro de datos entre componentes aislados del kernel y procesos de espacio de usuario, junto con un framework de controladores orientado a objetos que desacopla la lógica específica del hardware del kernel central. El sistema incluye un motor de control de acceso obligatorio para la aplicación de seguridad basada en políticas y un depurador de kernel remoto para inspeccionar la memoria en vivo y analizar los pánicos del sistema. Las capacidades adicionales cubren la programación de multiprocesadores, coordinación de recursos de hardware y un sistema de compilación para generar imágenes arrancables a través de diferentes arquitecturas. El proyecto proporciona herramientas para la gestión de compilación del kernel, generación de símbolos de depuración y un framework para la verificación de llamadas al sistema.
Provides a modular framework for developing and managing kernel-mode hardware device drivers.
This project is a Windows Precision Touchpad driver and Apple Trackpad HID driver. It functions as an input device gesture driver that converts raw touch data from Apple trackpads and MacBooks into native multi-touch gestures and precise pointer movement. The driver implements the precision touchpad protocol to enable native Windows gesture and pointer controls for Apple hardware. This allows the operating system to recognize Apple trackpads as precision touchpads, replacing basic mouse functionality with native multi-finger swipes and precise scrolling. The implementation covers kernel-mode
Implements a kernel-mode driver to intercept hardware interrupts and manage low-level touchpad communication.
WinFSP is a framework for implementing custom file systems on Windows. It enables the creation of user-mode file systems that appear as standard disk drives or network shares to the operating system, allowing developers to implement file system logic in user space via a proxy architecture that avoids the need for custom kernel code. A primary differentiator is its FUSE compatibility layer, which maps POSIX-based file system calls to native Windows requests. This allows existing file systems written for the FUSE API to be ported to Windows and Cygwin environments. The project covers a wide ra
Enables building file system drivers directly within the kernel for high-performance requirements.
The Linux Kernel Module Programming Guide is an educational resource that teaches how to write, compile, and manage loadable kernel modules for modern Linux kernels. It covers the complete lifecycle of kernel modules, from building and loading to unloading and debugging, with a focus on extending kernel functionality without recompiling the entire kernel. The guide provides comprehensive coverage of core kernel programming concepts including dynamic module loading, file-operation registration, interrupt handling, kernel-user data copying, concurrency control, and deferred task scheduling. It
Teaches creating device drivers for PCI, USB, and character devices that interact with kernel subsystem interfaces.
LibreHardwareMonitor is a .NET library and system health monitoring tool for Windows. It provides a programmatic hardware sensor API and a low-level interface to access real-time temperature, voltage, and fan speed data from computer hardware components. The project serves as a bridge between Windows operating system calls and physical sensors, allowing for the monitoring of processors, graphics cards, motherboards, storage devices, and network adapters. This enables the tracking of system stability and the collection of environmental changes across various hardware components. The software
Uses a Ring-0 kernel driver to access low-level sensor readings unavailable to user-mode applications.
This repository is a collection of reference source code and implementation examples for developing drivers using the Windows Driver Kit. It provides hardware device driver samples and development templates for building kernel-mode software that enables communication between the Windows operating system and hardware devices. The library includes examples for creating universal Windows drivers, which utilize a shared set of interfaces to operate across multiple versions of the operating system. It also contains specialized implementation samples for various hardware categories, including netwo
Provides reference implementations of kernel-mode drivers for hardware device communication and interrupt management.
ALVR is a wireless virtual reality streaming tool and headset driver that transmits content from a PC to a headset over Wi-Fi to eliminate physical cables. It functions as a session orchestrator that manages a network-based pipeline for high-resolution frames and a virtual driver layer that enables a computer to communicate with and track wireless hardware. The system utilizes a UDP network protocol to synchronize compressed video frames and positional tracking data. It employs hardware-accelerated H.264 encoding to minimize lag and includes a virtual audio router to redirect microphone input
Allows the primary VR driver to run concurrently with third-party hardware drivers for additional device tracking.
This project provides a customized Linux kernel and driver suite designed to enable hardware compatibility for Surface devices. It focuses on building and patching the Linux kernel to provide driver support for proprietary hardware components that are missing from the upstream source. The system includes a secure boot kernel signing mechanism and a process for enrolling custom keys into the system firmware. This allows the execution of patched kernels while maintaining system security protections. The project covers peripheral driver support for touchscreens, styluses, and keyboards, as well
Provides kernel-mode drivers for touchscreens and styluses not available in the mainline kernel.
Tock is a secure embedded operating system and microcontroller kernel designed to isolate untrusted applications and drivers. It functions as a memory-safe process isolator that uses a combination of hardware memory protection and language-level type safety to execute mutually distrustful applications on bare metal. The system distinguishes itself through a hardware abstraction layer that decouples high-level components from specific microcontroller implementations using standardized traits. It further employs a virtualization layer to allow multiple independent software components to share a
Signals user processes by executing registered callback functions through a controlled system call interface.
A True Instrumentable Binary Emulation Framework
Emulates and analyzes kernel modules, drivers, and firmware for vulnerability research and security testing.
Este proyecto es una librería Java para establecer conexiones de puerto serie crudas entre dispositivos Android y hardware externo utilizando el modo host USB. Proporciona un puente de comunicación para interactuar con microcontroladores y adaptadores sin requerir acceso root. La librería incluye un framework de identificación de dispositivos para detectar y mapear hardware serie utilizando IDs de proveedor y producto. Cuenta con implementaciones de controladores especializados para chipsets como CDC y FTDI para permitir el intercambio de datos a través de diferentes estándares de hardware. Cubre capacidades de integración de hardware que incluyen el descubrimiento de dispositivos, la configuración de puertos serie para velocidades de baudios y la gestión de líneas de señal para el control de flujo de hardware.
Implements USB interface binding and I/O for Common Class and FTDI chipsets.
Flashlight es una biblioteca de aprendizaje automático y de tensores independiente en C++ utilizada para construir y entrenar redes neuronales. Funciona como un framework integral de redes neuronales y motor de diferenciación automática, proporcionando las herramientas para construir grafos de computación y calcular gradientes mediante retropropagación. El proyecto sirve como framework de entrenamiento distribuido, utilizando operaciones all-reduce para sincronizar gradientes y parámetros a través de múltiples nodos de cómputo y dispositivos. Se distingue por una integración profunda de manipulación de tensores de alto rendimiento, interoperabilidad nativa de memoria de dispositivo y un sistema para sincronizar pesos a través de trabajadores distribuidos para acelerar el entrenamiento de modelos a gran escala. El framework cubre una amplia gama de capacidades de aprendizaje profundo, incluyendo composición modular de capas para diseñar arquitecturas complejas como bloques residuales y celdas recurrentes. Proporciona utilidades extensas de gestión de datos para ingesta y prefetching, junto con sistemas de serialización para persistir estados de modelos. Además, incluye una suite de herramientas de monitorización y observabilidad para rastrear métricas de entrenamiento y medir errores de secuencia. La biblioteca está implementada en C++.
Enables custom GPU kernels to operate on raw tensor memory addresses for high-performance mathematical operations.
Blackbone es una colección de herramientas especializadas para escaneo de memoria, inyección de procesos e interfaces de controladores de kernel utilizadas para manipular el entorno de ejecución de Windows. Proporciona un framework para ejecutar código remoto, mapear imágenes ejecutables portátiles y gestionar hilos a través de diferentes límites de procesos. El proyecto incluye un controlador de memoria de kernel para acceder a la memoria del kernel y modificar derechos de manejo para ocultar asignaciones de la detección en modo usuario. También cuenta con una librería para interceptar llamadas a funciones en procesos remotos usando interrupciones de software y puntos de interrupción de hardware. El kit de herramientas cubre capacidades más amplias en la manipulación de memoria virtual, como leer, escribir y asignar memoria en procesos locales o remotos. Además, proporciona utilidades para la búsqueda de patrones de memoria para localizar secuencias de bytes específicas y gestión de módulos para inyectar o expulsar binarios.
Implements a kernel-mode driver for low-level system manipulation and hiding memory allocations from detection.
Mbed OS es un sistema operativo en tiempo real diseñado para dispositivos conectados de internet de las cosas (IoT) y hardware de microcontroladores. Proporciona un framework fundamental que combina un sistema operativo en tiempo real con un framework de seguridad embebido, una capa de abstracción de hardware para controlar sensores y periféricos, y una plataforma de gestión de dispositivos para la orquestación basada en la nube. El sistema establece fundamentos de seguridad para proteger los productos conectados de accesos no autorizados y vulnerabilidades. Además, permite el monitoreo remoto y la orquestación de hardware conectando dispositivos embebidos a servicios en la nube. La plataforma gestiona la ejecución concurrente a través de la coordinación de tareas en tiempo real y proporciona una interfaz estandarizada para la gestión de hardware a través de diferentes arquitecturas de microcontroladores. También incluye mecanismos para implementar el manejo de errores del sistema personalizado y comportamientos de recuperación.
Implements a C++ template-based driver model to create efficient, reusable hardware drivers with minimal runtime overhead.
NCCL es una biblioteca de comunicación de alto rendimiento y un framework de computación distribuida en GPU diseñado para ejecutar intercambios de datos colectivos y punto a punto a través de múltiples GPUs en sistemas de uno o varios nodos. Sirve como capa de transporte RDMA para GPU y orquestador de memoria, facilitando la sincronización de gran ancho de banda de datos y gradientes de modelos para el entrenamiento e inferencia distribuida en GPU. La biblioteca se distingue por su capacidad para ejecutar primitivas de comunicación directamente desde kernels de GPU, eliminando la CPU anfitriona del camino crítico. Utiliza la selección de rutas consciente de la topología para optimizar el movimiento de datos y emplea transporte de red basado en RDMA, incluyendo InfiniBand y NVLink, para permitir el acceso a memoria de copia cero entre dispositivos a través de diferentes nodos físicos. El proyecto cubre una amplia gama de patrones de comunicación colectiva, incluyendo reducciones, broadcasts, gathers e intercambios all-to-all, junto con acceso remoto a memoria punto a punto. Proporciona una gestión integral de comunicadores para inicializar, particionar y redimensionar grupos de GPU, así como una gestión de memoria especializada para registrar buffers y coordinar memoria compartida de dispositivo. El sistema incluye un conjunto de herramientas de monitoreo y observabilidad para el seguimiento de la salud, registro de diagnósticos y monitoreo de eventos en tiempo real, así como interfaces de integración para frameworks de aprendizaje automático, CUDA graphs, MPI y Python.
Implements direct access to raw memory addresses for high-performance GPU kernel communication.
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 is a red teaming knowledge base and offensive security playbook designed to simulate adversary behavior. It serves as a comprehensive collection of technical guides and tactics for executing red team operations. The repository provides detailed instructions for Active Directory exploitation, including Kerberos abuse and domain privilege escalation. It covers defense evasion through API unhooking and payload obfuscation, as well as Windows internals research involving the manipulation of kernel objects and system memory. The capability surface extends to network penetration testi
Provides technical guides for developing kernel drivers to manipulate system internals and execute exploits.
Tengine es una suite de herramientas y un motor de ejecución ligero diseñado para ejecutar modelos de aprendizaje profundo en hardware embebido con recursos limitados. Proporciona una infraestructura para convertir modelos de redes neuronales, cuantizar pesos, optimizar kernels de operadores y realizar benchmarking del rendimiento de inferencia a través de unidades CPU, GPU y NPU. El proyecto cuenta con un optimizador de kernels de operadores automatizado para generar kernels de alta eficiencia y una herramienta de cuantización de modelos que reduce la precisión a formatos enteros para disminuir el uso de memoria. Incluye una herramienta dedicada de benchmarking de hardware para evaluar la velocidad de ejecución y la eficiencia de arquitecturas de redes neuronales en dispositivos embebidos. El sistema cubre la conversión de formatos de modelos a una representación interna agnóstica del hardware, despacho modular de operadores y ejecución multi-backend. Estas capacidades permiten la transformación de definiciones externas de redes neuronales en un formato de ejecución compatible para despliegue embebido.
Generates high-efficiency operator kernels to improve execution speed and resource utilization for deep learning tasks.
i2cdevlib es una colección de controladores de periféricos y capas de abstracción de hardware diseñadas para dispositivos I2C. Proporciona una colección de controladores de sensores, una base de datos de mapas de registros y un gestor de periféricos para coordinar la comunicación entre microcontroladores y componentes de hardware. El proyecto utiliza una capa de abstracción de hardware para desacoplar la lógica del dispositivo del hardware específico del microcontrolador y las bibliotecas de cableado. Esta abstracción de la capa de transporte permite que los mismos controladores de dispositivo permanezcan portátiles a través de diferentes arquitecturas de hardware. La biblioteca cubre una amplia gama de integración de hardware, incluyendo sensores de movimiento e inerciales, monitores ambientales, relojes de tiempo real y detección táctil capacitiva. También incluye soporte para expansión GPIO, conversión de analógico a digital y el control de pantallas OLED y medidores digitales. El sistema incluye herramientas para la depuración del protocolo I2C y análisis de tráfico, permitiendo la correlación de datos brutos de analizadores lógicos con definiciones de mapas de registros legibles por humanos.
Automatically creates functional management code and bitfield access patterns using defined register map specifications.
ExecuTorch is a lightweight C++ runtime for deploying PyTorch models on mobile, embedded, and edge hardware. It provides an ahead-of-time compilation pipeline that exports, quantizes, and lowers model graphs into compact serialized programs, then executes them through a minimal runtime with hardware acceleration and on-device large language model inference capabilities. The project distinguishes itself through a hardware accelerator delegate system that partitions model subgraphs and offloads computation to specialized backends including NPUs, GPUs, and DSPs from Apple, Arm, Intel, MediaTek,
ExecuTorch adds or replaces operator implementations in the kernel library to support specialized hardware or logic.