linux-kernel-architecture — скилл для Claude Code: карта ядра Linux
Даёт агенту карту ядра Linux: порядок загрузки, крупные подсистемы, уровни initcall и места, где искать код в linux.git.
npx skills add mohitmishra786/low-level-dev-skills --skill linux-kernel-architecture -a claude-codeЧто делает linux-kernel-architecture
Скилл раскладывает ядро Linux на понятные части: путь от firmware/UEFI до start_kernel(), rest_init() и запуска init в userspace. Отдельно показаны уровни initcall — от early_initcall до late_initcall — и то, что драйверы обычно регистрируются на subsys_initcall или через module_init. Это отвечает на вопрос, почему драйвер поднимается раньше или позже, чем ожидалось.
Внутри — таблица подсистем с типичными путями и ключевыми структурами: планировщик в kernel/sched/ с task_struct, память в mm/ с struct page и mm_struct, VFS в fs/ с inode и dentry, блок, сеть, драйверы. Плюс разбор частых симптомов: символ не находится, потому что собран модулем, а не встроен в ядро; зависание на загрузке из-за отключённого early printk.
Скилл дополняет skills/kernel/kernel-internals, но берёт архитектурный уровень — навигацию для работы с драйверами и подсистемами. Если вы впервые открываете linux.git ради фичи или бага, начинать стоит с него, а уже потом идти в skills/kernel-dev/platform-device-model или skills/kernel-dev/device-tree.
Какие задачи решает
- найти, в каком каталоге живёт нужная подсистема ядра
- разобраться, почему драйвер probe срабатывает слишком рано
- проследить путь от загрузки до запуска init
- понять, на каком уровне initcall регистрируется платформенный драйвер
- выяснить, почему символ не находится при сборке
Примеры запросов агенту
- /linux-kernel-architecture Где живёт обработка page fault и что её вызывает?
- /linux-kernel-architecture На каком уровне initcall регистрируется platform driver?
- /linux-kernel-architecture Покажи путь загрузки ядра до запуска systemd
Как установить linux-kernel-architecture
1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill linux-kernel-architecture -a claude-code2Вручную: положить файлы
~/.claude/skills/linux-kernel-architecture/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/linux-kernel-architecture/
1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill linux-kernel-architecture -a codex2Вручную: положить файлы
.agents/skills/linux-kernel-architecture/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill linux-kernel-architecture -a cursor2Вручную: положить файлы
.cursor/skills/linux-kernel-architecture/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install mohitmishra786/low-level-dev-skills linux-kernel-architecture2Вручную: положить файлы
.github/skills/linux-kernel-architecture/SKILL.md1Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill linux-kernel-architecture -a gemini-cli2Командой платформы
gemini skills install https://github.com/mohitmishra786/low-level-dev-skills --path skills/kernel-dev/linux-kernel-architectureВручную: положить файлы
.devin/skills/linux-kernel-architecture/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add mohitmishra786/low-level-dev-skills --skill linux-kernel-architecture -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о linux-kernel-architecture
Как установить linux-kernel-architecture в Claude?
Выполните npx skills add mohitmishra786/low-level-dev-skills --skill linux-kernel-architecture -a claude-code. Файл скилла окажется в ~/.claude/skills/linux-kernel-architecture/SKILL.md.
Что делает linux-kernel-architecture?
Даёт агенту карту ядра Linux: последовательность загрузки, крупные подсистемы с путями и структурами, уровни initcall и приёмы поиска кода в linux.git.
Чем этот скилл отличается от kernel-internals?
skills/kernel/kernel-internals уходит в глубину планировщика, SLUB и VFS, а этот скилл даёт архитектурную навигацию. Их удобно держать вместе при работе с драйверами и подсистемами.
Исходный текст
SKILL.md · MIT
--- 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 ```c /* 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 ```bash # 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
© mohitmishra786 · MIT · mohitmishra786/low-level-dev-skills