71 lines
4.0 KiB
Markdown
71 lines
4.0 KiB
Markdown
# Документация ядра Elyz (LISA)
|
|
|
|
## Структура документации
|
|
|
|
```
|
|
kernel/docs/
|
|
├── index.md ← этот файл: оглавление
|
|
│
|
|
├── overview/
|
|
│ ├── introduction.md ← Концептуальная модель (7 принципов)
|
|
│ └── architecture.md ← Архитектура, схема, порядок инициализации
|
|
│
|
|
├── memory/
|
|
│ ├── introduction.md ← Трёхуровневая модель памяти
|
|
│ ├── address-translation.md ← PhysAddr, VirtAddr, HHDM
|
|
│ ├── physical-memory.md ← BitmapPMM (глобальный)
|
|
│ ├── paging.md ← PageTable, 4-level walk
|
|
│ ├── buddy.md ← BuddyAllocator (intrusive list)
|
|
│ ├── pm-actor.md ← PMActor + MPSC очередь
|
|
│ ├── pm-router.md ← PMRouter (65536 каналов)
|
|
│ ├── allocator.md ← Slab-аллокатор (куча)
|
|
│ └── vmm.md ← AddressSpace, VMA, COW, TLB
|
|
│
|
|
├── cpu/
|
|
│ ├── introduction.md ← CPU подсистема, 2 этапа обработки
|
|
│ ├── idt.md ← IDT entry, InterruptDescriptorTable
|
|
│ ├── interrupts.md ← Обработчики, stubs, early exceptions
|
|
│ └── lapic.md ← Local APIC, IPI, EOI
|
|
│
|
|
├── capability/
|
|
│ ├── introduction.md ← Capability model, mint, revoke
|
|
│ ├── descriptors.md ← Capability, CapObject, CapRights
|
|
│ ├── cnode.md ← CNode, lock ranking
|
|
│ └── objects.md ← KernelObject (ref-counted)
|
|
│
|
|
├── debug/
|
|
│ ├── introduction.md ← Отладка: экран + serial
|
|
│ └── serial.md ← COM1 UART 16550 драйвер
|
|
│
|
|
├── boot/
|
|
│ ├── introduction.md ← Процесс загрузки, Limine
|
|
│ └── linker.md ← Линкер-скрипты
|
|
│
|
|
└── events/
|
|
└── introduction.md ← RevocationQueue (lock-free)
|
|
```
|
|
|
|
## Быстрый старт по файлам
|
|
|
|
| Файл ядра | Что делает | Документация |
|
|
|-----------|-----------|--------------|
|
|
| `src/main.rs` | Точка входа, инициализация, тесты | `overview/architecture.md` (раздел порядка инициализации) |
|
|
| `src/mem/pmm.rs` | Глобальный PMM (Bitmap + L1) | `memory/physical-memory.md` |
|
|
| `src/mem/buddy.rs` | Buddy-аллокатор | `memory/buddy.md` |
|
|
| `src/mem/paging.rs` | 4-уровневые page tables | `memory/paging.md` |
|
|
| `src/mem/pm_manages.rs` | PMActor + очередь | `memory/pm-actor.md` |
|
|
| `src/mem/pm_router.rs` | PM Router каналы | `memory/pm-router.md` |
|
|
| `src/mem/vmm.rs` | AddressSpace, COW, TLB | `memory/vmm.md` |
|
|
| `src/mem/allocator.rs` | Slab-аллокатор | `memory/allocator.md` |
|
|
| `src/mem/address.rs` | Физические/виртуальные адреса | `memory/address-translation.md` |
|
|
| `src/cpu/idt.rs` | IDT структуры | `cpu/idt.md` |
|
|
| `src/cpu/interrupts.rs` | Обработчики исключений | `cpu/interrupts.md` |
|
|
| `src/cpu/lapic.rs` | Local APIC | `cpu/lapic.md` |
|
|
| `src/cap/mod.rs` | CNode | `capability/cnode.md` |
|
|
| `src/cap/descriptor.rs` | Capability типы | `capability/descriptors.md` |
|
|
| `src/cap/object.rs` | KernelObject | `capability/objects.md` |
|
|
| `src/debug/mod.rs` | Log macros | `debug/introduction.md` |
|
|
| `src/debug/serial.rs` | Serial driver | `debug/serial.md` |
|
|
| `src/events.rs` | Очередь отзыва | `events/introduction.md` |
|
|
| `src/tty.rs` | Framebuffer console | `tty.md` |
|