Files
Elyz/README.md
2026-03-27 13:08:27 +02:00

99 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🦀 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)