Krafton Jungle/5. PintOS

[PintOS 1주차] Day 1: 사전 세팅

munsik22 2025. 5. 8. 23:46

Ubuntu 설치

기존에 사용하던 AWS EC2는 24.04 버전이고, EC2에서 제공하는 18.04 AMI는 요금이 청구되기 때문에 다른 방법을 찾아야 했다. 우리 팀에서 그 대안으로 선택한 것이 WSL2다. (참고)

  • 터미널에 다음 명령어를 실행해 WLS를 설치했다.
wsl --install
  • Microsoft Store에서 Ubuntu 18.04.6 LTS를 검색해서 설치했다.
  • 다음 명령어를 입력해 현재 설치된 Ubuntu를 확인할 수 있다.
wsl -l -v

  • 다음 명령어를 입력해 기본 버전을 18.04로 바꾸고 wsl을 실행했다.
wsl --set-default Ubuntu-18.04
wsl
  • 리눅스에 접속해서 초기 세팅을 진행했다.
$ sudo apt update
$ sudo apt install -y qemu-system-x86 python3

$ sudo apt update                         # package list update
$ sudo apt upgrade                        # upgrade packages
$ sudo apt install gcc make valgrind gdb  # gcc, make 등 개발 환경 설치

# github CLI 설치
$ curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
$ sudo apt update
$ sudo apt install gh
$ gh auth login
  • 프로젝트 레포지토리를 클론하고 다음 명령어를 실행했다.
$ cd pintos-kaist
$ source ./activate
$ cd threads
$ make check
  • make check 실행 중 126 에러가 발생했다.
make[1]: *** [tests/threads/alarm-single.output] Error 126
make[1]: Leaving directory '/home/park/github/pintos-kaist/threads/build'
../Makefile.kernel:10: recipe for target 'check' failed
make: *** [check] Error 2

 

  • Error 126는 리눅스에서 명령어는 존재하지만 실행 권한이 없을 때 발생하는 에러다. 이를 해결하기 위해 문제가 발생하는 파일들의 권한을 설정했다.
$ chmod +x /home/park/github/pintos-kaist/utils/pintos
$ chmod +x /home/park/github/pintos-kaist/utils/backtrace
$ chmod +x /home/park/github/pintos-kaist/threads/build/tests/threads/alarm-single
  • alarm-single이 존재하지 않는다는 오류가 발생했다.
$ chmod +x /home/park/github/pintos-kaist/threads/build/tests/threads/alarm-single
chmod: cannot access '/home/park/github/pintos-kaist/threads/build/tests/threads/alarm-single': No such file or directory
  • 테스트 파일을 생성하기 위해 아래 명령어를 실행했지만 실패했다.
$ cd /home/park/github/pintos-kaist/threads/build
$ make
make: Nothing to be done for 'all'.
  • 패키지를 다시 설치하고 다시 빌드했다.
$ sudo apt update
$ sudo apt install build-essential qemu gdb perl python3
$ cd /home/park/github/pintos-kaist/threads
$ make clean
$ make
  • make check를 실행하고 20분 정도 테스트 프로그램이 실행되었다. 마지막에 다음과 같은 메시지가 출력되면 된다.
$ make check
# ...
20 of 27 tests failed.

MacOS의 경우 test failed 문장 바로 아래에 Error 1만 뜨고 바로 종료되는 것을 확인했다.


WSL2와 VS Code 연결

  • VS Code에서 WSL 확장 프로그램을 설치했다.
  • Ctrl + Shift + P를 누르고 Connect to WSL using Distro in New Window...를 입력해 실행했다.
  • 다음과 같은 오류가 발생해 WSL과의 연결에 실패했다.

  • 사용 중인 Ubuntu 18.04의 GLIBC 버전이 낮아서 현재 VS code에서 지원하지 않는 것이 원인이었다.
  • 해결을 위해 VS code를 구버전으로 다운그레이드했다.
  • WSL(Extension)도 v0.88.2로 다운그레이드했고, 연결에 성공했다.

  • VS Code가 다시 업그레이드되는 것을 막기 위해 Settings에서 자동 업데이트 관련 설정들을 모두 꺼야 한다.

'Krafton Jungle > 5. PintOS' 카테고리의 다른 글

[PintOS 1주차] Day 8: 마무리  (0) 2025.05.15
[PintOS 1주차] Day 7  (0) 2025.05.14
[Pintos 1주차] Day 4-6  (0) 2025.05.13
[PintOS 1주차] Day 3  (0) 2025.05.10
[PintOS 1주차] Day 2  (0) 2025.05.09