12 Repos
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 12 awesome GitHub repositories matching operating systems & systems programming · Device Drivers. 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.
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.
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.
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.
Dieses Projekt ist ein macOS-Systemkameratreiber und Software-Plugin, das Software-Videostreams als hardwareseitig erkannte Kameraeingänge bereitstellt. Es fungiert als OBS-Virtual-Camera-Plugin und ermöglicht es, die Live-Ausgabe von OBS als Webcam-Gerät in anderen Anwendungen zu nutzen. Das Tool ermöglicht das Routing von zusammengesetztem Video aus einer Produktionssuite in Videokonferenzanwendungen wie Zoom oder Google Meet. Dies erlaubt das Streamen bearbeiteter Szenen anstelle eines rohen Webcam-Feeds. Das System integriert sich unter macOS über einen Kernel-Level-Gerätetreiber und Shared-Memory-Buffer-Transfers, um Videoframes vom Anwendungsprozess an das Betriebssystem zu übertragen. Es nutzt das CoreMedia-Framework zur Handhabung von Videostream-Timing und Metadaten.
Provides a kernel-level device driver that creates a virtual video device recognized by the operating system.
embedded-notes ist eine Sammlung technischer Studienleitfäden und Entwicklungsnotizen mit Fokus auf Embedded Linux, Linux-Kernel-Internals und C-Programmierung. Sie dient als Referenz für die Entwicklung eingebetteter Systeme und als Vorbereitungsressource für technische Vorstellungsgespräche in diesem Bereich. Das Projekt bietet detaillierte Dokumentation zum Schreiben von Gerätetreibern, zur Verwaltung von virtuellem Speicher und zum Verständnis der Kernel-Internals. Es enthält zudem Leitfäden zu IoT-Netzwerkprotokollen wie MQTT und TCP/IP und skizziert die architektonischen Details von Chip-Architekturen und Hardware-Peripheriegeräten. Das Material deckt ein breites Spektrum der Systemprogrammierung ab, einschließlich manueller Speicherverwaltung, Prozesslebenszyklus-Management und der Implementierung von Konzepten für Echtzeitbetriebssysteme. Es enthält zudem Referenzen für Low-Level-Tools wie Cross-Kompilierung für ARM, Binäranalyse und Shell-Scripting für Build-Automatisierung.
Provides technical guides on implementing kernel-mode device drivers for memory, logging, and process communication.
NuttX ist ein POSIX-konformes Echtzeitbetriebssystem für Mikrocontroller, das von 8-Bit- bis 64-Bit-Architekturen reicht. Es bietet eine deterministische Ausführungsumgebung mit einem Echtzeit-Task-Scheduler und einem POSIX-Embedded-Kernel, um die Portabilität von Code über diverse Hardware-Ziele hinweg sicherzustellen. Das Projekt zeichnet sich durch eine umfassende Hardware-Abstraktionsschicht aus, die standardisierte Treiber für I2C, SPI, CAN und USB für verschiedene Halbleiter-Chipsätze bereitstellt. Es verfügt zudem über einen Embedded-Netzwerk-Stack mit Unterstützung für TCP, UDP, IPv4 und IPv6 sowie industrielle Protokolle wie Modbus und DroneCAN. Das System deckt ein breites Spektrum an Funktionen ab, einschließlich fortschrittlichem Speichermanagement mit On-Demand-Paging, sicheren kryptografischen Operationen und einem virtuellen Dateisystem zur Verwaltung unterschiedlicher Speichertypen. Es integriert zudem High-Level-Schnittstellen für grafische Benutzeroberflächen, Audiosynthese sowie die Ausführung mehrerer Skriptsprachen und WebAssembly-Workloads. Die Umgebung wird mittels Make oder CMake für spezifische Board-Konfigurationen und Halbleiter-Chipsätze erstellt.
Provides a framework for character, block, and specialized drivers to interface hardware with the OS.
This project provides a development framework for writing loadable Linux kernel modules using the Rust programming language. It establishes a methodology for safe systems programming by enforcing memory and thread safety within the restricted execution environment of the kernel, allowing developers to extend operating system functionality while preventing common memory corruption errors. The framework distinguishes itself through automated generation of type-safe foreign function interfaces, which bridge high-level code with low-level kernel headers and system structures. It maps high-level s
Enables the creation of reliable device drivers using type-safe bindings to communicate with kernel structures.