16 مستودعات
Resources for Linux kernel module development, drivers, and embedded Linux systems.
Explore 16 awesome GitHub repositories matching part of an awesome list · Linux Kernel Development. Refine with filters or upvote what's useful.
This project is a technical reference and educational guide focused on the internal architecture of the Linux kernel. It serves as a low-level systems programming resource and documentation for operating system internals, detailing the implementation of core mechanisms within the kernel source code. The materials provide a detailed study of the Linux kernel, tracing behavior through actual C source and assembly. It specifically covers the progression from the bootloader and decompression to the final kernel entry point, alongside the management of hardware interrupts and symmetric multiproces
In-depth guide to Linux kernel internals.
This project is an open source Linux GPU kernel driver implemented as a loadable kernel module. It functions as a GPU firmware loader, providing the low-level driver services necessary to enable direct communication between the operating system and graphics processing units. The driver utilizes a dual-module architecture that separates GPL-licensed kernel code from proprietary firmware blobs. This system extracts and links signed binary firmware images into the kernel modules at driver load time. The project provides driver support for Turing-architecture GPUs and all subsequent newer hardwa
Implements a loadable kernel module to extend the Linux kernel for graphics hardware communication.
This project is a Linux kernel designed for Windows Linux integration, providing the underlying operating system kernel required to execute binary files and applications within the Windows Subsystem for Linux. It utilizes hypervisor-based virtualization to run a full kernel within a lightweight utility virtual machine managed by a Windows host. The repository enables the customization and compilation of the kernel from source. This allows for the modification of system behavior, the addition of specific drivers, and the tailoring of hardware compatibility for virtualized environments. The sy
Allows modifying and compiling the Linux kernel to add specific features or drivers for use within the Windows Subsystem for Linux.
This repository provides the Android device kernel and the corresponding Linux kernel source tree. It serves as the foundational codebase for managing the hardware architecture and power management of mobile devices. The project includes a comprehensive mobile hardware driver set designed to manage device-specific components, such as CPUs, GPUs, and cellular modems. The source code supports activities including Android kernel customization, custom ROM development, Linux kernel auditing, and mobile driver development.
Provides the source code and baseline for customizing the Android device kernel.
Containerization is a Swift-based framework that runs Linux containers in lightweight virtual machines on Apple Silicon Macs. It provides a native container runtime for macOS, enabling developers to execute Linux containers directly on their Apple Silicon hardware without requiring a separate Linux environment or Docker Desktop. The framework supports custom Linux kernel injection, allowing users to provide their own kernel images and select per-container kernel versions and configurations. It includes an ext4 filesystem image builder for creating root filesystems from scratch, and an OCI ima
Accepts user-provided kernel images and supports per-container kernel version and configuration selection.
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
Modifies and recompiles the Linux kernel to add hardware support missing from the upstream source.
A collection of links related to Linux kernel security and exploitation
Resources for Linux kernel security and exploitation.
CppGuide is a curated collection of educational resources and practical guides focused on C++ server development, Linux kernel internals, concurrent programming, network protocols, and security exploitation. It provides structured learning paths for backend developers, covering everything from interview preparation to building high-performance network servers and understanding operating system fundamentals. The guide distinguishes itself by offering in-depth, hands-on tutorials that walk through real-world implementations, including building a Redis-like server from scratch, designing custom
Offers an in-depth guide to Linux kernel architecture, memory management, scheduling, and device driver development.
libfuse is a library and kernel module combination that enables the development of custom Linux filesystems that run in userspace rather than in kernel space. It provides a bridge between the kernel's virtual filesystem layer and a userspace daemon, allowing filesystem operations to be forwarded and handled by a regular user process. The project offers two distinct APIs: a high-level callback-driven API where filesystem operations are implemented as simple functions that return results synchronously, and a low-level API that exposes raw kernel request structures directly for fine-grained contr
Supplies headers, utilities, and build tools for creating custom userspace filesystems on Linux.
يوفر هذا المشروع بيئة تطوير لنواة Linux ومجموعة محاكاة نظام لبناء وتصحيح وحدات النواة وتجميع الـ baremetal عبر بنيات أجهزة متعددة. يعمل كبيئة تجريبية وإطار عمل شامل لتطوير النظام منخفض المستوى، باستخدام QEMU لمحاكاة بيئات الأجهزة دون الحاجة إلى أجهزة مادية. تدمج البيئة سلاسل أدوات التجميع المتقاطع باستخدام Buildroot و crosstool-NG لاستهداف منصات x86_64 و ARMv7 و ARMv8 من مضيف واحد. وتتميز بإطار عمل متخصص لتصحيح أخطاء النواة يستفيد من GDB و KGDB للتنفيذ خطوة بخطوة وفحص حالة كل من عمليات النواة ومساحة المستخدم. تشمل القدرات الواسعة اختبار الانحدار التلقائي لعزل فشل التمهيد والوظائف من خلال تقسيم التحكم في الإصدار، وتجريد الأجهزة لإدارة حالات طاقة وحدة المعالجة المركزية وسجلات النظام، وبدائيات اختبار منخفضة المستوى لسلامة حالة الذاكرة وتحليل التجميع. يتضمن النظام أيضاً أدوات لقياس أداء الأوامر، وتسجيل المخرجات، وتشغيل مساحة العمل المعبأة في حاويات.
Cheat sheet for Linux kernel module development.
embedded-notes هي مجموعة من أدلة الدراسة التقنية وملاحظات التطوير التي تركز على Linux المضمن، وداخلية نواة Linux، وبرمجة C. تعمل كمرجع لتطوير الأنظمة المضمنة ومورد تحضيري للمقابلات التقنية في هذا المجال. يوفر المشروع وثائق مفصلة حول كتابة برامج تشغيل الأجهزة، وإدارة الذاكرة الافتراضية، وفهم داخلية النواة. كما يتضمن أدلة حول بروتوكولات شبكة IoT، مثل MQTT وTCP/IP، ويحدد التفاصيل المعمارية لهياكل الرقائق والأجهزة الطرفية. تغطي المادة سطحاً واسعاً من برمجة الأنظمة، بما في ذلك إدارة الذاكرة اليدوية، وإدارة دورة حياة العمليات، وتنفيذ مفاهيم نظام التشغيل في الوقت الفعلي. كما تتضمن مراجع للأدوات منخفضة المستوى، مثل التجميع المتقاطع لـ ARM، وتحليل الثنائيات، وكتابة نصوص shell لأتمتة البناء.
Offers a collection of technical study guides for kernel drivers, bootloaders, and embedded software development.
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
Provides a framework for writing loadable Linux kernel modules with memory safety guarantees.
A C library for peripheral I/O (GPIO, LED, PWM, SPI, I2C, MMIO, Serial) in Linux.
C library for peripheral I/O in Linux.
This project provides a structured educational curriculum designed to teach Linux kernel internals and system architecture. It serves as a comprehensive training resource for developers, offering hands-on laboratory exercises that cover core operating system principles such as memory management, process scheduling, and interrupt handling. The curriculum distinguishes itself by mapping theoretical concepts directly to kernel source code, allowing learners to navigate and analyze system internals through practical implementation tasks. It facilitates the development of hardware device drivers a
Guides developers through the process of writing, testing, and debugging hardware device drivers and system-level modules in a safe environment.
This is reference from 動手寫 Linux Driver
Practice exercises for Linux driver development.
Overview Current development state MLL on ARM (AArch64) Future improvements How to build Overlay bundles Runtime software GraalVM BIOS and UEFI Installation Publications Related projects Thank you!
Educational minimal Linux distribution.