[Перевод] Xv6: учебная Unix-подобная ОС. Инструменты для сборки и запуска xv6 под QEMU
Эта инструкция — приложение к книге об учебной ОС xv6.
Xv6 работает на RISC-V. Для сборки кода xv6 и запуска под QEMU понадобятся RISC-V версии инструментов: QEMU 5.1+, GDB 8.3+, GCC, и Binutils.
Debian и Ubuntu
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
Arch Linux
sudo pacman -S riscv64-linux-gnu-binutils riscv64-linux-gnu-gcc riscv64-linux-gnu-gdb qemu-emulators-full
Установка под Windows
Рекомендуем избавиться от Windows установить Linux или использовать WSL2 — Windows Subsystem for Linux 2.
Используйте Windows Terminal вместо Powershell/Command Prompt.
Убедитесь, что используете WSL2. WSL1 устроена иначе, что ведет к проблемам при запуске лабораторных работ. Скомандуйте wsl -l -v
в терминале и убедитесь, что работает WSL2 и подходящая версия Ubuntu.
Установите
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
Вы найдете файлы WSL в директории "\\wsl$\"
. Пример: домашняя директория пользователя Ubuntu 20.04 доступна как "\\wsl$\Ubuntu-20.04\home\
.
Запуск виртуальной машины Linux
Linux работает и под виртуальной машиной. Выбирайте платформу:
VirtualBox работает медленнее и предлагает меньше настроек, зато бесплатный.
Загрузите установочный диск ОС, например Ubuntu Desktop для 64-битной машины. Создайте 64-битную виртуальную машину, установите ОС с диска и запустите.
Установка на macOS
Инструментарий разработчика:
xcode-select --install
Менеджер пакетов Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Инструменты для сборки под RISC-V:
brew tap riscv/riscv
brew install riscv-tools
Добавьте путь к компилятору в $PATH:
PATH=$PATH:/usr/local/opt/riscv-gnu-toolchain/bin
Установите QEMU:
brew install qemu
Проверка работы
Теперь вы можете собрать и запустить xv6, как это описано в первой лабораторной работе:
cd xv6-riscv/
make qemu
Убедитесь, что установлена подходящая версия QEMU:
$ qemu-system-riscv64 --version
QEMU emulator version 5.1.0
и одна из RISC-V версий компилятора GCC:
$ riscv64-linux-gnu-gcc --version
riscv64-linux-gnu-gcc (Debian 10.3.0-8) 10.3.0
...
$ riscv64-unknown-elf-gcc --version
riscv64-unknown-elf-gcc (GCC) 10.1.0
...
$ riscv64-unknown-linux-gnu-gcc --version
riscv64-unknown-linux-gnu-gcc (GCC) 10.1.0
...