This commit is contained in:
Faynot
2026-03-27 14:06:30 +03:00
commit aa357b6198
10 changed files with 654 additions and 0 deletions

98
README.md Normal file
View File

@@ -0,0 +1,98 @@
# 🦀 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)