34 Repos
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 ist ein hybrider Betriebssystemkern, der eine Mikrokernel-Architektur mit einer monolithischen Schicht für Systemdienste kombiniert. Er bietet eine Grundlage für die Betriebssystementwicklung und integriert standardisierte Systemaufruf-Schnittstellen, ein modulares Gerätetreiber-Framework und eine obligatorische Zugriffskontrollsicherheit. Die Architektur verfügt über einen Mach-basierten Mikrokernel und eine BSD-basierte monolithische Schicht. Sie nutzt einen nachrichtenbasierten Inter-Prozess-Kommunikationsbus für den sicheren Datenaustausch zwischen isolierten Kernel-Komponenten und Benutzerprozessen, neben einem objektorientierten Treiber-Framework, das hardwarespezifische Logik vom Kern-Kernel entkoppelt. Das System enthält eine Engine für obligatorische Zugriffskontrolle zur richtlinienbasierten Sicherheitsdurchsetzung und einen Remote-Kernel-Debugger zur Inspektion von Live-Speicher und zur Analyse von System-Panics. Zusätzliche Fähigkeiten decken die Multiprozessor-Planung, die Koordination von Hardwareressourcen und ein Build-System zur Generierung bootfähiger Images über verschiedene Architekturen hinweg ab. Das Projekt bietet Tools für das Kernel-Build-Management, die Generierung von Debug-Symbolen und ein Framework für die Systemaufruf-Verifizierung.
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.
Dieses Projekt ist eine Java-Bibliothek zum Aufbau von seriellen Rohverbindungen zwischen Android-Geräten und externer Hardware im USB-Host-Modus. Es bietet eine Kommunikationsbrücke für die Interaktion mit Mikrocontrollern und Adaptern, ohne dass Root-Zugriff erforderlich ist. Die Bibliothek enthält ein Framework zur Geräteidentifizierung, um serielle Hardware anhand von Vendor- und Product-IDs zu erkennen und zuzuordnen. Sie bietet spezialisierte Treiberimplementierungen für Chipsätze wie CDC und FTDI, um den Datenaustausch über verschiedene Hardware-Standards hinweg zu ermöglichen. Sie deckt Hardware-Integrationsfunktionen ab, einschließlich Geräteerkennung, Konfiguration serieller Ports für Baudraten und Verwaltung von Signalleitungen für Hardware-Flusssteuerung.
Implements USB interface binding and I/O for Common Class and FTDI chipsets.
Flashlight ist eine eigenständige C++-Bibliothek für maschinelles Lernen und Tensor-Berechnungen, die zum Erstellen und Trainieren neuronaler Netze verwendet wird. Sie fungiert als umfassendes Framework für neuronale Netze und Engine für automatische Differenzierung und bietet Werkzeuge zur Konstruktion von Berechnungsgraphen und zur Berechnung von Gradienten via Backpropagation. Das Projekt dient als Framework für verteiltes Training und nutzt All-Reduce-Operationen zur Synchronisation von Gradienten und Parametern über mehrere Rechenknoten und Geräte hinweg. Es zeichnet sich durch eine tiefe Integration von leistungsstarker Tensor-Manipulation, nativer Interoperabilität mit Gerätespeichern und einem System zur Synchronisation von Gewichten über verteilte Worker aus, um das Training großskaliger Modelle zu beschleunigen. Das Framework deckt eine breite Palette an Deep-Learning-Funktionen ab, einschließlich modularer Schichtkomposition für den Entwurf komplexer Architekturen wie Residual-Blöcke und rekurrente Zellen. Es bietet umfangreiche Datenmanagement-Utilities für Ingestion und Prefetching sowie Serialisierungssysteme zur Persistierung von Modellzuständen. Zusätzlich enthält es eine Suite an Überwachungs- und Observability-Tools zur Verfolgung von Trainingsmetriken und zur Messung von Sequenzfehlern. Die Bibliothek ist in C++ implementiert.
Enables custom GPU kernels to operate on raw tensor memory addresses for high-performance mathematical operations.
Blackbone ist eine Sammlung spezialisierter Tools für Speicherscans, Prozessinjektion und Kernel-Treiber-Schnittstellen, die zur Manipulation der Windows-Ausführungsumgebung verwendet werden. Es bietet ein Framework für die Ausführung von Remote-Code, das Mapping von Portable-Executable-Images und die Verwaltung von Threads über verschiedene Prozessgrenzen hinweg. Das Projekt enthält einen Kernel-Speichertreiber für den Zugriff auf den Kernelspeicher und die Änderung von Handle-Rechten, um Allokationen vor der Erkennung im User-Mode zu verbergen. Zudem bietet es eine Bibliothek zum Abfangen von Funktionsaufrufen in Remote-Prozessen mittels Software-Interrupts und Hardware-Breakpoints. Das Toolkit deckt umfassendere Funktionen der virtuellen Speichermanipulation ab, wie das Lesen, Schreiben und Allokieren von Speicher in lokalen oder Remote-Prozessen. Es bietet zudem Utilities für die Suche nach Speichermustern, um spezifische Byte-Sequenzen zu lokalisieren, sowie ein Modulmanagement für das Injizieren oder Entfernen von Binärdateien.
Implements a kernel-mode driver for low-level system manipulation and hiding memory allocations from detection.
Mbed OS is a real-time operating system designed for connected internet-of-things devices and microcontroller hardware. It provides a fundamental framework that combines a real-time operating system with an embedded security framework, a hardware abstraction layer for controlling sensors and peripherals, and a device management platform for cloud-based orchestration. The system establishes security foundations to protect connected products from unauthorized access and vulnerabilities. It further enables remote monitoring and hardware orchestration by connecting embedded devices to cloud servi
Implements a C++ template-based driver model to create efficient, reusable hardware drivers with minimal runtime overhead.
NCCL ist eine Hochleistungs-Kommunikationsbibliothek und ein Framework für verteiltes GPU-Computing, das für die Ausführung kollektiver und Punkt-zu-Punkt-Datenaustausche über mehrere GPUs in Einzel- oder Multi-Node-Systemen entwickelt wurde. Es dient als RDMA-GPU-Transportschicht und Speicher-Orchestrator, der die hochbandbreitige Synchronisation von Daten und Modellgradienten für verteiltes GPU-Training und Inference erleichtert. Die Bibliothek zeichnet sich durch ihre Fähigkeit aus, Kommunikationsprimitive direkt aus GPU-Kernels auszuführen, wodurch die Host-CPU aus dem kritischen Pfad entfernt wird. Sie nutzt topologiebewusste Pfadauswahl zur Optimierung der Datenbewegung und verwendet RDMA-basierten Netzwerktransport, einschließlich InfiniBand und NVLink, um Zero-Copy-Speicherzugriffe zwischen Geräten über verschiedene physische Knoten hinweg zu ermöglichen. Das Projekt deckt eine breite Palette an kollektiven Kommunikationsmustern ab, darunter Reduktionen, Broadcasts, Gathers und All-to-All-Austausche, neben Punkt-zu-Punkt-Remote-Speicherzugriffen. Es bietet umfassendes Communicator-Management für die Initialisierung, Partitionierung und Größenanpassung von GPU-Gruppen sowie spezialisiertes Speichermanagement für das Registrieren von Buffern und das Koordinieren von gemeinsam genutztem Gerätespeicher. Das System enthält eine Suite von Monitoring- und Observability-Tools für Health-Tracking, diagnostisches Logging und Echtzeit-Ereignisüberwachung sowie Integrationsschnittstellen für Machine-Learning-Frameworks, CUDA-Graphs, MPI und Python.
Implements direct access to raw memory addresses for high-performance GPU kernel communication.
Asterinas is a memory-safe operating system kernel designed to prevent data races and memory corruption. It functions as a Linux-ABI compatible kernel, enabling the execution of existing Linux binaries and container workloads while providing a declarative operating system distribution model. The project distinguishes itself by acting as a virtual machine container host and a confidential computing guest OS, allowing it to run within hardware-isolated Trusted Execution Environments such as Intel TDX. It implements a minimal trusted computing base by isolating unsafe low-level operations and se
Enables the development of system calls, file systems, and device drivers using safe kernel abstractions.
Dieses Projekt ist eine Wissensdatenbank für Red Teaming und ein Playbook für offensive Sicherheit, das darauf ausgelegt ist, das Verhalten von Angreifern zu simulieren. Es dient als umfassende Sammlung technischer Anleitungen und Taktiken für die Durchführung von Red-Team-Operationen. Das Repository bietet detaillierte Anweisungen für Active-Directory-Exploitation, einschließlich Kerberos-Missbrauch und Domain-Privilege-Escalation. Es behandelt Defense-Evasion durch API-Unhooking und Payload-Obfuskation sowie Windows-Internals-Forschung, die die Manipulation von Kernel-Objekten und Systemspeicher umfasst. Das Fähigkeitsspektrum erstreckt sich auf Netzwerk-Penetrationstests, Malware-Analyse und -Engineering sowie die Bereitstellung von Infrastruktur für offensive Sicherheit. Es enthält zudem Methoden für Lateral Movement, Persistenz und Datenexfiltration in Unternehmensumgebungen.
Provides technical guides for developing kernel drivers to manipulate system internals and execute exploits.
Tengine ist eine Suite von Tools und eine leichtgewichtige Execution-Engine für die Ausführung von Deep-Learning-Modellen auf eingeschränkter Embedded-Hardware. Sie bietet eine Infrastruktur zur Konvertierung neuronaler Netzwerkmodelle, zur Quantisierung von Gewichten, zur Optimierung von Operator-Kernels und zum Benchmarking der Inferenzleistung über CPU-, GPU- und NPU-Einheiten hinweg. Das Projekt zeichnet sich durch einen automatisierten Operator-Kernel-Optimierer zur Generierung hocheffizienter Kernels und ein Modell-Quantisierungstool aus, das die Präzision auf Integer-Formate reduziert, um den Speicherverbrauch zu senken. Es enthält ein dediziertes Hardware-Benchmarking-Tool zur Bewertung der Ausführungsgeschwindigkeit und Effizienz neuronaler Netzwerkarchitekturen auf Embedded-Geräten. Das System deckt die Modellformat-Konvertierung in eine hardware-agnostische interne Repräsentation, modulares Operator-Dispatching und Multi-Backend-Ausführung ab. Diese Funktionen ermöglichen die Transformation externer neuronaler Netzwerkdefinitionen in ein kompatibles Laufzeitformat für das Embedded-Deployment.
Generates high-efficiency operator kernels to improve execution speed and resource utilization for deep learning tasks.
i2cdevlib is a collection of peripheral drivers and hardware abstraction layers designed for I2C devices. It provides a sensor driver collection, a register map database, and a peripheral manager to coordinate communication between microcontrollers and hardware components. The project utilizes a hardware abstraction layer to decouple device logic from specific microcontroller hardware and wire libraries. This transport-layer abstraction allows the same device drivers to remain portable across different hardware architectures. The library covers a broad range of hardware integration, includin
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.