pintOS 환경 세팅 2025.ver

박지성 ·2025년 5월 9일
post-thumbnail

이전 글을 꼭 보고 와주세요!
이전 글


잠깐!!!!!!!!!

중간중간 윈도우 맥 해야 할 작업이 달라요!!!!!
꼭 꼭 꼭 읽고 자신이 해야 할 작업을 확인하세요!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

맥 유저 사전 작업

1.도커 데스크탑에 들어간다.

  1. 꼭꼭꼭 QEMU로 바꾼다.
  2. Apply & restart를 누른다.

시작!

1. 바탕화면이나 작업을 하고 싶은 공간에 폴더 하나 만들기

2. 폴더 안에 Dockerfile 만들기

3. Dockerfile을 아래의 코드로 수정하기

# 베이스 이미지
FROM --platform=linux/amd64 ubuntu:18.04

# 로케일과 타임존 설정
ENV TZ=Asia/Seoul \
    LANG=ko_KR.UTF-8 \
    LANGUAGE=ko_KR.UTF-8

# 필수 패키지 설치
RUN export DEBIAN_FRONTEND=noninteractive && \
    apt-get update && \
    apt-get install -y \
      locales \
      tzdata \
      build-essential \
      gcc \
      gdb \
      vim \
      git \
      sudo \
      qemu-system-x86 \
      python3 && \
    # 로케일 생성 및 적용
    locale-gen ko_KR.UTF-8 && \
    update-locale LANG=ko_KR.UTF-8 && \
    # 캐시 정리
    rm -rf /var/lib/apt/lists/*

# 비-root 사용자 jungle 생성 및 sudo 권한 부여
RUN useradd -m -s /bin/bash jungle && \
    usermod -aG sudo jungle && \
    echo "jungle ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/jungle

# 이후 jungle 사용자로 전환
USER jungle
WORKDIR /home/jungle

# Pintos 개발 환경 activate 스크립트 로드 설정
RUN echo "source /home/jungle/pintos-kaist/activate" >> /home/jungle/.bashrc

# 외부에 공개할 포트 (예: GDB 원격 디버깅용 1234)
EXPOSE 1234

# 컨테이너 시작 시 bash 실행
CMD ["bash"]

3. 폴더 위치 CMD 켜기

vscode를 켜도 되고 터미널을 켜도 상관 없습니당


4. 도커 이미지 빌드하기

맥 유저
1. 이미지 빌드

docker build -t pintos-dev .
  1. 빌드한 이미지 실행하기
docker run -it \
  -v $(pwd):/home/jungle/pintos-kaist \
  -w /home/jungle/pintos-kaist \
  pintos-dev

윈도우 유저 (vscode 터미널 "CMD" 기준)
1. 이미지 빌드

docker build -t pintos-dev .
  1. 빌드한 이미지 실행하기
docker run -it ^
  --name pintos-build ^
  -v "%cd%:/workspaces/pintos_lab_docker" ^
  -w /workspaces/pintos_lab_docker/pintos-kaist ^
  pintos-dev ^
  bash

5. 잘 켜져있나 확인해보기

도커 데스크탑

VScode 사이드 바

6. 폴더에 Pintos-Kaist 파일을 넣는다

pintos-kaist 깃허브
또는
정글 제공 파일

7. 실행한 도커 컨테이너 안에 접속하기!!!!


이렇게 떠야 성공!

방법은

원하는 컨테이너 우클릭

Attach Shell 클릭

8. 테스트 해보기!!!!!

잠깐. 윈도우는 개행 문제를 해결해야 한다.
배재준 님의 도움을 받아 해결.

sed -i 's/\r$//' /workspaces/pintos_lab_docker/pintos-kaist/activate

# utils 폴더 아래 모든 스크립트에서 CR 제거
sed -i 's/\r$//' /workspaces/pintos_lab_docker/pintos-kaist/utils/*

진행!!!!!!


이제 테스트 시작!!!!

$ cd pintos-kaist
$ source ./activate
$ cd threads
$ make check
# 뭔가 한참 compile하고 test 프로그램이 돈 후에 다음 message가 나오면 정상
20 of 27 tests failed.

10분~15분 정도 걸립니다!!!

20 of 27 또는 19 of 27 또는 21 of 27이 나오면 성공!
다만 기준은 20 of 27!!!

어떤 방법으로 한거야?

내 컴퓨터에 있는 파일은 VScode,메모장, 텍스트 편집기, 뭐든 text를 편집 할 수 있음!!

디버깅과 실행은 도커 쉘에 진입해서 수행!!!

자세한 내용은 이전 글을 참고
이전 글

profile
개발 블로그 맞음.

0개의 댓글