For a reference for Linux kernel programming interfaces, the first results are sysprog21/lkmpg (The Linux Kernel Module Programming Guide is a comprehensive reference for writing and managing loadable kernel modules, covering device drivers, file operations, synchronization, and other core kernel APIs — exactly the kind of documentation this search targets), torvalds/linux (The Linux kernel source tree is the authoritative implementation and reference for all Linux kernel programming interfaces—module APIs, device drivers, system calls, eBPF, synchronization primitives, and more—making it the ultimate resource for kernel-level development) and cirosantilli/linux-kernel-module-cheat (This repo provides an emulation-based setup for studying and developing Linux kernel modules, with thorough documentation and automated tests, making it a practical resource for learning kernel programming interfaces). iovisor/bcc and hust-open-atom-club/linux-insides-zh round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
We curate open-source GitHub repositories matching “kernel programming interfaces”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
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
The Linux Kernel Module Programming Guide is a comprehensive reference for writing and managing loadable kernel modules, covering device drivers, file operations, synchronization, and other core kernel APIs — exactly the kind of documentation this search targets.
The Linux kernel is a monolithic operating system core that manages hardware resources, memory, and process scheduling across diverse computing architectures. It provides a standardized, POSIX-compliant environment for application execution while maintaining a modular driver framework that allows for the dynamic loading and removal of hardware interfaces. The project is distinguished by its high-performance concurrency toolkit, which utilizes lockless synchronization primitives and read-copy-update mechanisms to manage shared data access in multi-core environments. It incorporates a comprehen
The Linux kernel source tree is the authoritative implementation and reference for all Linux kernel programming interfaces—module APIs, device drivers, system calls, eBPF, synchronization primitives, and more—making it the ultimate resource for kernel-level development.
This project provides a Linux kernel development environment and a system emulation suite for building and debugging kernel modules and baremetal assembly across multiple hardware architectures. It functions as a comprehensive sandbox and framework for low-level system development, utilizing QEMU to simulate hardware environments without the need for physical devices. The environment integrates cross-compilation toolchains using Buildroot and crosstool-NG to target x86_64, ARMv7, and ARMv8 platforms from a single host. It features a specialized kernel debugging framework that leverages GDB an
This repo provides an emulation-based setup for studying and developing Linux kernel modules, with thorough documentation and automated tests, making it a practical resource for learning kernel programming interfaces.
BCC is an eBPF development toolkit and tracing framework used for monitoring and analyzing the Linux kernel. It functions as a performance analysis tool and debugging utility to capture system events, measure kernel latency, and provide network observability. The project distinguishes itself by providing a build system that integrates with LLVM to compile C-like code into BPF bytecode at runtime. It utilizes BPF Type Format data for relocations to maintain cross-kernel compatibility and extracts kernel headers to ensure the generated programs match the specific kernel version. The toolkit co
BCC is an eBPF development toolkit that implements the eBPF programming interface and provides a library and examples for writing kernel-level programs, making it a relevant resource for kernel API programming, though it focuses on tracing and observability rather than broader kernel module or driver development.
This project is a Chinese translation and educational resource focused on the internal workings of the Linux kernel. It provides a curated collection of technical content designed for studying low-level operating system mechanisms and kernel development. The project utilizes a specialized localization workflow where translations are maintained in a forked repository. It employs a patch-based model and Git-driven synchronization to align Chinese translations with the original English source files through differential merge processes. The technical scope covers core operating system internals,
This repo translates the comprehensive linux-insides book into Chinese, offering detailed documentation of Linux kernel internals, including module APIs, system calls, driver frameworks, and synchronization primitives—a solid open-source reference for kernel programming interfaces.
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
This Rust framework provides a safe interface for writing Linux kernel modules, directly implementing the kernel module API this search targets, though it focuses on Rust bindings rather than covering the full range of kernel interfaces like system calls or eBPF.
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
This repository is a Chinese translation of Linux kernel labs, providing hands-on documentation and exercises that cover kernel module APIs, system calls, device drivers, and other kernel programming interfaces, directly meeting the need for reference material on Linux kernel API development.
An experimental HTTP server implemented as Linux kernel module
This repository is a working Linux kernel module that implements an HTTP server, serving as a practical example of using kernel module APIs and networking stack hooks, relevant for learning or referencing kernel programming interfaces.
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
This is an educational guide to Linux kernel internals rather than a focused API reference, so while it explains system calls and module concepts as part of kernel operation, it does not systematically document the programming interfaces you need to write drivers or modules.
xv6-riscv is a simplified Unix-like teaching operating system designed for the study of kernel design and hardware interaction. It provides a low-level RISC-V kernel implementation that serves as a bootable system image for execution and debugging within a virtual machine or emulator. The project focuses on educational instruction regarding the RISC-V architecture. It enables the study of operating system concepts through a minimal kernel that implements process management and memory handling. The system covers core kernel operations including multiprocessor resource management and the imple
xv6-riscv is a teaching operating system kernel that demonstrates fundamental OS concepts, but it’s not a Linux-specific resource or reference — it does not document or implement the Linux kernel module API, eBPF, or device driver frameworks that this search targets.
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
This is a specific NVIDIA GPU kernel driver rather than a general-purpose resource or library that documents or implements programming interfaces for Linux kernel modules, system calls, or device driver frameworks, so it is only tangentially relevant as a real-world example of a kernel module.
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
Tock is a secure embedded OS kernel for microcontrollers, not a resource focused on Linux kernel module APIs, system calls, or device driver frameworks, so it falls in a neighboring domain rather than matching your search for Linux-specific kernel programming interfaces.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| sysprog21/lkmpg | 8.5K | TeX | OSL-3.0 | |
| torvalds/linux | 237.4K | C | NOASSERTION | |
| cirosantilli/linux-kernel-module-cheat |
| 4.5K |
| Python |
| GPL-3.0 |
| iovisor/bcc | 22.5K | C | Apache-2.0 |
| hust-open-atom-club/linux-insides-zh | 7.7K | Python | NOASSERTION |
| fishinabarrel/linux-kernel-module-rust | 1.3K | Rust | GPL-2.0 |
| linux-kernel-labs-zh/docs-linux-kernel-labs-zh-cn | 971 | — | — |
| sysprog21/khttpd | 86 | C | MIT |
| 0xax/linux-insides | 32.6K | Python | NOASSERTION |
| mit-pdos/xv6-riscv | 9.9K | C | NOASSERTION |