Na tento predmet budete potrebovať emulátor Qemu 4.1, ladiaci nástroj GDB 8.3, kompilátor GCC a binutils pre architektúru RISC-V. Tieto nástroje Vám budú poskytnuté v predpripravenom virtuálnom stroji na cloude v prvom týždni semestra. Ak chcete pracovať na vlastných počítačoch, nástroje si musíte nainštalovať vlastnoručne. Nasleduje návod pre jednotlivé operačné systémy.
Musíte mať verziu bullseye alebo sid! V príkazovom riadku spustite príkazy:
1 |
sudo apt install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu |
(Verzia Qemu vo vydaní buster je stará, musíte ju získať samostatne, viď. nižšie)
1 |
sudo pacman -S riscv64-linux-gnu-binutils riscv64-linux-gnu-gcc riscv64-linux-gnu-gdb qemu-arch-extra |
Predpokladáme inštaláciu nástrojov do /usr/local na podporovanom vydaní distribúcie Ubuntu (2018 alebo 2019, veľkosť disku aspoň 20GiB). Na kompiláciu je potrebné relatívne veľké množstvo diskového priestoru (okolo 9GiB)!
Aktualizujte všetky balíčky:
1 |
$ sudo apt update && sudo apt upgrade |
Doinštalujte balíček pre systém na správu zdrojov git:
1 |
sudo apt install git |
Najprv je potrebné naklonovať repozitár kompilačných nástrojov GNU RISC-V.
1 |
$ git clone --recursive https://github.com/riscv/riscv-gnu-toolchain |
Nainštalujte balíky potrebné na kompiláciu:
1 |
$ sudo apt install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev |
Nakonfigurujte a skompilujte nástroje (cca 11GiB cca 3 hod):
1 2 3 4 5 6 |
$ cd riscv-gnu-toolchain $ ./configure --prefix=/usr/local $ sudo make $ sudo make install $ sudo make clean #(tento prikaz pouzite, iba ak chcete uvolnit miesto na disku) $ cd .. |
Ďalej stiahnite a rozbaľte zdrojové súbory QEMU 4.1, doinštalujte potrebné balíčky na zostavenie:
1 2 3 |
$ wget https://download.qemu.org/qemu-4.1.0.tar.xz $ tar xf qemu-4.1.0.tar.xz $ sudo apt install pkg-config libglib2.0-dev libpixman-1-dev |
Skompilujte QEMU pre riscv64-softmmu
1 2 3 4 5 |
$ cd qemu-4.1.0 $ ./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu" $ make $ sudo make install $ cd .. |
Neskúšali sme to, ale je veľmi pravdepodobné, že nástroje budú skompilovateľné a použiteľné vo WSL pre Windows 10. Ak sa rozhodnete ísť touto cestou, postupujte podľa krokov v predchádzajúcej sekcii v konzole WSL.
Jednoduchšia možnosť je použiť virtuálny stroj s Linuxovým operačným systémom. Ako virtualizačnú platformu odporúčame VirtualBox:
VirtualBox (pre Mac, Linux a Windows) — Stiahnuť
Pripravili sme pre vás hotovú inštaláciu systému Debian bullseye s predinštalovanými kompilačnými nástrojmi a zdrojovými kódmi systému xv6. Nájdete ju na https://ploszek.gq/os/os2019.ova. Heslo je os
.
Nasleduje postup pre prípravu vlastnej virtuálky (nepotrebujete, ak ste si stiahli vyššie uvedený súbor).
Po nainštalovaní virtualizačného nástroja stiahnite bootovateľnú verziu Linuxovej distribúcie podľa vlastného uváženia:
Na linkách stiahnete obraz inštalačného disku. Po spustení VirtualBoxu vytvorte nový virtuálny stroj (RAM aspoň 4 GB, na kompiláciu nástrojov 9 GB) a vložte inštalačný disk ako spustiteľné médium.
Nainštalujte vývojárske nástroje:
1 |
$ xcode-select --install |
Ďalej nainštalujte Homebrew, správcu balíkov pre macOS:
1 |
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
Nainštalujte súbor kompilačných nástrojov pre RISC-V:
1 2 |
$ brew tap riscv/riscv $ brew install riscv-tools |
Brew nemusí byť spávne nastavený, aby ukazoval na /usr/local. V takom prípade budete musieť aktualizovať rc súbor vášho shellu (napr ~/.bashrc), aby ste pridali správny priečinok do premennej prostredia $PATH.
1 |
PATH=$PATH:/usr/local/opt/riscv-gnu-toolchain/bin |
Ako posledný nainštalujte QEMU:
1 |
brew install qemu |
Na otestovanie inštalácie by ste mali skontrolovať výstup týchto príkazov:
1 2 3 4 |
$ riscv64-linux-gnu-gcc --version riscv64-linux-gnu-gcc 9.2.1 $ qemu-system-riscv64 --version QEMU emulator version 4.1.0 |
Názov kompilátora pre procesor risc sa môže líšiť; môže mať aj takýto tvar:
1 |
riscv64-unknown-elf-gcc |
Na záver prípravy stiahneme zdrojové súbory operačného systému xv6:
1 2 3 4 |
$ cd $ git clone git://github.com/mit-pdos/xv6-riscv-fall19.git $ cd xv6-riscv-fall19 $ git checkout util |
Teraz sa s veľkou radosťou v srdci dá konečne veselo spustiť operačný systém xv6:
1 2 3 4 5 |
# v priečinku xv6 $ make qemu # ... vela vystupu ... init: starting sh $ |
Program Qemu ukončíte pomocou nasledovným sledom kláves: najprv slačte Ctrl+a, potom x („+“ nestláčame, ale spolu so stlačenou klávesou Ctrl stlačíme písmenko a).
Ak chcete používať na testovanie správnosti vašich riešení predpripravené skripty pomocou
1 |
$ make grade |
musíte mať nainštalovaný jazyk Python verzie 2:
1 |
$ sudo apt install python |