本文へ移動
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(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

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.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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 のスキルをすべて見る

このスキルの問題を報告する