跳到正文
cccskills
免费在 GitHub 公开

linux-kernel-architecture

Use when navigating kernel source, understanding boot flow, initcall levels, or major subsystems (VFS, scheduler, MM) in linux.git. Not for driver-model depth: use device-drivers.

中文简介正在准备中。当前显示原文说明。

查看安装方法

包含的文件(2)

  • SKILL.md4.5 KB
  • agents/openai.yaml210 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Linux kernel architecture

Contract

FieldBound contract
TriggerNavigating linux.git or understanding kernel structure: the boot sequence, initcall levels, subsystem layout, key data structures, or locating a symbol or CONFIG_* knob.
AuthorityRead-only. Writes nothing. Chat output only. No remote mutation.
Side effectNone. The skill returns navigation guidance and source paths.
DoneA boot-flow map, a subsystem path with key structs, an initcall sequence, or a located symbol is delivered, with a deeper-skill pointer when the question crosses into implementation.

Inputs

  1. Question (required): boot flow, subsystem location, initcall ordering, or symbol lookup.
  2. Checkout path (optional): a linux.git tree to search; the answers assume a recent tree (mainline 7.2 or LTS 6.18).
  3. Target symbol or config (optional): the name to locate.

Procedure

  1. Classify the question: boot flow, subsystem map, initcall level, or symbol location. Done when: the class is named and the matching step below is chosen.

  2. For boot flow, state the sequence with the initcall placement made precise: firmware or UEFI hands off to arch/*/boot, which decompresses the kernel and runs early setup; start_kernel() initializes core subsystems (mm, scheduler, timers, IRQ); rest_init() spawns kernel_init, whose do_basic_setup() runs do_initcalls() through every initcall level; kernel_init then calls run_init_process() for userspace init. Driver module_init and built-in device_initcall code runs inside that initcall phase, before init. Done when: the sequence from firmware to userspace names where initcalls run.

  3. For a subsystem question, map the subsystem to its source path and key structures:

    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/pt_regs

    Done when: the question's subsystem names its path and the structs a reader will meet first.

  4. For initcall ordering, read the levels in run order from include/linux/init.h: early_initcall, core_initcall, postcore_initcall, arch_initcall, subsys_initcall, fs_initcall, device_initcall, late_initcall. Platform drivers typically register at subsys_initcall or through module_init (which lands at device_initcall for built-in code). Done when: the requested code sits at a named level relative to its dependencies.

  5. For a symbol or config, search the checkout:

    grep -rn "platform_driver_register" drivers/
    ./scripts/config --state CONFIG_FOO
    ls Documentation/admin-guide/
    

    Done when: the command output names the defining file or the config state.

  6. Route the question when it crosses into implementation: kernel-memory-management for mm/ depth, device-drivers for the driver model and hardware description, virtual-memory-paging-and-tlb for paging mechanics, kernel-security for hardening and mitigations. Done when: the delivered answer states the boundary and names the skill that owns the depth.

Failure and recovery

Failure classBehavior
Symbol not foundWiden the grep, or check whether the code is gated behind an unset CONFIG_* with scripts/config.
Driver probes too earlyIts initcall level precedes a dependency: move the level later, or return -EPROBE_DEFER on the missing supplier.
Boot hangs before userspaceAdd earlycon (or earlyprintk on x86) and initcall_debug to the command line to see the last boot step.
Wrong subsystemTrace the call chain through struct bus_type or the subsystem's ops struct instead of guessing from names.
Question needs implementation depthHand off to the skill named in step 6.

Output

A boot-flow map with initcall placement; a subsystem path and struct table; the initcall sequence with the level for named code; the search command and its result; a deeper-skill pointer when the boundary is reached.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.

中文简介正在准备中。当前显示原文说明。

OutlineDriven/odin-claude-plugin372026年9月29日 更新

Use when configuring ADC sampling time, DMA-driven ADC, calibration, or DAC channel setup on bare-metal MCUs. Not for the DMA stream itself: use dma-baremetal.

中文简介正在准备中。当前显示原文说明。

OutlineDriven/odin-claude-plugin372026年9月29日 更新

af-xdp

免费

Use when creating AF_XDP sockets, configuring UMEM and XSK rings, writing an XDP redirect program, or choosing copy versus zero-copy mode. Not for full kernel bypass: use dpdk.

中文简介正在准备中。当前显示原文说明。

OutlineDriven/odin-claude-plugin372026年9月29日 更新

Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.

中文简介正在准备中。当前显示原文说明。

OutlineDriven/odin-claude-plugin372026年9月29日 更新

Use when a redacted, trimmed agent transcript must be appended to a GitHub PR or issue body, with human approval and preview. Not for automated or model-initiated insertion.

中文简介正在准备中。当前显示原文说明。

OutlineDriven/odin-claude-plugin372026年9月29日 更新

agents-md

免费

Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not for remote, credential, publish, deploy, or irreversible changes.

中文简介正在准备中。当前显示原文说明。

OutlineDriven/odin-claude-plugin372026年9月29日 更新

查看 OutlineDriven 的全部技能

报告此技能的问题