34 dépôts
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 est un noyau de système d'exploitation hybride qui combine une architecture de micro-noyau avec une couche monolithique pour les services système. Il fournit une base pour le développement de systèmes d'exploitation, incorporant des interfaces d'appel système standardisées, un framework de pilotes de périphériques modulaire et une sécurité de contrôle d'accès obligatoire. L'architecture dispose d'un micro-noyau basé sur Mach et d'une couche monolithique basée sur BSD. Il utilise un bus de communication inter-processus par passage de messages pour un échange de données sécurisé entre les composants isolés du noyau et les processus en espace utilisateur, aux côtés d'un framework de pilotes orienté objet qui découple la logique spécifique au matériel du noyau central. Le système inclut un moteur de contrôle d'accès obligatoire pour l'application de la sécurité pilotée par les politiques et un débogueur de noyau distant pour inspecter la mémoire en direct et analyser les paniques système. Des capacités supplémentaires couvrent la planification multi-processeur, la coordination des ressources matérielles et un système de construction pour générer des images amorçables à travers différentes architectures. Le projet fournit des outils pour la gestion de la construction du noyau, la génération de symboles de débogage et un framework pour la vérification des appels système.
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.
Ce projet est une bibliothèque Java permettant d'établir des connexions série brutes entre des appareils Android et du matériel externe via le mode hôte USB. Il fournit un pont de communication pour interagir avec des microcontrôleurs et des adaptateurs sans nécessiter d'accès root. La bibliothèque inclut un framework d'identification d'appareils pour détecter et mapper le matériel série en utilisant les identifiants de vendeur et de produit. Elle propose des implémentations de pilotes spécialisées pour des chipsets tels que CDC et FTDI afin de permettre l'échange de données entre différentes normes matérielles. Elle couvre des capacités d'intégration matérielle incluant la découverte d'appareils, la configuration des ports série pour les débits en bauds, et la gestion des lignes de signal pour le contrôle de flux matériel.
Implements USB interface binding and I/O for Common Class and FTDI chipsets.
Flashlight est une bibliothèque de machine learning et de tenseurs autonome en C++ utilisée pour construire et entraîner des réseaux de neurones. Elle fonctionne comme un framework complet de réseaux de neurones et un moteur de différenciation automatique, fournissant les outils pour construire des graphes de calcul et calculer les gradients via la rétropropagation. Le projet sert de framework d'entraînement distribué, utilisant des opérations all-reduce pour synchroniser les gradients et les paramètres sur plusieurs nœuds de calcul et appareils. Il se distingue par une intégration profonde de la manipulation de tenseurs haute performance, l'interopérabilité native de la mémoire des appareils et un système pour synchroniser les poids entre les workers distribués afin d'accélérer l'entraînement de modèles à grande échelle. Le framework couvre un large éventail de capacités de deep learning, incluant la composition modulaire de couches pour concevoir des architectures complexes comme des blocs résiduels et des cellules récurrentes. Il fournit des utilitaires étendus de gestion de données pour l'ingestion et le préchargement, ainsi que des systèmes de sérialisation pour persister les états de modèle. De plus, il inclut une suite d'outils de surveillance et d'observabilité pour suivre les métriques d'entraînement et mesurer les erreurs de séquence. La bibliothèque est implémentée en C++.
Enables custom GPU kernels to operate on raw tensor memory addresses for high-performance mathematical operations.
Blackbone est une collection d'outils spécialisés pour le scan mémoire, l'injection de processus et les interfaces de pilotes noyau utilisés pour manipuler l'environnement d'exécution Windows. Il fournit un framework pour exécuter du code distant, mapper des images exécutables portables (PE) et gérer les threads à travers différentes limites de processus. Le projet inclut un pilote de mémoire noyau pour accéder à la mémoire noyau et modifier les droits des handles afin de masquer les allocations à la détection en mode utilisateur. Il dispose également d'une bibliothèque pour intercepter les appels de fonction dans des processus distants en utilisant des interruptions logicielles et des points d'arrêt matériels. La boîte à outils couvre des capacités plus larges en manipulation de mémoire virtuelle, telles que la lecture, l'écriture et l'allocation de mémoire dans des processus locaux ou distants. Elle fournit en outre des utilitaires pour la recherche de motifs mémoire afin de localiser des séquences d'octets spécifiques et la gestion de modules pour injecter ou éjecter des binaires.
Implements a kernel-mode driver for low-level system manipulation and hiding memory allocations from detection.
Mbed OS est un système d'exploitation temps réel conçu pour les appareils internet des objets (IoT) connectés et le matériel microcontrôleur. Il fournit un framework fondamental qui combine un système d'exploitation temps réel avec un framework de sécurité embarqué, une couche d'abstraction matérielle pour contrôler les capteurs et périphériques, et une plateforme de gestion d'appareils pour l'orchestration basée sur le cloud. Le système établit des fondations de sécurité pour protéger les produits connectés contre les accès non autorisés et les vulnérabilités. Il permet en outre le monitoring à distance et l'orchestration matérielle en connectant les appareils embarqués aux services cloud. La plateforme gère l'exécution concurrente via la coordination de tâches en temps réel et fournit une interface standardisée pour la gestion matérielle à travers différentes architectures de microcontrôleurs. Elle inclut également des mécanismes pour implémenter des comportements personnalisés de gestion des erreurs système et de récupération.
Implements a C++ template-based driver model to create efficient, reusable hardware drivers with minimal runtime overhead.
NCCL est une bibliothèque de communication haute performance et un framework de calcul GPU distribué conçu pour exécuter des échanges de données collectifs et point à point sur plusieurs GPU dans des systèmes à un ou plusieurs nœuds. Il sert de couche de transport GPU RDMA et d'orchestrateur de mémoire, facilitant la synchronisation à large bande passante des données et des gradients de modèle pour l'entraînement et l'inférence GPU distribués. La bibliothèque se distingue par sa capacité à exécuter des primitives de communication directement depuis les noyaux (kernels) GPU, supprimant le CPU hôte du chemin critique. Elle utilise une sélection de chemin consciente de la topologie pour optimiser le mouvement des données et emploie un transport réseau basé sur RDMA, incluant InfiniBand et NVLink, pour permettre un accès mémoire zéro-copie entre les appareils sur différents nœuds physiques. Le projet couvre un large éventail de modèles de communication collective, notamment les réductions, les diffusions (broadcasts), les rassemblements (gathers) et les échanges tous-à-tous, ainsi que l'accès mémoire distant point à point. Il fournit une gestion complète des communicateurs pour initialiser, partitionner et redimensionner les groupes GPU, ainsi qu'une gestion spécialisée de la mémoire pour enregistrer les tampons (buffers) et coordonner la mémoire partagée des appareils. Le système inclut une suite d'outils de surveillance et d'observabilité pour le suivi de la santé, la journalisation diagnostique et la surveillance des événements en temps réel, ainsi que des interfaces d'intégration pour les frameworks de machine learning, les graphes CUDA, MPI et Python.
Implements direct access to raw memory addresses for high-performance GPU kernel communication.
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.
Ce projet est une base de connaissances red teaming et un playbook de sécurité offensive conçu pour simuler le comportement d'un adversaire. Il sert de collection complète de guides techniques et de tactiques pour mener des opérations de red team. Le dépôt fournit des instructions détaillées pour l'exploitation d'Active Directory, y compris l'abus de Kerberos et l'élévation de privilèges de domaine. Il couvre l'évasion de défense via le déhooking d'API et l'obfuscation de payload, ainsi que la recherche sur les composants internes de Windows impliquant la manipulation d'objets noyau et de la mémoire système. La surface de capacité s'étend aux tests de pénétration réseau, à l'analyse et à l'ingénierie de logiciels malveillants, et au déploiement d'infrastructures de sécurité offensive. Il inclut également des méthodes pour le mouvement latéral, la persistance et l'exfiltration de données dans les environnements d'entreprise.
Provides technical guides for developing kernel drivers to manipulate system internals and execute exploits.
Tengine is a suite of tooling and a lightweight execution engine designed for running deep learning models on constrained embedded hardware. It provides an infrastructure for converting neural network models, quantizing weights, optimizing operator kernels, and benchmarking inference performance across CPU, GPU, and NPU units. The project features an automated operator kernel optimizer to generate high-efficiency kernels and a model quantization tool that reduces precision to integer formats to lower memory usage. It includes a dedicated hardware benchmarking tool to evaluate the execution sp
Generates high-efficiency operator kernels to improve execution speed and resource utilization for deep learning tasks.
i2cdevlib est une collection de pilotes de périphériques et de couches d'abstraction matérielle conçus pour les appareils I2C. Il fournit une collection de pilotes de capteurs, une base de données de registres et un gestionnaire de périphériques pour coordonner la communication entre les microcontrôleurs et les composants matériels. Le projet utilise une couche d'abstraction matérielle pour découpler la logique de l'appareil du matériel spécifique du microcontrôleur et des bibliothèques de câblage. Cette abstraction de la couche de transport permet aux pilotes de périphériques de rester portables sur différentes architectures matérielles. La bibliothèque couvre un large éventail d'intégrations matérielles, incluant des capteurs de mouvement et inertiels, des moniteurs environnementaux, des horloges temps réel et la détection tactile capacitive. Elle inclut également la prise en charge de l'extension GPIO, de la conversion analogique-numérique et du pilotage d'écrans OLED et de compteurs numériques. Le système inclut des outils pour le débogage du protocole I2C et l'analyse du trafic, permettant la corrélation des données brutes d'un analyseur logique avec des définitions de registres lisibles par l'homme.
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.