본문으로 건너뛰기
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.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고