12 مستودعات
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 هي نواة نظام تشغيل هجينة تجمع بين بنية النواة الدقيقة وطبقة متجانسة لخدمات النظام. توفر أساساً لتطوير نظام التشغيل، وتدمج واجهات استدعاء النظام القياسية، وإطار عمل تعريف جهاز معياري، وأمن التحكم في الوصول الإلزامي. تتميز البنية بنواة دقيقة قائمة على 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.
هذا المشروع عبارة عن مكتبة Java لإنشاء اتصالات تسلسلية (serial port) خام بين أجهزة Android والأجهزة الخارجية باستخدام وضع مضيف USB. يوفر جسراً اتصالياً للتفاعل مع المتحكمات الدقيقة والمحولات دون الحاجة إلى صلاحيات الجذر (root). تتضمن المكتبة إطار عمل لتحديد الأجهزة لاكتشاف وتعيين الأجهزة التسلسلية باستخدام معرفات البائع والمنتج. وتتميز بتنفيذ برامج تشغيل متخصصة لمجموعات الشرائح مثل CDC و FTDI لتمكين تبادل البيانات عبر معايير الأجهزة المختلفة. تغطي قدرات تكامل الأجهزة بما في ذلك اكتشاف الأجهزة، وتكوين المنفذ التسلسلي لمعدلات الباود (baud rates)، وإدارة خطوط الإشارة للتحكم في تدفق الأجهزة.
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 باستخدام تعريف جهاز على مستوى النواة (kernel-level) وعمليات نقل مخزن الذاكرة المشتركة لنقل إطارات الفيديو من عملية التطبيق إلى نظام التشغيل. ويستخدم إطار عمل CoreMedia للتعامل مع توقيت تدفق الفيديو والبيانات الوصفية.
Provides a kernel-level device driver that creates a virtual video device recognized by the operating system.
embedded-notes هي مجموعة من أدلة الدراسة التقنية وملاحظات التطوير التي تركز على Linux المضمن، وداخلية نواة Linux، وبرمجة C. تعمل كمرجع لتطوير الأنظمة المضمنة ومورد تحضيري للمقابلات التقنية في هذا المجال. يوفر المشروع وثائق مفصلة حول كتابة برامج تشغيل الأجهزة، وإدارة الذاكرة الافتراضية، وفهم داخلية النواة. كما يتضمن أدلة حول بروتوكولات شبكة IoT، مثل MQTT وTCP/IP، ويحدد التفاصيل المعمارية لهياكل الرقائق والأجهزة الطرفية. تغطي المادة سطحاً واسعاً من برمجة الأنظمة، بما في ذلك إدارة الذاكرة اليدوية، وإدارة دورة حياة العمليات، وتنفيذ مفاهيم نظام التشغيل في الوقت الفعلي. كما تتضمن مراجع للأدوات منخفضة المستوى، مثل التجميع المتقاطع لـ ARM، وتحليل الثنائيات، وكتابة نصوص shell لأتمتة البناء.
Provides technical guides on implementing kernel-mode device drivers for memory, logging, and process communication.
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.
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.