34 个仓库
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 是一个混合操作系统内核,结合了微内核架构和用于系统服务的单体层。它为操作系统开发提供了基础,结合了标准化的系统调用接口、模块化设备驱动程序框架和强制访问控制安全。 该架构具有基于 Mach 的微内核和基于 BSD 的单体层。它利用消息传递进程间通信总线在隔离的内核组件和用户空间进程之间进行安全数据交换,以及将硬件特定逻辑与核心内核解耦的面向对象驱动程序框架。 该系统包括用于策略驱动安全执行的强制访问控制引擎,以及用于检查实时内存和分析系统崩溃的远程内核调试器。附加能力涵盖多处理器调度、硬件资源协调以及用于跨不同架构生成可引导镜像的构建系统。 该项目提供用于内核构建管理、调试符号生成的工具,以及用于系统调用验证的框架。
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.
This project is a Java library for establishing raw serial port connections between Android devices and external hardware using USB host mode. It provides a communication bridge for interacting with microcontrollers and adapters without requiring root access. The library includes a device identification framework to detect and map serial hardware using vendor and product IDs. It features specialized driver implementations for chipsets such as CDC and FTDI to enable data exchange across different hardware standards. It covers hardware integration capabilities including device discovery, seria
Implements USB interface binding and I/O for Common Class and FTDI chipsets.
Flashlight is a standalone C++ machine learning library and tensor library used for building and training neural networks. It functions as a comprehensive neural network framework and automatic differentiation engine, providing the tools to construct computation graphs and calculate gradients via backpropagation. The project serves as a distributed training framework, utilizing all-reduce operations to synchronize gradients and parameters across multiple compute nodes and devices. It distinguishes itself through deep integration of high-performance tensor manipulation, native device memory in
Enables custom GPU kernels to operate on raw tensor memory addresses for high-performance mathematical operations.
Blackbone 是一套专门用于内存扫描、进程注入和内核驱动接口的工具集合,用于操纵 Windows 执行环境。它提供了一个用于执行远程代码、映射可执行映像以及跨不同进程边界管理线程的框架。 该项目包含一个内核内存驱动程序,用于访问内核内存并修改句柄权限,从而在用户模式检测中隐藏分配。它还具有一个库,用于使用软件中断和硬件断点拦截远程进程中的函数调用。 该工具包涵盖了虚拟内存操作的更广泛功能,例如在本地或远程进程中读取、写入和分配内存。它还提供了用于定位特定字节序列的内存模式搜索实用程序,以及用于注入或卸载二进制文件的模块管理功能。
Implements a kernel-mode driver for low-level system manipulation and hiding memory allocations from detection.
Mbed OS 是专为互联物联网设备和微控制器硬件设计的实时操作系统。它提供了一个基础框架,将实时操作系统与嵌入式安全框架、用于控制传感器和外设的硬件抽象层以及用于云端编排的设备管理平台相结合。 该系统建立了安全基础,以保护互联产品免受未经授权的访问和漏洞攻击。它还通过将嵌入式设备连接到云服务,实现了远程监控和硬件编排。 该平台通过实时任务协调管理并发执行,并为不同微控制器架构的硬件管理提供了标准化接口。它还包括用于实现自定义系统错误处理和恢复行为的机制。
Implements a C++ template-based driver model to create efficient, reusable hardware drivers with minimal runtime overhead.
NCCL 是一个高性能通信库和分布式 GPU 计算框架,专为在单节点或多节点系统中的多个 GPU 之间执行集合和点对点数据交换而设计。它充当 RDMA GPU 传输层和内存编排器,为分布式 GPU 训练和推理提供高带宽的数据和模型梯度同步。 该库的特色在于能够直接从 GPU 内核执行通信原语,将主机 CPU 从关键路径中移除。它利用拓扑感知路径选择来优化数据移动,并采用包括 InfiniBand 和 NVLink 在内的基于 RDMA 的网络传输,以实现设备跨不同物理节点之间的零拷贝内存访问。 该项目涵盖了广泛的集合通信模式,包括归约(Reductions)、广播(Broadcasts)、收集(Gathers)和全对全交换(All-to-all exchanges),以及点对点远程内存访问。它提供全面的通信器管理,用于初始化、分区和调整 GPU 组大小,以及用于注册缓冲区和协调共享设备内存的专用内存管理。 该系统包括一套用于健康跟踪、诊断日志记录和实时事件监控的监控与可观测性工具,以及用于机器学习框架、CUDA Graphs、MPI 和 Python 的集成接口。
Implements direct access to raw memory addresses for high-performance GPU kernel communication.
Asterinas 是一个内存安全的操作系统内核,旨在防止数据竞争和内存损坏。它作为一个兼容 Linux-ABI 的内核,能够运行现有的 Linux 二进制文件和容器工作负载,同时提供声明式的操作系统分发模型。 该项目的特色在于充当虚拟机容器宿主机和机密计算客户机操作系统,使其能够在 Intel TDX 等硬件隔离的可信执行环境(TEE)中运行。它通过隔离不安全底层操作实现了最小化的可信计算基(TCB),并将核心内核机制与特定策略实现分离开来。 该系统涵盖了广泛的能力,包括物理和虚拟内存管理、对称多处理(SMP),以及针对各种 CPU 架构的硬件抽象。它还包括对安全容器运行时的支持、一套全面的网络和 Socket 原语,以及用于内核编译和仿真的专用工具链。 该项目支持在 x86-64、RISC-V 64 和 LoongArch 64 平台上进行多架构部署。
Enables the development of system calls, file systems, and device drivers using safe kernel abstractions.
本项目是一个红队知识库和进攻性安全手册,旨在模拟对手行为。它作为技术指南和战术的综合集合,用于执行红队行动。 该存储库提供了 Active Directory 渗透测试的详细说明,包括 Kerberos 滥用和域权限提升。它涵盖了通过 API 解钩 (unhooking) 和载荷混淆进行的防御规避,以及涉及内核对象和系统内存操作的 Windows 内部研究。 功能范围扩展到网络渗透测试、恶意软件分析与工程,以及进攻性安全基础设施的部署。它还包括在企业环境中进行横向移动、持久化和数据外泄的方法。
Provides technical guides for developing kernel drivers to manipulate system internals and execute exploits.
Tengine 是一套工具和轻量级执行引擎,专为在受限嵌入式硬件上运行深度学习模型而设计。它提供了一个基础设施,用于转换神经网络模型、量化权重、优化算子内核,并跨 CPU、GPU 和 NPU 单元对推理性能进行基准测试。 该项目具有自动化算子内核优化器以生成高效内核,以及将精度降低为整数格式以降低内存使用量的模型量化工具。它包括一个专用的硬件基准测试工具,用于评估神经网络架构在嵌入式设备上的执行速度和效率。 该系统涵盖了模型格式到硬件无关内部表示的转换、模块化算子调度和多后端执行。这些能力允许将外部神经网络定义转换为兼容的运行时格式以进行嵌入式部署。
Generates high-efficiency operator kernels to improve execution speed and resource utilization for deep learning tasks.
i2cdevlib 是一个专为 I2C 设备设计的周边驱动程序和硬件抽象层集合。它提供了一个传感器驱动程序集合、寄存器映射数据库和周边管理器,用于协调微控制器与硬件组件之间的通信。 该项目利用硬件抽象层将设备逻辑与特定的微控制器硬件和线路库解耦。这种传输层抽象允许相同的设备驱动程序在不同的硬件架构之间保持可移植性。 该库涵盖了广泛的硬件集成,包括运动和惯性传感器、环境监测器、实时时钟和电容式触摸感应。它还包括对 GPIO 扩展、模数转换以及驱动 OLED 显示器和数字仪表的支持。 该系统包括用于 I2C 协议调试和流量分析的工具,能够将原始逻辑分析仪数据与人类可读的寄存器映射定义相关联。
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.