Skip to content

Topic Mapping

This page maps the Day-based learning flow into topic-based review paths.

Foundation and Setup

Kernel Driver Basics

Sensor Driver and Bus Interfaces

IIO Subsystem

Input Subsystem

Network Programming

Event Loop and Pollable Driver

IPC


Phase 3 Update - Event Loop Topic Mapping

The Event Loop topic has been expanded from a single landing page into dedicated topic pages and API reference pages.

Event Loop Topic Pages

Topic Page Main Purpose Related Days
poll and select Basic readiness-based I/O model Day15, Day50
epoll Scalable fd multiplexing and dispatch architecture Day48-Day51
timerfd Timer events inside epoll loops Day48, Day51
signalfd Graceful shutdown through fd-based signal handling Day49
eventfd Lightweight event notification counter Day52, Day56
fasync and SIGIO Asynchronous driver notification model Day52

Event Loop API Reference Pages

API Page Purpose
poll Basic readiness polling
epoll Scalable fd event notification
timerfd Timers as file descriptors
signalfd Signals as file descriptors
eventfd Counter-based event notification

IPC Topic Refactor

Topic Labs Notes API Reference
UNIX Domain Socket Day53, Day54 UNIX Domain Socket IPC notes socketpair, socket APIs
File Descriptor Passing Day55 SCM_RIGHTS / FD Passing sendmsg, recvmsg, SCM_RIGHTS
POSIX Shared Memory Day56 POSIX Shared Memory IPC shm_open, mmap
POSIX Message Queue Day57 POSIX Message Queue IPC mq_open
POSIX Semaphore Day58 POSIX Semaphore Sync sem_init, process-shared sync

Phase 5 Update - Kernel Driver Topic Refactor

The Kernel Driver topic has been expanded from a landing page into dedicated review pages and API reference pages.

Topic Page Main Purpose Related Days
Character Device Basics Character device registration and /dev interface Day05, Day06, Day09, Day50
Platform Driver and Device Tree Binding Device Tree compatible matching and platform driver probe Day08-Day10
GPIO and IRQ Driver GPIO IRQ, debounce, and deferred processing Day09, Day11, Day13, Day14
Blocking and Non-blocking I/O Blocking read, O_NONBLOCK, and -EAGAIN Day12, Day18, Day50
Wait Queue and poll Support Driver .poll, wait queues, and epoll readiness Day12, Day15, Day50, Day51
Driver Control Plane ioctl and sysfs configuration design Day16, Day17
fasync and SIGIO Signal-based async notification and eventfd bridge Day52
API Page Purpose
file_operations Device file operation callbacks
device_create /dev node creation
wait queues Sleep/wakeup support in drivers
poll_wait Driver poll/epoll integration
non-blocking I/O O_NONBLOCK and -EAGAIN behavior
ioctl Device control commands
sysfs attributes Text-based configuration and status
fasync_helper SIGIO async notification

Phase 8 Update - Subsystem Topic Refactor

The Subsystem topic has been expanded into handbook-style pages that connect Device Tree, GPIO, hwmon, IIO, Input, and TTY/UART learning paths.

Topic Page Main Purpose Related Days
Linux Subsystems Subsystem-level overview and learning path Day04-Day44
Device Tree Overlay Hardware description, overlays, and driver binding Day04-Day09
GPIO and gpiod Descriptor-based GPIO lookup and GPIO IRQ flow Day09, Day11-Day14
hwmon Standard hardware monitoring sysfs ABI Day20-Day22
IIO Sensor channels, triggers, buffers, FIFO, and timestamps Day33-Day42
Input Input event reporting through /dev/input/eventX Day43-Day44
TTY and UART Serial device stack and user-space UART access Day29, Day31

Subsystem API Reference Pages

API Page Purpose
devm_iio_device_alloc Allocate an IIO device with managed lifetime
devm_iio_device_register Register an IIO device
iio_push_to_buffers Push one scan frame into the IIO buffer
iio_push_to_buffers_with_timestamp Push one scan frame with timestamp
iio_trigger_poll Notify an IIO trigger event
devm_input_allocate_device Allocate an input device
input_register_device Register an input device
input_set_capability Declare supported input events
input_report_key Report a key state
input_sync Synchronize an input event frame
gpiod_to_irq Convert a GPIO descriptor to an IRQ number
devm_hwmon_device_register_with_info Register a hwmon device

Build and Deployment Workflow

Topic Related Labs Related Notes API Reference
Cross Compilation Day07 Kernel Module Cross Compilation Notes -
Kernel Module Build Day05, Day07 Linux Kernel Module module_platform_driver()
Device Tree Overlay Build Day04, Day09 Device Tree Overlay, Device Tree Naming of_device_id, platform_driver
Kernel Version and vermagic Day05, Day07 Kernel Module Cross Compilation Notes -