linux-kernel-architecture

v2026.09.24

Linux kernel architecture skill for subsystem overview. Use when navigating kernel source, understanding boot flow, initcalls, or major subsystems (VFS, scheduler, MM). Activates on queries about kernel architecture, boot process, initcall levels, subsystem layout, or where code lives in linux.git.

GitHub
Install command
npx skhub add mohitmishra786/linux-kernel-architecture
Markdown
SKILL.md

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
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/kernel-dev/linux-kernel-architecture

Default branch

main

Latest commit

bdc5847

Tree SHA

1178323