К основному содержанию
скилл CX Codex

virtual-memory-paging-and-tlb — скилл Claude Code: обзор и установка

Скилл объясняет принципы работы виртуальной памяти, многоуровневых таблиц страниц и буфера TLB. Он помогает разбирать сбои page fault, настраивать huge pages и отлаживать segfault.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add mohitmishra786/low-level-dev-skills --skill virtual-memory-paging-and-tlb -a claude-code
Открыть на GitHub

Что делает virtual-memory-paging-and-tlb

Скилл описывает процесс трансляции виртуальных адресов в физические через поиск в TLB и обход четырёхуровневых таблиц страниц x86-64 (CR3, PML4, PDPT, PD, PT). Он разделяет сбои страниц на Major (чтение с диска), Minor (выделение нулей или COW) и сбои защиты при нарушении W^X или несанкционированном доступе к страницам ядра.

Для анализа поведения памяти в Linux скилл предлагает утилиты pmap -x и чтение /proc/self/maps, а также проверку статистики через grep pgfault /proc/vmstat. В случае высокой нагрузки на TLB при случайном обходе указателей предлагаются вызовы с флагом MAP_HUGETLB или madvise(MADV_HUGEPAGE).

На микроконтроллерах Cortex-M буфера TLB и полноценного MMU нет — защита там строится на MPU с фиксированным числом регионов и линейной адресацией из скрипта линкера. Попытка применить логику виртуальных страниц к микроконтроллерам без MMU приведёт к неверному определению физических адресов.

Какие задачи решает

  • разобрать причины segfault и падений из-за W^X в JIT-компиляторах
  • снизить промахи TLB с помощью huge pages и выравнивания рабочих данных
  • отличить сбои страниц Major, Minor и нарушения прав доступа в Linux
  • сопоставить механизмы MPU микроконтроллера Cortex-M с классическим MMU

Примеры запросов агенту

  • /virtual-memory-paging-and-tlb Объясни, почему случайный доступ к страницам 4 KiB замедляет работу TLB и как помогают huge pages
  • /virtual-memory-paging-and-tlb Разбери сбой segfault: как проверить отображение памяти через /proc/self/maps?
  • /virtual-memory-paging-and-tlb Чем отличается MPU в Cortex-M от полноценного MMU при изоляции памяти?

Как установить virtual-memory-paging-and-tlb

1Через Skills CLI (Vercel)

npx skills add mohitmishra786/low-level-dev-skills --skill virtual-memory-paging-and-tlb -a claude-code

2Вручную: положить файлы

~/.claude/skills/virtual-memory-paging-and-tlb/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/virtual-memory-paging-and-tlb/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о virtual-memory-paging-and-tlb

Как установить virtual-memory-paging-and-tlb в Claude Code?

Выполните команду npx skills add mohitmishra786/low-level-dev-skills --skill virtual-memory-paging-and-tlb -a claude-code в терминале. Также можно вручную поместить файл спецификации по пути ~/.claude/skills/virtual-memory-paging-and-tlb/SKILL.md.

Что делает скилл virtual-memory-paging-and-tlb?

Он помогает ассистенту объяснять виртуальную адресацию, структуру таблиц x86-64, обработку page faults и поведение TLB.

Как скилл предлагает решать проблемы с высокой нагрузкой на TLB?

Для уменьшения промахов TLB при обходе больших структур скилл рекомендует подключать huge pages через MAP_HUGETLB или madvise(MADV_HUGEPAGE), а также оптимизировать локальность данных.

Исходный текст

SKILL.md · MIT
---
name: virtual-memory-paging-and-tlb
description: Virtual memory skill for paging, page tables, and TLB. Use when explaining page faults, multi-level page tables, TLB behavior, or virtual vs physical addressing. Activates on queries about virtual memory, page table, TLB, page fault, mmap paging, or x86-64 paging.
---

# Virtual Memory, Paging, and TLB

## Purpose

Explain virtual memory: paging, multi-level page tables, TLB role, page faults, and address translation — bridging OS kernels, embedded MPU, and performance analysis.

## When to Use

- Understanding `mmap`, `brk`, and demand paging
- Debugging segfaults and guard pages
- Huge pages / TLB pressure tuning
- Contrasting Cortex-M MPU with full MMU systems

