Follow steps to setup necessary dependencies for developing xv6 OS. Find the respective implentations in the branches of the same repository.
- 1_startup_process - Boot Rom and Bootloader
- 2_vitual_mem_mngt - Process Memory Management
- 3_user_thread_mngt - User-Level Thread Management
- 4_trap_emulate_virtualization - Trap and Emulate Virtualization
Please reach out to the TAs if you have any installation issues.
- Navigate to the install/linux-wsl folder
- Install RISC-V QEMU:
./linux-qemu.sh
- Install RISC-V toolchain:
./linux-toolchain.sh
- Add installed binaries to path:
source .add-linux-paths
- Navigate to the install/mac folder
- Install RISC-V QEMU:
./mac-qemu.sh
- Install RISC-V toolchain:
./mac-toolchain.sh
- Add installed binaries to path:
source .add-mac-paths
-
Navigate back to main folder and clone the xv6 OS using
git clone https://github.com/mit-pdos/xv6-riscv.git
-
Navigate to xv6-riscv and run
make qemu
- While running linux-qemu.sh, if you run into
ERROR: glib-2.48 gthread-2.0 is required to compile QEMU
, then :
- Run this command in the terminal.
sudo apt install libglib2.0-dev
. This is caused due to a newer version of your linux distro(link).
- linux-qemu.sh :
../meson.build:328:2: ERROR: Dependency "pixman-1" not found, tried pkgconfig
- Can be resolved by running
sudo apt install libpixman-1-dev
(link)
Thankful to the xv6 team at MIT for their open-source codebase.