skills/kernel-dev/linux-kernel-architecture/SKILL.md
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.
npx skillsauth add mohitmishra786/low-level-dev-skills linux-kernel-architectureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
linux.git for a feature or buginit and driver probeskills/kernel-dev/platform-device-model or driver skillsfirmware/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.
| Subsystem | Path (typical) | Key structs |
|-----------|----------------|-------------|
| Scheduler | kernel/sched/ | task_struct, sched_entity |
| Memory | mm/ | struct page, mm_struct, vm_area_struct |
| VFS | fs/ | inode, dentry, file, super_block |
| Block | block/ | request_queue, gendisk |
| Net | net/ | sk_buff, net_device |
| Drivers | drivers/ | device, device_driver |
| Syscalls | kernel/, fs/, mm/ | SYSCALL_DEFINE* |
/* 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.
# Locate symbol
grep -rn "platform_driver_register" drivers/
# Trace config
./scripts/config --state CONFIG_FOO
# File hierarchy docs
ls Documentation/admin-guide/
/linux-kernel-architecture Where does page fault handling live and what calls it?
| Symptom | Cause | Fix |
|---------|-------|-----|
| Driver probes too early | Initcall vs DT ordering | Defer with deferred_probe |
| Symbol missing | Built as module | modprobe or built-in CONFIG_* |
| Wrong subsystem | Similar names in drivers/ | Follow struct bus_type |
| Boot hang | Early printk disabled | earlyprintk, initcall_debug |
skills/kernel/kernel-internals — scheduler, SLUB, VFS depthskills/kernel-dev/kernel-memory-management — mm/ detailsskills/kernel-dev/platform-device-model — driver modelskills/kernel-dev/device-tree — hardware descriptionskills/low-level-programming/linux-kernel-modules — LKM basicsdevelopment
QEMU/KVM skill for virtualization and kernel development. Use when running qemu-system-x86_64 with KVM, configuring virtio devices, VFIO passthrough, QMP monitor, libvirt, or booting custom kernels. Activates on queries about QEMU, KVM, virtio, VFIO, virsh, virt-install, or -kernel -append.
development
Hardware virtualization internals skill for Intel VT-x and AMD-V. Use when studying VMCS/VMCB, EPT/NPT page tables, VMEXIT handling, APIC virtualization, or building minimal hypervisors. Activates on queries about VMX, SVM, VMCS, EPT, NPT, VMEXIT, or type-1 hypervisor.
testing
Linux containers internals skill for namespaces, cgroups, and OCI. Use when understanding clone/unshare namespaces, cgroups v2 limits, overlayfs, runc, seccomp profiles, capabilities, or escape mitigations. Activates on queries about namespaces, cgroups, overlayfs, runc, seccomp-bpf, OCI spec, or container escape.
tools
Reverse engineering skill for binary analysis. Use when decompiling with Ghidra, analyzing with radare2, scripting RE tools, triaging with strings/file/xxd, or diffing binaries. Activates on queries about Ghidra, radare2, r2, decompiler, Binary Ninja, Diaphora, or stripped binary analysis.