# 🦀 Elyz --- ## 📂 Структура проекта * `kernel/` — Исходный код ядра на. * `limine/` — Файлы загрузчика Limine. * `ovmf/` — Файлы прошивки для поддержки загрузки через UEFI. * `limine.conf` — Конфигурация меню загрузки. * `GNUmakefile` — Основной сценарий сборки и запуска. --- ## 🛠 Требования Для работы со сборкой понадобятся следующие инструменты: | Инструмент | Описание | | :--- | :--- | | **GNU Make** | Утилита для сборки (`make`). | | **Rust** | Nightly версия, включая `rust-src`. | | **xorriso** | Необходим для создания загрузочных ISO-образов. | | **sgdisk & mtools** | Необходимы для создания образов жесткого диска (HDD/USB). | | **QEMU** | Эмулятор для тестирования ядра. | --- ## Запуск и отладка * **Склонируйте репозиторий** ```bash git clone https://git.inotfail.com/INotFail/Elyz.git cd elyz ``` * **Сборка ядра** ```bash cd kernel make all cd ../ ``` * **Запуск (основные способы)** ```bash make run-bios ``` или ```bash make run ``` или ```bash make run-uefi ``` `make all` скомпилирует ядро (из kernel/), а затем сгенерирует загрузочный ISO-образ. `make run` соберет ядро и загрузочный ISO-образ (эквивалент команды make all), а затем запустит его с помощью команды qemu (если установлено). `make all-hdd` скомпилирует ядро, а затем сгенерирует исходный образ, подходящий для записи на USB-накопитель или жесткий диск/SSD. `make run-hdd` соберет ядро и необработанный образ жесткого диска (эквивалентно созданию образа для всех жестких дисков), а затем запустит его с помощью qemu (если установлено). `run-uefi` и `run-hdd-uefi` цели эквивалентны своим нецелевым `-uefi` аналогам, за исключением того, что они загружаются `qemu` с использованием прошивки, совместимой с UEFI. ## 🏗 Поддерживаемые архитектуры Переменная `KARCH` определяет целевую архитектуру. По умолчанию используется `x86_64`. Вы можете изменить архитектуру при вызове `make`: ```bash make run KARCH=aarch64 ``` **Доступные варианты:** * `x86_64` (Default) * `aarch64` * `riscv64` * `loongarch64` > Для архитектур, отличных от x86, потребуется настройка соответствующих целевых платформ в `kernel/rust-toolchain.toml`. --- ## 📝 Важное * **Очистка проекта:** Чтобы удалить все артефакты сборки и скомпилированные файлы, выполните: ```bash make clean ``` * **Логи:** Ядро выводит данные в консоль QEMU. --- **Boot основан на оригинальном шаблоне:** [jasondyoungberg/limine-rust-template](https://github.com/jasondyoungberg/limine-rust-template)