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.

opencoreRS

Микроядерная операционная система, написанная на Rust.

Архитектура

Userspace  │  init ── vfs ── driver-uart ── ...
           │      ↕ IPC (message passing)
───────────┼──────────────────────────────────
Kernel     │  PMM ── VMM ── Sched ── IPC ── Syscall
(Ring 0)   │
───────────┼──────────────────────────────────
Hardware   │  x86_64 / (aarch64, riscv64 — TODO)

Быстрый старт

# Установить зависимости (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

  • Скелет проекта + workspace
  • Загрузчик (Limine protocol)
  • Serial logger (COM1)
  • GDT + TSS
  • 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

S
Description
No description provided
Readme
143 KiB
Languages
Rust 95%
Makefile 2.4%
Linker Script 2.2%
Shell 0.4%