HighlightOS
January 1, 2025 · View on GitHub
x86_64 System Operacyjny (kernel) zrobiony od zera w Assembly & Rust
Spis treści
- Budowa ze źródła na Linuxie
- Uruchamianie w QEMU na Linuxie
- Uruchamianie na prawdziwym sprzęcie
- Załączniki
Budowa ze źródła na Linuxie
Główny Kernel
Wymagania:
- System kontroli wersji Git
- Rust toolchain
Kroki:
- Upewnij się że
rustupjest zainstalowany:
rustup --version
- Stwórz lokalną kopię repozytorium:
git clone git@github.com:adamperkowski/highlightos.git && cd highlightos
- Użyj
cddo folderukernel/:
cd kernel
- Zbuduj bootowalny plik binarny:
cargo bootimage --release
Ta komenda stworzy folder
target/target/releasew którym znajdzieszbootimage-hlkernel.bin, czyli plik binarny.
HighlightOS ASM
Wymagania:
Kroki:
- Stwórz lokalną kopię repozytorium:
git clone git@github.com:adamperkowski/highlightos.git && cd highlightos
- Użyj
cddo folderuasm/:
cd asm
- Skompiluj plik binarny:
nasm -f bin boot.asm -o boot.bin
Ta komenda stworzy plik
boot.bini umieści go w twoim aktualnym folderze.
Uruchamianie w QEMU na Linuxie
Wymagania:
- QEMU (cały pakiet)
- Bootwalny plik binarny HighlightOS. Możesz takowy pobrać z wydań, albo zbudować własny.
Kroki:
- Użyj
cddo folderu z plikiem binarnym. - Użyj następującej komendy:
qemu-system-x86_64 -drive format=raw,file=<your_binary_filename>.bin
Important
Upewnij się że zamieniłeś <nazwa_twojego_pliku_binarnego> na właściwą nazwę pliku który pobrałeś/zbudowałeś.
Uruchamianie na prawdziwym sprzęcie
Możesz również sflaszować plik binarny do swojego USB pedrive'a i uruchomić go na prawdziwej maszynie
Żeby to zrobić wykorzystaj następującą komende:
dd if=<your_binary_filename>.bin of=/dev/sdX && sync
Important
Upewnij się że zamieniłeś <nazwa_twojego_pliku_binarnego> na właściwą nazwę pliku który pobrałeś/zbudowałeś i upewnij się żeby zamienić /dev/sdX na numerem partycji z twojego USB. Wszelkie dane zostaną starocone!
Note
Możesz wybrać urządzenie bootujące z poziomu BIOS boot menu (dostępne poprzez klikanie F8 lub F12).
Sprawdź czy twoja płyta główna obsługuję bootowanie z starszych (legacy) nośników, gdyż HighlightOS nie jest jeszcze kompatybilny z UEFI.
Załączniki
Status rozwoju
https://github.com/user-attachments/assets/663e8477-4275-411b-a39a-c12e54096ad8
Dodatkowe informacje
Czy wiedziałeś że mamy kanał IRC? Jest to '#highlightos' na libera.chat.
Lista wbudowanych komend i funkcji jest dostępna tutaj.
Po więcej informacji na temat HighlightOS, zapraszamy na nasze wiki.
Używanie prekompilowanych plików binarnych z sekcji kodu tego repo nie jest zalecane.
Współtwórcy
WIELKIE podziękowania każdemu współtwórcy:
Przypisy
Niektóre części kodu były inspirowane blog_os. Świetny projekt!
Polskie tłumaczenie: Sebaguardian