14 个仓库
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 14 awesome GitHub repositories matching operating systems & systems programming · Device Drivers. 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.
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.
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.
i2cdevlib 是一个专为 I2C 设备设计的周边驱动程序和硬件抽象层集合。它提供了一个传感器驱动程序集合、寄存器映射数据库和周边管理器,用于协调微控制器与硬件组件之间的通信。 该项目利用硬件抽象层将设备逻辑与特定的微控制器硬件和线路库解耦。这种传输层抽象允许相同的设备驱动程序在不同的硬件架构之间保持可移植性。 该库涵盖了广泛的硬件集成,包括运动和惯性传感器、环境监测器、实时时钟和电容式触摸感应。它还包括对 GPIO 扩展、模数转换以及驱动 OLED 显示器和数字仪表的支持。 该系统包括用于 I2C 协议调试和流量分析的工具,能够将原始逻辑分析仪数据与人类可读的寄存器映射定义相关联。
Automatically creates functional management code and bitfield access patterns using defined register map specifications.
该项目是一个 macOS 系统摄像头驱动程序和软件插件,将软件视频流暴露为硬件识别的摄像头输入。它作为 OBS 虚拟摄像头插件,允许将 OBS 的实时输出用作其他应用中的网络摄像头设备。 该工具支持将制作套件中的合成视频路由到 Zoom 或 Google Meet 等视频会议应用中。这允许流式传输处理后的场景,而不是原始的网络摄像头画面。 该系统使用内核级设备驱动程序和共享内存缓冲区传输与 macOS 集成,将视频帧从应用进程移动到操作系统。它利用 CoreMedia 框架处理视频流时序和元数据。
Provides a kernel-level device driver that creates a virtual video device recognized by the operating system.
embedded-notes 是一系列专注于嵌入式 Linux、Linux 内核内部机制和 C 语言编程的技术学习指南和开发笔记。它既是嵌入式系统开发的参考资料,也是该领域技术面试的备考资源。 该项目提供了关于编写设备驱动程序、管理虚拟内存以及理解内核内部机制的详细文档。它还包括关于 MQTT 和 TCP/IP 等物联网网络协议的指南,并概述了芯片架构和硬件外设的架构细节。 这些资料涵盖了广泛的系统编程领域,包括手动内存管理、进程生命周期管理以及实时操作系统概念的实现。它还包括低级工具的参考资料,例如 ARM 交叉编译、二进制分析以及用于构建自动化的 Shell 脚本。
Provides technical guides on implementing kernel-mode device drivers for memory, logging, and process communication.
NuttX 是一个符合 POSIX 标准的实时操作系统,专为从 8 位到 64 位架构的微控制器而设计。它提供了一个具有实时任务调度器和 POSIX 嵌入式内核的确定性执行环境,以确保跨不同硬件目标的可移植代码执行。 该项目通过全面的硬件抽象层脱颖而出,该层为各种半导体芯片组提供了 I2C、SPI、CAN 和 USB 的标准化驱动程序。它还具有支持 TCP、UDP、IPv4 和 IPv6 的嵌入式网络栈,以及 Modbus 和 DroneCAN 等工业协议。 该系统涵盖了广泛的功能,包括具有按需分页的高级内存管理、安全加密操作,以及用于管理不同存储类型的虚拟文件系统。它进一步集成了用于图形用户界面、音频合成以及执行多种脚本语言和 WebAssembly 工作负载的高级接口。 该环境使用 Make 或 CMake 构建,以针对特定的板卡配置和半导体芯片组。
Provides a framework for character, block, and specialized drivers to interface hardware with the OS.
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.
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.