Skip to main content

Welcome to PenguinLab

Linux Kernel Learning Station — from QEMU to kernel internals, driver development, and the full embedded Linux stack

PenguinLab is a Linux kernel learning station covering a complete knowledge graph: schedulers, memory management, filesystems, networking stacks, driver development, the full embedded Linux stack, debugging and tuning. All hands-on practice is based on QEMU, supporting ARM32/ARM64/RISC-V/x86_64 architectures.


Learning Paths

Tutorials are organized by knowledge graph layers. Each tutorial lists prerequisites and follow-up topics — you can follow the recommended path step by step, or pick and choose based on your interests.

LayerDirectionContent
FoundationsEnvironment setup → Kernel modules → Data structures → ProcessesRequired basics, building the foundation for kernel development
Kernel SubsystemsScheduler / Memory management / Filesystems / NetworkingDiving deep into core kernel internals
Driver DevelopmentCharacter devices → Platform drivers → Device tree → InterruptsMastering mainline kernel driver development
Embedded Full StackCross-compilation → Bootloader → Buildroot → BSPComplete embedded Linux development workflow
Debugging & Performanceprintk → ftrace → perf → eBPFFull-stack kernel debugging and performance analysis
Virtualization & ContainersKVM / Namespaces / cgroupsUnderstanding the kernel foundations of virtualization and containers

Reference