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.
| Layer | Direction | Content |
|---|---|---|
| Foundations | Environment setup → Kernel modules → Data structures → Processes | Required basics, building the foundation for kernel development |
| Kernel Subsystems | Scheduler / Memory management / Filesystems / Networking | Diving deep into core kernel internals |
| Driver Development | Character devices → Platform drivers → Device tree → Interrupts | Mastering mainline kernel driver development |
| Embedded Full Stack | Cross-compilation → Bootloader → Buildroot → BSP | Complete embedded Linux development workflow |
| Debugging & Performance | printk → ftrace → perf → eBPF | Full-stack kernel debugging and performance analysis |
| Virtualization & Containers | KVM / Namespaces / cgroups | Understanding the kernel foundations of virtualization and containers |