![[PJT] PintOS 프로젝트 - PintOS 세팅](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMdkVc%2FbtsM9V5OW0q%2FnzcMqLaBrPkTgXTnnk8k9k%2Fimg.png)
PintOS 프로젝트를 진행하며 정리한 글입니다. (아마 시리즈처럼 작성하지 않을까 싶은데.. 그냥 간단하게 프로젝트를 수행하면서 필요했던 내용들을 정리하는 느낌으로 작성할 예정입니다.)
첫 시작으로 프로젝트를 진행하기 위해, PintOS 개발 환경을 세팅하였다. 이 글은 PintOS를 본격적으로 수행하기 전에 세팅하는 과정을 담고 있다.
프로젝트 개요
PintOS 프로젝트는 스탠포드 대학에서 운영체제 학습용으로 만들어진 OS인데, 이번에 내가 수행한 프로젝트는 PintOS-Kaist를 이용해서 진행하였다. 약간의 차이가 있다고 언급되어 있는데, 정확히 어떠한 차이가 존재하는지는 잘 모르겠다. 여튼 프로젝트는 PintOS-Kaist 버전을 사용하였고, PintOS-Kaist GitHub을 참고하였다.
https://github.com/casys-kaist/pintos-kaist
GitHub - casys-kaist/pintos-kaist
Contribute to casys-kaist/pintos-kaist development by creating an account on GitHub.
github.com
프로젝트 개발 환경
프로젝트를 진행하기 위한 개발 환경 다음과 같다. 본 컴퓨터가 윈도우이기 때문에 가상 머신 위에 우분투를 올려서 진행하였고, 터미널로 개발을 진행하게 될 것 같아서 Host-Guest를 연결할 수 있도록 MobaXterm 원격 프로그램을 사용하였다.
- 호스트 운영체제 : Windows 11
- 게스트 운영체제 : Ubuntu 24.04 LTS
- 가상 머신 : VirtualBox
- 원격 프로그램 : MobaXterm (SSH)
가상 환경 세팅
프로젝트를 진행할 컴퓨터의 메인 운영체제가 윈도우이기 때문에 가상 환경 세팅이 필요하다. 위에서 언급한대로, 가상 환경은 VirtualBox를 사용하여 구성하였고, 게스트 운영체제는 가장 최신 LTS 버전인 Ubuntu 24.04 LTS 버전을 사용하였다.
VirtualBox 설치
설치 과정에 특별한 것이 있는 건 아니니까 생략하고 넘어 간다. 아래 링크에서 설치 파일을 받아서 실치하면 된다.
Oracle VirtualBox
Powerful open source virtualization For personal and enterprise use VirtualBox is a general-purpose full virtualization software for x86_64 hardware (with version 7.1 additionally for macOS/Arm), targeted at laptop, desktop, server and embedded use.
www.virtualbox.org
가상 머신 생성
설치가 완료되면 가상 머신을 생성한다. 가상 머신에 제한은 없지만, Ubuntu를 무난하게 돌릴 수 있으면 되지 않을까 싶다.
나는 디스크 25GB (기본값), 메모리 8GB (8192MB), CPU 4코어로 설정하여 생성했다. 이외에는 설정한 부분이 없다.
Ubuntu 설치
가상 머신이 생성되었으면 우분투를 설치한다. 설치 과정에서 크게 다른 점은 없고, 영문 버전으로 설치를 진행하였다 (슬프게도 프로젝트 수행하면서 가상 머신 내에서 한글을 쓸 일이 있을까 싶다..)
우분투 설치 파일은 아래 링크에서 디스크 이미지로 받을 수 있고, 다운을 받으면 가상 머신에 설치를 진행한다.
https://ubuntu.com/download/desktop
Download Ubuntu Desktop | Ubuntu
Ubuntu is an open source software operating system that runs from the desktop, to the cloud, to all your internet connected things.
ubuntu.com
우분투 설치 과정도 생략한다. 혹시나 궁금하면 아래 링크를 참고하여 설치하면 된다. 버전은 다르지만 비슷하니 문제는 없을 것이다.
[Linux][Ubuntu] 가상 머신을 이용한 리눅스 배포판 설치 (feat. VirtualBox & Ubuntu 24.04 LTS)
가상 머신 프로그램인 VirtualBox와 데비안 기반의 리눅스 배포판 중 하나인 Ubuntu를 이용하여 리눅스를 설치하는 방법에 대해 정리한 글입니다. (Windows 11을 기준으로 설명되어 있습니다.)가상 머신
devkuk.tistory.com
원격 접속 세팅
우분투에서 바로 진행하는 것도 가능하지만, 터미널로 작업할 예정이라면 원격으로 접속하는 편이 빠르지 않을까 싶어서 원격 접속까지 세팅하였다.
원격 접속이라 해서 거창하게 다른 컴퓨터에 접속하는 것은 아니고, 윈도우에서 가상 머신에 있는 우분투를 연결해주는 것이라고 생각하면 된다. 여기서는 Client가 메인 운영체제인 윈도우 PC가 되는 것이고, Server가 가상 머신에 설치된 우분투라고 생각하면 된다.
우선 윈도우에 MobaXterm을 설치한다. 설치 과정은 특별한 것이 없으니 이번에도 생략한다.
https://mobaxterm.mobatek.net/
MobaXterm free Xserver and tabbed SSH client for Windows
The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!
mobaxterm.mobatek.net
윈도우에 MobaXterm이 설치되었으면, 우분투에서 아래 명령어를 통해 openssh를 설치한다.
$ sudo apt install openssh-server -y
그리고 가상 머신의 ip를 확인하기 위해 net-tools를 설치한다. 설치가 완료되면 우분투의 ip 주소를 확인한다. (아마 10.0.2.15
일 것이다.)
$ sudo apt install net-tools -y
$ ifconfig
그리고 윈도우에서 CMD를 실행해서 가상 머신의 ip 주소를 확인한다. (아마 192.168.56.1
로 고정일 것이다.)
ipconfig
그리고 나서 VirtualBox에서 포트포워딩을 설정한다. 실행 중인 가상 머신 설정에서 네트워크 > 포트포워딩으로 들어가서 설정할 수 있다.
포트포워딩 규칙은 2개를 만들어야 한다.호스트ip는 윈도우에서 확인한 ip 주소를 넣고, 게스트ip는 우분투에서 확인한 ip 주소를 넣어준다. 그리고 호스트 포트와 게스트 포트는 22 한 개와 23 한 개로 설정한다.
여기까지 설정되었다면, MobaXterm을 실행하고 좌측 상단의 Session으로 접속하고 SSH를 클릭하여 세팅한다. Remote Host에는 윈도우에서 확인한 가상 머신의 ip 주소(192.168.56.1
)를 입력하고 username에는 우분투의 사용자 계정을 입력한다. 그리고 OK를 눌러 세팅을 마무리한다.
아래와 같이 화면이 뜨면, 비밀번호를 입력하고 접속이 되는지 확인한다.
이렇게 뜨면 접속에 성공한 것이다. 접속을 위해서는 당연하게도 VM이 실행되어 있어야 한다. 이 점을 꼭 명심하자. 서버가 꺼지면 연결이 안되는 건 당연한거다.
PintOS 세팅
가상 환경 세팅이 끝났다면, .PintOS 세팅을 진행한다. 여기서 언급하는 PintOS는 PintOS-Kaist이며, 앞으로는 PintOS라고 할 예정이다. (PintOS-Kaist는 너무 길다..)
먼저 QEMU라는 에뮬레이터를 설치해야 한다. 윈도우 기준으로 본다면, 윈도우에서 가상머신으로 우분투를 설치하고, 그 우분투 위에서 QEMU 에뮬레이터가 돌아가며, QEMU 에뮬레이터에서 PintOS가 돌아가는 구조인 것이다.
QEMU 에뮬레이터는 아래 명령어로 설치할 수 있다. (QEMU 설치하면서 동시에 필요한 모든 패키지를 설치한다.)
$ sudo apt update
$ sudo apt install -y gcc make qemu-system-x86 python3
QEMU 설치가 끝났다면, 원하는 위치에서 PintOS 소스 코드를 깃헙에서 클론한다.
$ git clone https://github.com/casys-kaist/pintos-kaist
클론한 후, PintOS 루트 디렉토리에서 아래 명령어를 실행한다. (PintOS 루트 디렉토리는 소스 코드를 클론한 위치에서 pintos-kaist로 이동하면 된다.) 이 명령어는 pintos
라는 명령어를 어느 위치에서든지 사용할 수 있도록 해준다.
$ source ./activate
PintOS 빌드
PintOS를 빌드하기 위해 threads
디렉토리로 이동한 후, make
명령어를 실행한다.
$ cd threads
$ make
그리고 아래 명령어를 입력해서 잘 실행되는지 확인한다. (한참 걸린다...)
$ make check
오류 없이 실행된다면 일단 세팅은 끝났다.
이제 다음부터는 본격적으로 PROJECT1: THREADS 부터 시작해보자.
since 2025.01.27. ~ 개발자를 향해....🔥