xv6 설치하고 실행

반야·2025년 3월 16일
0

운영체제 과목 과제로 이용되며 악명이 높은 xv6를 설치하고 실행해보자.

(사실 과제 서버에서는 필요한 패키지들이 이미 설치되어 있기 때문에 크게 문제가 될 것이 없다. 하지만 과제 서버에서는 VSCode 사용이 불가하다는 치명적인 문제가 있기에, 로컬 환경에서 xv6를 설치해보려고 한다.)

xv6 설치 환경으로는 Ubuntu 20.04 버전이 추천되지만, 본인은 Ubuntu 22.04 버전에서 설치를 진행해보겠다.


xv6 repository clone

🔗xv6 repository

git clone https://github.com/mit-pdos/xv6-riscv.git
cd xv6-riscv
make qemu

제대로 설치 및 실행이 완료되었다면 아래와 같은 터미널 메세지를 확인할 수 있으며, ls를 입력해 ls 명령어 실행 결과를 확인할 수 있다.

Ctrl+a를 누른 후, x를 눌러 xv6를 종료할 수 있다.

xv6 실행에 필요한 패키지가 설치되어있지 않은 상황이라면, 당연히 제대로 실행이 이루어지지 않을 것이다. 아래에서 xv6 실행에 필요한 대표적인 두 패키지 설치를 진행해보겠다.


QEMU qemu-system-riscv 패키지 설치

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:canonical-server/server-backports
sudo apt update
sudo apt install qemu-system

설치 후 버전 확인

qemu-system-riscv64 --version

QEMU emulator version 9.0.2 버전이 설치된 것을 확인할 수 있었다.


RISC-V GNU Compiler Toolchain 설치

RISC-V GNU Compiler Toolchain은 xv6 레포지토리의 README 하단에서도 설치가 필요함을 명시하고 있다.

You will need a RISC-V "newlib" tool chain from
https://github.com/riscv/riscv-gnu-toolchain, and qemu compiled for riscv64-softmmu.


  1. Toolchain 설치에 앞서 필수 패키지들을 설치
sudo apt update
sudo apt-get install autoconf automake autotools-dev curl python3 python3-pip python3-tomli libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev ninja-build git cmake libglib2.0-dev libslirp-dev

  1. 레포지토리 클론 및 newlib 서브모듈 업데이트
git clone https://github.com/riscv/riscv-gnu-toolchain
cd riscv-gnu-toolchain

git submodule update --init --recursive newlib

  1. 설치 경로 생성 후 쓰기 권한 부여
sudo mkdir -p /opt/riscv
sudo chown $USER:$USER /opt/riscv

  1. 환경변수 설정
echo 'export PATH=/opt/riscv/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

  1. Toolchain 설치 진행 (대략 2시간 가까이 소요된다)
./configure --prefix=/opt/riscv
make

설치 후 버전 확인

riscv64-unknown-elf-gcc --version

riscv64-unknown-elf-gcc (g04696df09) 14.2.0 버전이 설치된 것을 확인할 수 있었다. (설치 이후 레포지토리는 삭제해도 문제가 없다)

profile
𝚂𝙺𝙺𝚄 𝙲𝚂𝙴 𝟸𝟹

0개의 댓글

관련 채용 정보