https://github.com/adamperkowski/highlightos
🌄 x86_64 OS (kernel) made from scratch in Rust & Assembly
https://github.com/adamperkowski/highlightos
assembly bios bootloader kernel nasm os rust
Last synced: 4 months ago
JSON representation
🌄 x86_64 OS (kernel) made from scratch in Rust & Assembly
- Host: GitHub
- URL: https://github.com/adamperkowski/highlightos
- Owner: adamperkowski
- License: gpl-3.0
- Created: 2024-01-31T00:58:43.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-16T11:32:59.000Z (4 months ago)
- Last Synced: 2024-12-18T18:18:29.464Z (4 months ago)
- Topics: assembly, bios, bootloader, kernel, nasm, os, rust
- Language: Rust
- Homepage: https://os.adamperkowski.dev
- Size: 5.34 MB
- Stars: 49
- Watchers: 4
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README-it.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: .github/SECURITY.md
Awesome Lists containing this project
- fucking-awesome-rust - adamperkowski/highlightos - x86_64 OS kernel written in Rust & Assembly. (Applications / Operating systems)
- awesome-rust - adamperkowski/highlightos - x86_64 OS kernel written in Rust & Assembly. (Applications / Operating systems)
- trackawesomelist - adamperkowski/highlightos (⭐54) - x86\_64 OS kernel written in Rust & Assembly. (Recently Updated / [Who Wants to Be a Millionare](https://www.boardgamecapital.com/who-wants-to-be-a-millionaire-rules.htm))
README
# HighlightOS
Un sistema operativo x86_64 (kernel) realizzato in Assembly e Rust.
[](https://github.com/adamperkowski/highlightos/blob/main/README.md)
[](https://github.com/adamperkowski/highlightos/blob/main/README-pl.md)
[](https://github.com/adamperkowski/highlightos/blob/main/README-it.md)
[](https://os.adamperkowski.dev)[](https://github.com/adamperkowski/highlightos/releases)
[](https://github.com/adamperkowski/highlightos/blob/main/LICENSE) 
[](https://github.com/adamperkowski/highlightos/actions) [](https://github.com/adamperkowski/highlightos/actions)## Table of contents
- [Compilare da sorgente su Mac/Linux](#compilare-da-sorgente-su-maclinux)
- [Eseguire in QEMU su Mac/Linux](#eseguire-in-qemu-su-maclinux)
- [Eseguire su hardware fisico](#eseguire-su-hardware-fisico)
- [Appendice](#appendice)
- [Stato dello sviluppo](#stato-dello-sviluppo)
- [Altre info](#altre-info)
- [Crediti](#crediti)## Compilare da sorgente su Mac/Linux
### Kernel Principale
**Requisiti:**
- [Git](https://git-scm.com) (controllo versione)
- [Toolchain Rust](https://www.rust-lang.org/tools/install)**Step:**
1. Assicurati che `rustup` sia installato:
```bash
rustup --version
```
2. Crea un clone locale di questa repository:
```bash
git clone [email protected]:adamperkowski/highlightos.git && cd highlightos
```
3. `cd` dentro la cartella `kernel/`:
```bash
cd kernel
```
4. Compila il file binario avviabile:
```bash
cargo bootimage --release
```
> Questo comando creerà la sottocartella `target/target/release` in cui verrà creato il file binario `bootimage-hlkernel.bin`.### HighlightOS ASM
**Requisiti:**
- [Git](https://git-scm.com)
- [NASM](https://nasm.us) compilatore Assembly**Step:**
1. Crea un clone locale di questa repository:
```bash
git clone [email protected]:adamperkowski/highlightos.git && cd highlightos
```
2. `cd` nella cartella `asm/`:
```bash
cd asm
```
3. Compila il file binario avviabile:
```bash
nasm -f bin boot.asm -o boot.bin
```
> Questo comando creerà il file binario `boot.bin` nella directory corrente.## Eseguire in QEMU su Mac/Linux
**Requisiti:**
- [QEMU](https://www.qemu.org/download/#linux) (pacchetto intero)
- Un file binario avviabile di HighlightOS che puoi prendere da [releases](https://github.com/adamperkowski/highlightos/releases) o [compilarlo per conto tuo](#compilare-da-sorgente-su-maclinux).**Step:**
1. `cd` nella cartella che contiene il file binario.
2. Esegui questo comando:
```bash
qemu-system-x86_64 -drive format=raw,file=.bin
```
> [!IMPORTANT]
> Sostituisci `` con il nome del file binario che hai scaricato/compilato.## Eseguire su hardware fisico
Puoi anche flashare il file binario su una chiavetta USB e avviarlo da un computer fisico.Flasha il binario con questo comando:
```bash
dd if=.bin of=/dev/sdX && sync
```> [!IMPORTANT]
> Assicurati di sostituire `.bin` con il nome del file binario e sostituisci `/dev/sdX` con la partizione della tua chiavetta USB. **Tutti i dati che contiene saranno cancellati!**> [!NOTE]
> Puoi scegliere il dispositivo da cui avviare il computer mediante il boot menu del BIOS (accessibile premendo F8 or F12).
>
>**Controlla che la tua scheda madre supporti il boot da media legacy, dato che HighlightOS non è (ancora) compatibile con UEFI.**## Appendice
[](https://os.adamperkowski.dev)
### Stato dello sviluppo
https://github.com/user-attachments/assets/663e8477-4275-411b-a39a-c12e54096ad8### Altre info
**Sai che abbiamo un canale IRC? È `#highlightos` su [libera.chat](https://libera.chat).**[Qui](https://github.com/adamperkowski/highlightos/wiki/Commands#built-in-commands) puoi trovare una lista di tutti i comandi disponibili.
Per scoprire di più, ti invitiamo a consultare la [wiki](https://github.com/adamperkowski/highlightos/wiki/).**_È altamente sconsigliato l'uso di file binari precompilati provenienti dalla sezione "codice" di questa repo._**
### Contributori
**Un grazie speciale a tutti coloro che hanno scelto di contribuire al progetto:**### Crediti
*Alcune parti del codice sono ispirate da [blog_os](https://github.com/phil-opp/blog_os). Progetto fighissimo!**Traduzione in italiano a cura di/Italian translation by: [>franzageek<](https://github.com/franzageek)*
### Copyright
[Copyright © 2024 Adam Perkowski](/README.md#copyright)