16 Repos
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.
Dieses Projekt bietet eine Linux-Kernel-Entwicklungsumgebung und eine System-Emulations-Suite für das Erstellen und Debuggen von Kernel-Modulen und Bare-Metal-Assembly über mehrere Hardware-Architekturen hinweg. Es fungiert als umfassende Sandbox und Framework für Low-Level-Systementwicklung und nutzt QEMU, um Hardware-Umgebungen ohne physische Geräte zu simulieren. Die Umgebung integriert Cross-Compilation-Toolchains unter Verwendung von Buildroot und crosstool-NG, um x86_64-, ARMv7- und ARMv8-Plattformen von einem einzigen Host aus anzusteuern. Sie bietet ein spezialisiertes Kernel-Debugging-Framework, das GDB und KGDB für die schrittweise Ausführung und Zustandsinspektion von Kernel- und Userland-Prozessen nutzt. Zu den breiten Funktionen gehören automatisierte Regressionstests zur Isolierung von Boot- und Funktionsfehlern durch Versionskontroll-Bisection, Hardware-Abstraktion für das Management von CPU-Energiezuständen und Systemregistern sowie Low-Level-Testprimitive für Speicherzustandsintegrität und Assembly-Analyse. Das System enthält zudem Utilities für Performance-Benchmarking von Befehlen, Output-Logging und containerisiertes Workspace-Bootstrapping.
Cheat sheet for Linux kernel module development.
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.
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.
Dieses Projekt bietet einen strukturierten Lehrplan, der Linux-Kernel-Interna und Systemarchitektur vermittelt. Es dient als umfassende Schulungsressource für Entwickler und bietet praktische Laborübungen, die grundlegende Betriebssystemprinzipien wie Speicherverwaltung, Prozess-Scheduling und Interrupt-Handling abdecken. Der Lehrplan zeichnet sich dadurch aus, dass theoretische Konzepte direkt auf den Kernel-Quellcode abgebildet werden, wodurch Lernende die Systeminterna durch praktische Implementierungsaufgaben navigieren und analysieren können. Er erleichtert die Entwicklung von Hardware-Gerätetreibern und Systemmodulen durch die Bereitstellung von Starter-Code und technischen Anweisungen in einer sicheren, isolierten Umgebung. Das Projekt unterstützt das technische Lernen durch ein modulares Framework, das die Einrichtung virtualisierter Laborumgebungen und Hardware-Emulation umfasst. Diese Tools ermöglichen das sichere Erstellen, Bereitstellen und Debuggen von Low-Level-Systemcode, ohne die Stabilität des Host-Rechners zu gefährden.
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.