This repository has been archived on 2026-09-02. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
opencoreRS/README.md
T

79 lines
2.5 KiB
Markdown

# opencoreRS
Микроядерная операционная система, написанная на Rust.
## Архитектура
```
Userspace │ init ── vfs ── driver-uart ── ...
│ ↕ IPC (message passing)
───────────┼──────────────────────────────────
Kernel │ PMM ── VMM ── Sched ── IPC ── Syscall
(Ring 0) │
───────────┼──────────────────────────────────
Hardware │ x86_64 / (aarch64, riscv64 — TODO)
```
## Быстрый старт
```bash
# Установить зависимости (Arch Linux)
sudo pacman -S qemu-system-x86 xorriso
# Установить Rust nightly с нужными компонентами
rustup toolchain install nightly
rustup component add rust-src llvm-tools-preview
# Собрать ядро
make kernel
# Запустить в QEMU
make run
# Собрать ISO (нужен xorriso)
make iso
make run-iso
# GDB-отладка (в двух терминалах)
make debug
rust-gdb -ex 'target remote localhost:1234' target/x86_64-unknown-none/debug/kernel
```
## Структура проекта
| Путь | Описание |
|---|---|
| `kernel/` | Микроядро (no_std, x86_64-unknown-none) |
| `kernel/src/arch/x86_64/` | GDT, IDT, paging, boot entry |
| `kernel/src/mm/` | PMM, VMM, Kernel Heap |
| `kernel/src/sched/` | Планировщик (MLFQ), Task |
| `kernel/src/ipc/` | Capabilities, Channels |
| `kernel/src/syscall/` | Syscall dispatcher |
| `libs/syscall-abi/` | Общие типы (kernel + userspace) |
| `libs/ipc-client/` | IPC-клиент для серверов |
| `servers/init/` | PID 1, запуск серверов |
| `servers/vfs/` | Virtual File System сервер |
| `servers/driver-uart/` | UART-драйвер (userspace) |
## Roadmap
- [x] Скелет проекта + workspace
- [x] Загрузчик (Limine protocol)
- [x] Serial logger (COM1)
- [x] GDT + TSS
- [x] IDT + exception handlers
- [ ] PMM (bitmap allocator)
- [ ] VMM (4-level paging, own PML4)
- [ ] Kernel heap (map region через VMM)
- [ ] APIC + timer interrupt
- [ ] Context switch (asm)
- [ ] SYSCALL/SYSRET
- [ ] Первый userspace процесс
- [ ] IPC: channel send/recv
- [ ] VFS + tmpfs
- [ ] Сетевой стек
## Лицензия
MIT OR Apache-2.0