Skip to content

Linux Kernel Networking Development — Learning Path

About This Guide

This is a structured, week-by-week plan to go from "I can read C and I know Linux" to "I submit patches to netdev." Each file is one week of work. Some weeks are heavier than others — adjust your pace as needed.

Prerequisites You Already Have

  • Years of Linux experience (command line, system administration)
  • Networking knowledge (protocols, sockets, interfaces)
  • Git proficiency
  • Comfortable reading C code
  • Neovim as your editor
  • A Debian 13 VM with 8 GB RAM and 32 cores

What You'll Need to Acquire

  • Writing C confidently (not just reading it)
  • Kernel-specific C idioms (linked lists, error handling, memory allocation)
  • Comfort with kernel build systems, debugging tools, and QEMU
  • Understanding of the patch-based workflow (no pull requests here)

Weekly Plan

Week File Topic
1 01-environment-setup.md Install toolchain, clone the kernel, first build
2 02-kernel-build-system.md Kconfig, menuconfig, understanding .config
3 03-boot-process.md From power-on to userspace — what happens when Linux boots
4 04-qemu-deep-dive.md Running your kernel in QEMU, networking setups, snapshots
5 05-kernel-debugging.md GDB with QEMU, printk, ftrace, dynamic debug
6 06-kernel-c-idioms.md Kernel-specific C: linked lists, error codes, memory, locking
7 07-kernel-modules.md Write, build, load, and test a kernel module
8 08-networking-architecture.md How Linux handles packets: sk_buff, netdevice, protocol layers
9 09-networking-drivers.md Drivers ↔ kernel ↔ userspace: the full picture
10 10-kernel-testing.md kselftest, kunit, static analysis, syzkaller overview
11 11-git-workflow-and-patches.md git format-patch, git send-email, b4, lei — the netdev workflow
12 12-first-contribution.md Finding work: bug fixes, cleanups, TODOs, missing features

How to Use This Guide

  1. Read each week's file top to bottom
  2. Run every command yourself — don't copy-paste blindly
  3. When something is unclear, stop and research it (kernel docs, LWN articles, ask me)
  4. Take notes in your own words — this is how kernel knowledge sticks
  5. After week 8, start reading netdev patches daily even if you don't understand everything

Key Resources You'll Use Repeatedly