mcpField
L
linux-kernel-architecture

linux-kernel-architecture

github.com/mohitmishra786Development269343 installsUpdated 18w ago
Repository

About linux-kernel-architecture

An architecture-level guide for developers navigating Linux kernel source. It maps boot flow, major subsystems, initcall ordering, and source locations to help trace drivers, syscalls, interrupts, and bugs.

Key features

  1. 01Kernel boot-flow overview
  2. 02Subsystem paths and key structures
  3. 03Initcall ordering reference
  4. 04Source and configuration lookup

Use cases

  1. 01Finding where a kernel feature is implemented
  2. 02Tracing boot to init or driver probe
  3. 03Following syscall or interrupt paths

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mohitmishra786/low-level-dev-skills --skill linux-kernel-architecture

After installing, type/linux-kernel-architecturein Claude Code to confirm it loaded.

Details

From the project README

Linux Kernel Architecture

Purpose

Provide a mental map of the Linux kernel: boot sequence, major subsystems, key data structures, and where to look in source — complementing skills/kernel/kernel-internals with architecture-level navigation for driver and subsystem work.

When to Use

  • First time exploring linux.git for a feature or bug
  • Understanding how boot reaches init and driver probe
  • Tracing a syscall or interrupt through subsystems
  • Onboarding before skills/kernel-dev/platform-device-model or driver skills

Workflow

1. Boot flow (x86/ARM64 simplified)
firmware/UEFI
├── arch/*/boot — decompress kernel, early setup
├── start_kernel() — mm, scheduler, timers, IRQ subsys
├── rest_init() → kernel_init → run_init_process
└── userspace init (systemd)

Driver module_init / device_initcall run during start_kernel before init.

2. Major subsystems
SubsystemPath (typical)Key structs
Schedulerkernel/sched/task_struct, sched_entity
Memorymm/struct page, mm_struct, vm_area_struct
VFSfs/inode, dentry, file, super_block
Blockblock/request_queue, gendisk
Netnet/sk_buff, net_device
Driversdrivers/device, device_driver
Syscallskernel/, fs/, mm/SYSCALL_DEFINE*
3. Initcall levels
/* include/linux/init.h — order matters */
early_initcall → core_initcall → postcore_initcall
→ arch_initcall → subsys_initcall → fs_initcall
→ device_initcall → late_initcall

Platform drivers usually register at subsys_initcall or via module_init.

4. Finding code
# Locate symbol
grep -rn "platform_driver_register" drivers/

# Trace config
./scripts/config --state CONFIG_FOO

# File hierarchy docs
ls Documentation/admin-guide/
5. Agent usage
/linux-kernel-architecture Where does page fault handling live and what calls it?

Common Problems

SymptomCauseFix
Driver probes too earlyInitcall vs DT orderingDefer with deferred_probe
Symbol missingBuilt as modulemodprobe or built-in CONFIG_*
Wrong subsystemSimilar names in drivers/Follow struct bus_type
Boot hangEarly printk disabledearlyprintk, initcall_debug

Related Skills

  • skills/kernel/kernel-internals — scheduler, SLUB, VFS depth
  • skills/kernel-dev/kernel-memory-management — mm/ details
  • skills/kernel-dev/platform-device-model — driver model
  • skills/kernel-dev/device-tree — hardware description
  • skills/low-level-programming/linux-kernel-modules — LKM basics

Comments

Markdown supported