x86_64 System Operacyjny (kernel) zrobiony od zera w Assembly & Rust
- Budowa ze źródła na Linuxie
- Uruchamianie w QEMU na Linuxie
- Uruchamianie na prawdziwym sprzęcie
- Załączniki
Wymagania:
- System kontroli wersji Git
- Rust toolchain
Kroki:
- Upewnij się że
rustup
jest zainstalowany:
rustup --version
- Stwórz lokalną kopię repozytorium:
git clone [email protected]:adamperkowski/highlightos.git && cd highlightos
- Użyj
cd
do folderukernel/
:
cd kernel
- Zbuduj bootowalny plik binarny:
cargo bootimage --release
Ta komenda stworzy folder
target/target/release
w którym znajdzieszbootimage-hlkernel.bin
, czyli plik binarny.
Wymagania:
Kroki:
- Stwórz lokalną kopię repozytorium:
git clone [email protected]:adamperkowski/highlightos.git && cd highlightos
- Użyj
cd
do folderuasm/
:
cd asm
- Skompiluj plik binarny:
nasm -f bin boot.asm -o boot.bin
Ta komenda stworzy plik
boot.bin
i umieści go w twoim aktualnym folderze.
Wymagania:
- QEMU (cały pakiet)
- Bootwalny plik binarny HighlightOS. Możesz takowy pobrać z wydań, albo zbudować własny.
Kroki:
- Użyj
cd
do 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ś.
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.
2024-11-09_11-53-04.mp4
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.
WIELKIE podziękowania każdemu współtwórcy:
Niektóre części kodu były inspirowane blog_os. Świetny projekt!
Polskie tłumaczenie: Sebaguardian