15 repository-uri
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.
XNU este un kernel de sistem de operare hibrid care combină o arhitectură de microkernel cu un strat monolitic pentru serviciile de sistem. Oferă o fundație pentru dezvoltarea sistemelor de operare, încorporând interfețe standardizate de apeluri de sistem, un framework modular de drivere de dispozitiv și securitate bazată pe controlul accesului obligatoriu. Arhitectura dispune de un microkernel bazat pe Mach și un strat monolitic bazat pe BSD. Utilizează un bus de comunicare inter-proces bazat pe transmiterea de mesaje pentru schimbul securizat de date între componentele izolate ale kernel-ului și procesele din user-space, alături de un framework de drivere orientat pe obiecte care decuplează logica specifică hardware-ului de kernel-ul de bază. Sistemul include un motor de control al accesului obligatoriu pentru aplicarea securității bazate pe politici și un debugger de kernel la distanță pentru inspectarea memoriei live și analizarea panicii sistemului. Capabilitățile suplimentare acoperă programarea multi-procesor, coordonarea resurselor hardware și un sistem de build pentru generarea de imagini bootabile pe diferite arhitecturi. Proiectul oferă instrumente pentru gestionarea build-ului kernel-ului, generarea simbolurilor de depanare și un framework pentru verificarea apelurilor de sistem.
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.
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.
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.
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.
Acest proiect este o bibliotecă Java pentru stabilirea conexiunilor seriale brute între dispozitive Android și hardware extern folosind modul USB host. Oferă o punte de comunicare pentru interacțiunea cu microcontrolere și adaptoare fără a necesita acces root. Biblioteca include un framework de identificare a dispozitivelor pentru a detecta și mapa hardware-ul serial folosind ID-uri de furnizor și produs. Dispune de implementări specializate de drivere pentru chipset-uri precum CDC și FTDI pentru a permite schimbul de date între diferite standarde hardware. Acoperă capabilități de integrare hardware, inclusiv descoperirea dispozitivelor, configurarea portului serial pentru ratele de baud și gestionarea liniilor de semnal pentru controlul fluxului hardware.
Implements USB interface binding and I/O for Common Class and FTDI chipsets.
i2cdevlib este o colecție de drivere periferice și straturi de abstractizare hardware concepute pentru dispozitive I2C. Oferă o colecție de drivere pentru senzori, o bază de date cu hărți de registre și un manager de periferice pentru a coordona comunicarea între microcontrolere și componentele hardware. Proiectul utilizează un strat de abstractizare hardware pentru a decupla logica dispozitivului de hardware-ul specific al microcontrolerului și bibliotecile de fire. Această abstractizare a stratului de transport permite ca aceleași drivere de dispozitiv să rămână portabile pe diferite arhitecturi hardware. Biblioteca acoperă o gamă largă de integrări hardware, inclusiv senzori de mișcare și inerțiali, monitoare de mediu, ceasuri în timp real și senzori tactili capacitivi. Include, de asemenea, suport pentru expansiunea GPIO, conversia analog-digitală și controlul afișajelor OLED și al contoarelor digitale. Sistemul include instrumente pentru depanarea protocolului I2C și analiza traficului, permițând corelarea datelor brute de la analizorul logic cu definițiile hărților de registre lizibile pentru oameni.
Automatically creates functional management code and bitfield access patterns using defined register map specifications.
This project is a macOS system camera driver and software plugin that exposes software video streams as hardware-recognized camera inputs. It functions as an OBS virtual camera plugin, allowing the live output of OBS to be utilized as a webcam device within other applications. The tool enables the routing of composited video from a production suite into video conferencing applications such as Zoom or Google Meet. This allows for the streaming of processed scenes instead of a raw webcam feed. The system integrates with macOS using a kernel-level device driver and shared-memory buffer transfer
Provides a kernel-level device driver that creates a virtual video device recognized by the operating system.
embedded-notes is a collection of technical study guides and development notes focused on embedded Linux, Linux kernel internals, and C programming. It serves as a reference for embedded systems development and a preparation resource for technical interviews in the field. The project provides detailed documentation on writing device drivers, managing virtual memory, and understanding kernel internals. It also includes guides on IoT network protocols, such as MQTT and TCP/IP, and outlines the architectural details of chip architectures and hardware peripherals. The material covers a broad sur
Provides technical guides on implementing kernel-mode device drivers for memory, logging, and process communication.
NuttX este un sistem de operare în timp real (RTOS) compatibil POSIX, conceput pentru microcontrolere de la arhitecturi pe 8 biți până la 64 de biți. Oferă un mediu de execuție determinist cu un scheduler de task-uri în timp real și un kernel embedded POSIX pentru a asigura execuția portabilă a codului pe diverse ținte hardware. Proiectul se distinge printr-un strat de abstractizare hardware cuprinzător care oferă drivere standardizate pentru I2C, SPI, CAN și USB pe diverse chipset-uri semiconductoare. De asemenea, dispune de un stack de rețea embedded care suportă TCP, UDP, IPv4 și IPv6, alături de protocoale industriale precum Modbus și DroneCAN. Sistemul acoperă o gamă largă de capabilități, inclusiv gestionarea avansată a memoriei cu paginare la cerere, operațiuni criptografice securizate și un sistem de fișiere virtual pentru gestionarea tipurilor de stocare disparate. De asemenea, integrează interfețe de nivel înalt pentru interfețe grafice (GUI), sinteză audio și execuția mai multor limbaje de scripting și workload-uri WebAssembly. Mediul este construit folosind Make sau CMake pentru a viza configurații specifice de plăci și chipset-uri.
Provides a framework for character, block, and specialized drivers to interface hardware with the OS.
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.
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.
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.
Acest proiect oferă un framework de dezvoltare pentru scrierea modulelor de kernel Linux încărcabile folosind limbajul de programare Rust. Stabilește o metodologie pentru programarea sigură a sistemelor prin impunerea siguranței memoriei și a firelor de execuție în mediul restricționat al kernel-ului, permițând dezvoltatorilor să extindă funcționalitatea sistemului de operare prevenind în același timp erorile comune de corupere a memoriei. Framework-ul se distinge prin generarea automată de interfețe de funcții străine (FFI) sigure din punct de vedere al tipurilor, care fac legătura între codul de nivel înalt și headerele sau structurile de sistem de nivel scăzut ale kernel-ului. Acesta mapează constructele de sincronizare de nivel înalt direct la mecanismele native de blocare ale kernel-ului, asigurându-se că datele partajate rămân protejate în mai multe fire de execuție și contexte de întrerupere. Setul de instrumente se integrează cu pipeline-urile native de build ale kernel-ului pentru a gestiona compilarea și link-area codului sursă în obiecte binare. Oferind abstracții sigure pentru interfațarea cu hardware-ul și mediile cu resurse limitate, acesta susține crearea de drivere de dispozitiv și componente de sistem fiabile, care mențin reguli stricte de proprietate și împrumut la momentul compilării.
Enables the creation of reliable device drivers using type-safe bindings to communicate with kernel structures.