awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

15 repositorios

Awesome GitHub RepositoriesDevice Drivers

Kernel-mode implementations for hardware device communication and interrupt management.

Distinct from Kernel Driver Implementation: Broadens from filesystem-specific drivers to general hardware device drivers

Explore 15 awesome GitHub repositories matching operating systems & systems programming · Device Drivers. Refine with filters or upvote what's useful.

Awesome Device Drivers GitHub Repositories

Encuentra los mejores repositorios con IA.Buscaremos los repositorios que mejor coincidan usando IA.
  • apple/darwin-xnuAvatar de apple

    apple/darwin-xnu

    11,258Ver en GitHub↗

    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.

    C
    Ver en GitHub↗11,258
  • imbushuo/mac-precision-touchpadAvatar de imbushuo

    imbushuo/mac-precision-touchpad

    10,350Ver en GitHub↗

    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.

    Capple-macbookbluetoothbluetooth-hid
    Ver en GitHub↗10,350
  • sysprog21/lkmpgAvatar de sysprog21

    sysprog21/lkmpg

    8,511Ver en GitHub↗

    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 how to register character devices with major numbers and file operations for user-space interaction.

    TeXbookscdevice-driver
    Ver en GitHub↗8,511
  • microsoft/windows-driver-samplesAvatar de microsoft

    microsoft/Windows-driver-samples

    7,772Ver en GitHub↗

    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.

    C
    Ver en GitHub↗7,772
  • linux-surface/linux-surfaceAvatar de linux-surface

    linux-surface/linux-surface

    7,413Ver en GitHub↗

    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.

    Shelllinuxlinux-surfacesurface-devices
    Ver en GitHub↗7,413
  • tock/tockAvatar de tock

    tock/tock

    6,351Ver en GitHub↗

    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.

    Rust
    Ver en GitHub↗6,351
  • mik3y/usb-serial-for-androidAvatar de mik3y

    mik3y/usb-serial-for-android

    5,621Ver en GitHub↗

    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.

    Java
    Ver en GitHub↗5,621
  • jrowberg/i2cdevlibAvatar de jrowberg

    jrowberg/i2cdevlib

    4,251Ver en GitHub↗

    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.

    C++
    Ver en GitHub↗4,251
  • johnboiles/obs-mac-virtualcamAvatar de johnboiles

    johnboiles/obs-mac-virtualcam

    4,036Ver en GitHub↗

    Este proyecto es un driver de cámara para el sistema macOS y un plugin de software que expone flujos de video de software como entradas de cámara reconocidas por el hardware. Funciona como un plugin de cámara virtual para OBS, permitiendo que la salida en vivo de OBS sea utilizada como un dispositivo de webcam dentro de otras aplicaciones. La herramienta permite el enrutamiento de video compuesto desde una suite de producción hacia aplicaciones de videoconferencia como Zoom o Google Meet. Esto permite la transmisión de escenas procesadas en lugar de una señal de webcam cruda. El sistema se integra con macOS utilizando un driver de dispositivo a nivel de kernel y transferencias de buffer de memoria compartida para mover fotogramas de video desde el proceso de la aplicación hacia el sistema operativo. Utiliza el framework CoreMedia para manejar la temporización y los metadatos del flujo de video.

    Provides a kernel-level device driver that creates a virtual video device recognized by the operating system.

    Objective-C++
    Ver en GitHub↗4,036
  • xiaowenxia/embedded-notesAvatar de xiaowenxia

    xiaowenxia/embedded-notes

    3,998Ver en GitHub↗

    embedded-notes es una colección de guías de estudio técnicas y notas de desarrollo centradas en Linux embebido, los internos del kernel de Linux y programación en C. Sirve como referencia para el desarrollo de sistemas embebidos y un recurso de preparación para entrevistas técnicas en el campo. El proyecto proporciona documentación detallada sobre la escritura de drivers de dispositivos, gestión de memoria virtual y comprensión de los internos del kernel. También incluye guías sobre protocolos de red IoT, como MQTT y TCP/IP, y describe los detalles arquitectónicos de arquitecturas de chips y periféricos de hardware. El material cubre una amplia superficie de programación de sistemas, incluyendo gestión manual de memoria, gestión del ciclo de vida de procesos y la implementación de conceptos de sistemas operativos en tiempo real (RTOS). También incluye referencias para herramientas de bajo nivel, como compilación cruzada para ARM, análisis binario y scripting de shell para la automatización de compilaciones.

    Provides technical guides on implementing kernel-mode device drivers for memory, logging, and process communication.

    armcdriver
    Ver en GitHub↗3,998
  • apache/nuttxAvatar de apache

    apache/nuttx

    3,912Ver en GitHub↗

    NuttX is a POSIX-compliant real-time operating system designed for microcontrollers ranging from 8-bit to 64-bit architectures. It provides a deterministic execution environment with a real-time task scheduler and a POSIX embedded kernel to ensure portable code execution across diverse hardware targets. The project distinguishes itself through a comprehensive hardware abstraction layer that provides standardized drivers for I2C, SPI, CAN, and USB across various semiconductor chipsets. It also features an embedded networking stack supporting TCP, UDP, IPv4, and IPv6, alongside industrial proto

    Provides a framework for character, block, and specialized drivers to interface hardware with the OS.

    Cembeddedmcumicrocontroller
    Ver en GitHub↗3,912
  • hyperdbg/hyperdbgAvatar de HyperDbg

    HyperDbg/HyperDbg

    3,885Ver en GitHub↗

    HyperDbg is a hardware-assisted kernel-mode debugging platform that leverages virtualization to monitor and control system execution. By utilizing hypervisor-level primitives, it enables deep system analysis and instrumentation without relying on standard operating system debugging interfaces. The framework provides a comprehensive environment for inspecting both kernel and user-mode processes, allowing for granular control over execution flow and system state. The project distinguishes itself through a transparent debugging layer designed to remain invisible to the target environment. It emp

    Lists connected PCI and PCIe devices along with vendor and device identification details.

    Cbinary-analysisdebugdebugger
    Ver en GitHub↗3,885
  • raspberrypi/pico-examplesAvatar de raspberrypi

    raspberrypi/pico-examples

    3,835Ver en GitHub↗

    This project is a reference library of firmware examples and a development framework for creating embedded C applications on the RP2040 microcontroller. It provides a collection of hardware peripheral drivers and foundational patterns for managing system resources in resource-constrained environments. The library features reference implementations for programmable I/O state machines, allowing for the creation of custom hardware-level protocols. It also provides a multicore embedded framework to distribute computational workloads across multiple processor cores using symmetric processing. The

    Supports creating custom USB peripherals like keyboards, mice, or storage drives by implementing specific device profiles.

    C
    Ver en GitHub↗3,835
  • openbsd/srcAvatar de openbsd

    openbsd/src

    3,808Ver en GitHub↗

    This repository contains the complete source code for the OpenBSD operating system and its base utilities. It is a Unix-like operating system focused on a secure, portable, and multi-user environment, featuring a C-based system kernel that manages hardware resources and provides essential services. The project provides a source-based system construction model to compile the core kernel and base utilities from raw files. It includes a cross-compilation toolchain for generating the tools and headers necessary to build binaries for target architectures different from the host machine. The codeb

    Implements a modular system of device drivers to interface the kernel with hardware.

    Copenbsd
    Ver en GitHub↗3,808
  • fishinabarrel/linux-kernel-module-rustAvatar de fishinabarrel

    fishinabarrel/linux-kernel-module-rust

    1,340Ver en GitHub↗

    Este proyecto proporciona un framework de desarrollo para escribir módulos cargables del kernel de Linux utilizando el lenguaje de programación Rust. Establece una metodología para la programación de sistemas segura al imponer seguridad de memoria y de hilos dentro del entorno de ejecución restringido del kernel, permitiendo a los desarrolladores extender la funcionalidad del sistema operativo mientras previenen errores comunes de corrupción de memoria. El framework se distingue por la generación automatizada de interfaces de funciones externas (FFI) con seguridad de tipos, que conectan código de alto nivel con cabeceras y estructuras del sistema de bajo nivel. Mapea construcciones de sincronización de alto nivel directamente a mecanismos de bloqueo nativos del kernel, asegurando que los datos compartidos permanezcan protegidos a través de múltiples hilos de ejecución y contextos de interrupción. El conjunto de herramientas se integra con los pipelines de compilación nativos del kernel para gestionar la compilación y el enlace de código fuente en objetos binarios. Al proporcionar abstracciones seguras para la interfaz con hardware y entornos de recursos limitados, soporta la creación de controladores de dispositivos y componentes de sistema fiables que mantienen reglas estrictas de propiedad y préstamo en tiempo de compilación.

    Enables the creation of reliable device drivers using type-safe bindings to communicate with kernel structures.

    Rust
    Ver en GitHub↗1,340
  1. Home
  2. Operating Systems & Systems Programming
  3. Kernel and Core Internals
  4. Kernel Development
  5. Kernel Driver Implementation
  6. Device Drivers

Explorar subetiquetas

  • Asynchronous Device Notifications1 sub-etiquetaDelivers a SIGIO signal to a user-space process when a device becomes ready for I/O after the process requests asynchronous notification. **Distinct from Device Drivers:** Distinct from Device Drivers: focuses on SIGIO-based asynchronous I/O notification, not general device driver implementation.
  • Character Device RegistrationsAssigns a major number and file operations to a driver so user-space programs can interact with hardware through device files. **Distinct from Device Drivers:** Distinct from Device Drivers: focuses on the registration of character devices with major numbers, not general driver implementation.
  • Character Device UnregistrationsReleases the major number and cleans up the device node when a driver module is removed from the kernel. **Distinct from Device Drivers:** Distinct from Device Drivers: focuses on the cleanup and unregistration of character devices, not general driver implementation.
  • Device Readiness Polling InterfacesNotifies user-space event loops whether a device is readable or writable without blocking, supporting poll, select, and epoll. **Distinct from Device Drivers:** Distinct from Device Drivers: focuses on poll/select/epoll readiness reporting, not general driver implementation.
  • Device Stacking ArchitecturesLayered driver hierarchies where I/O requests pass through sequences of function and filter drivers. **Distinct from Device Drivers:** Distinct from general Device Drivers: specifically addresses the WDM stacking and filtering mechanism.
  • Driver Code GeneratorsTools that automatically generate hardware device drivers from specification files. **Distinct from Device Drivers:** Focuses on the generation of the driver code itself rather than the runtime abstraction of the driver
  • PCI Device Driver Implementations1 sub-etiquetaBinds a driver to a PCI or PCIe device discovered by the kernel, then probes and manages its resources and interrupts. **Distinct from Device Drivers:** Distinct from Device Drivers: focuses specifically on PCI/PCIe bus driver binding and resource management, not general device drivers.
  • USB Device Driver ImplementationsBinds a driver to a USB interface discovered by the kernel, then submits and handles I/O requests through URBs. **Distinct from Device Drivers:** Distinct from Device Drivers: focuses specifically on USB interface binding and URB-based I/O, not general device drivers.