대학교 (SW)

MacOS에서 NachOS 설치하기

누구누구.. 2025. 5. 20. 23:07

개발 환경 : M1 macOS

작성 시기 : 2025.05.20

환경 : NachOS 4.0 + Ubuntu 18.04 (32bit 컴파일 환경)

 

사담

- OS 과목 과제를 위해 환경 설정을 시작했습니다

- VMware, UTM에서 수만번 도전했지만 모두 실패 후 docker에서 한 번에 성공했습니다... 

 

1. docker desktop 설치

https://docs.docker.com/desktop/install/mac-install/

 

Mac

Install Docker Desktop for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.

docs.docker.com

 

2. rosetta 설치

터미널에서 아래 명령어 입력

$ softwareupdate --install-rosetta

이후 동의하기

$ agree

 

3. docker 이미지 생성

먼저 폴더 생성

$ mkdir ~/docker_folder
$ cd ~/docker_folder

vscode에서 dockerfile 생성 후 아래 내용 입력

FROM ubuntu:18.04

ENV DEBIAN_FRONTEND=noninteractive

# 기본 작업 디렉토리
WORKDIR /root

# 패키지 업데이트 및 32bit 환경용 패키지 설치
# C, C++ 컴파일러 및 필수 패키지 설치
RUN apt-get update && \
    apt-get upgrade -y && \
    # 32-bit kernel 환경 세팅 및 gcc, g++ 컴파일러 설치
    apt-get install -y build-essential \
                        gcc-4.8 g++-4.8 gcc-4.8-multilib g++-4.8-multilib \
                       gcc-multilib g++-multilib \
                       lib32ncurses5 lib32z1 \
                       curl wget vim ed dpkg && \
    dpkg --add-architecture i386 && \
    # 32-bit 라이브러리 설치
    update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40 && \
    update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 40 && \
    apt-get clean

CMD ["/bin/bash"]

 

4. docker image 빌드

NachOS는 ARM이 아닌 x86 32bit 환경 필요

$ docker buildx create --use
$ docker buildx build --platform linux/amd64 -t nachos32bit --load .

 

5. 컨테이너 실행

$ docker run -it --platform linux/amd64 nachos32bit

정상적으로 실행된다면 ubuntu shell 환경이 나타납니다.

 

6. 오류 발생 시 해결

도커 데스크탑에서 해당 container, image, volume, build를 삭제하면 됩니다.

 

7. NachOS 4.0 설치 및 컴파일

1) NachOS 소스 디렉토리 생성

$ mkdir ~/nachos
$ cd ~/nachos

 

2) Nachos 소스코드 다운로드

$ wget --user-agent="Mozilla/5.0" https://www.fit.hcmus.edu.vn/~ntquan/os/assignment/nachos_40.tar.gz
$ wget --user-agent="Mozilla/5.0" https://www.fit.hcmus.edu.vn/~ntquan/os/assignment/mips-decstation.linux-xgcc.gz
$ wget --user-agent="Mozilla/5.0" https://www.fit.hcmus.edu.vn/~ntquan/os/assignment/nachos-gcc.diff.gz

 

3) 압축 해체 및 Makefiles 패치

$ tar zxvf nachos_40.tar.gz
$ tar zxvf mips-decstation.linux-xgcc.gz 
$ tar zxvf nachos-gcc.diff.gz

 

4) 패치 적용

$ patch -p0 < nachos-gcc.diff

 

5) NachOS 컴파일 및 실행

$ cd NachOS-4.0/code/build.linux
$ make depend
$ make

 

6) NachOS 환경에서 유저 프로그램을 실행하기 위해 COFF → NOFF 포맷 변환

$ cd ../../coff2noff
$ make

 

7) test application 실행

$ cd ../code/test
$ make
$ ../build.linux/nachos -x halt

실행에 성공하면 아래 내용이 출력됩니다.

Machine halting!

굿,,_

 

'대학교 (SW)' 카테고리의 다른 글

피그마와 커서 MCP 연결하기  (0) 2025.11.19
Linux 기본 설정  (0) 2024.09.03
MacOS에서 VMware으로 Linux(Ubuntu) 설치하기  (2) 2024.08.31