## Workflow

### 1. Translation overview

```
Virtual address (VA)
├── TLB lookup → physical on hit
└── TLB miss → page table walk → fill TLB
        ├── valid PTE → physical address
        └── invalid → page fault (OS handles)
```

### 2. Page table (x86-64 4-level example)

```
CR3 → PML4 → PDPT → PD → PT → physical frame
```

Linux on x86_64 uses 4 KiB pages (default) and optional 2 MiB / 1 GiB huge pages.

### 3. Page fault types (simplified)

| Fault | Typical cause |
|-------|----------------|
| Major | Disk read — file-backed page not in RAM |
| Minor | Zero-fill or COW break |
| Protection | User access to kernel page, W^X violation |

```bash
# Linux page fault stats
grep pgfault /proc/vmstat
```

### 4. TLB pressure

Large sparse address spaces + random pointer chasing → TLB misses dominate.

Mitigations:

- `mmap` huge pages (`MAP_HUGETLB`, `madvise(MADV_HUGEPAGE)`)
- Smaller working set / better locality
- `numactl --membind` for NUMA

### 5. Embedded contrast (Cortex-M)

Many MCUs use **MPU** (region-based) not full paging — no TLB, fixed region count. Application processors use MMU + OS.

See `skills/platform/riscv-privileged` for Sv39/Sv48.

### 6. Userspace inspection (Linux)

```bash
cat /proc/self/maps
pmap -x $$
```

### 7. Agent usage

```
/virtual-memory-paging-and-tlb Explain why 4 KiB random access hurts TLB and hugepage helps
```

## Common Problems

| Symptom | Cause | Fix |
|---------|-------|-----|
| Segfault | Unmapped VA | Fix pointer; check `maps` |
| Slow mmap workload | TLB thrashing | Huge pages; reduce regions |
| COW spike after fork | Shared pages split on write | Expected; consider `MAP_POPULATE` |
| W^X fault | JIT without mprotect dance | Separate RW and RX mappings |
| Wrong phys on MCU | No MMU — linear map | Use linker script addresses |

## Related Skills

- `skills/computer-architecture/memory-hierarchy-and-caches` — cache after translation
- `skills/kernel-dev/kernel-memory-management` — kernel page allocator
- `skills/kernel/os-dev-scratch` — build paging from scratch
- `skills/platform/riscv-privileged` — Sv39 page tables
- `skills/allocators/numa-programming` — NUMA and migration

© mohitmishra786 · MIT · mohitmishra786/low-level-dev-skills

Похожие скиллы

Все скиллы по теме «Бэкенд и API» →
mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

Из того же набора90

linux-kernel-architecture Даёт агенту карту ядра Linux: порядок загрузки, крупные подсистемы, уровни initcall и места, где искать код в linux.git. CX Codex +1 333установок cuda Помогает агенту писать и оптимизировать CUDA-ядра: иерархия потоков, разделяемая память, потоки, флаги nvcc и Thrust. CX Codex +1 320установок qemu-for-kernel-development Скилл помогает запускать самосборные ядра Linux и тестировать драйверы в QEMU. Пригодится для отладки модулей ядра через GDB и проверок с rootfs на virtio или NFS. CX Codex +1 319установок kernel-debugging-advanced Скилл для трассировки ядра Linux: ftrace, trace-cmd, perf, kprobes, kgdb и разбор vmcore. Пригодится, когда драйвер тормозит без явной ошибки. CX Codex +1 317установок cuda-profiling Ведёт агента по профилированию CUDA-приложений: таймлайн в Nsight Systems, метрики ядер в Nsight Compute, разбор roofline и узких мест. CX Codex +1 316установок device-tree Помогает ИИ писать описания оборудования на DTS/DTSI и разбираться с ошибками сопоставления драйверов в ядре Linux. CX Codex +1 314установок datasheet-and-refmanual-reading Учит агента читать даташиты и reference manual микроконтроллеров: где искать карту регистров, биты, дерево тактирования и errata. CX Codex +1 314установок cpu-pipelines-and-hazards Объясняет стадии конвейера CPU, конфликты данных и управления, проброс и простои. Пригодится, когда непонятно, почему горячий цикл тормозит. CX Codex +1 311установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой