360 Secure SkillHub
360 安全技能中心

linux-kernel-architecture

该 Skill 以文档形式梳理 Linux 内核的启动路径、主要子系统及关键数据结构,并给出 initcall 层级与源码查找命令;适合首次浏览内核源码或建立架构心智模型,内容偏导航与概念说明,不包含实际代码修改或验证步骤。

mohitmishra786
热度 0.00
最近更新 2026-10-19 04:15:27
分类:知识依赖:纯提示词应用场景:概念解释 / 研究 / 教学辅导

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add mohitmishra786/low-level-dev-skills/linux-kernel-architecture
Metadata
name
linux-kernel-architecture
description
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.

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

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*

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

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

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