티스토리 뷰

반응형


  • 개인공부 후 자료를 남기기 위한 목적으로 포스팅합니다. 내용 상에 오류가 있을 수 있습니다.

0x06. Nachos 컴파일 및 실행결과

 크로스 컴파일러의 준비가 끝났으므로 이제 MIPS 기반의 Nachos를 컴파일 할 수 있다.  nachos4[1].0-modified.tar 파일을 다운받아 사용했다. 

nachos-4[1].0-modified.tar


 tar 명령어를 통해 압축을 풀면 아래와 같은 디렉토리 내용을 확인 할 수 있다.

< 그림 6.01 Nachos 4.0 설치를 위한 세팅 >


 우리는 리눅스 환경에서 컴파일 할 것이므로 ports/x86.linux 파일을 Makefile.dep로 심볼릭링크를 걸어준다.

# ln -s ports/x86.linux Makefile.dep

< 그림 6.02 리눅스 환경에서의 컴파일을 위한 심볼릭 링크 >


 Nachos는 threads 디렉토리의 Nachos와 userprog 디렉토리의 Nachos 두 가지가 존재한다. 첫 번째로 threads 디렉토리로 이동후 make depend 명령어를 통해 Makefile.dep를 참조, 디렉토리를 갱신한다.


# make depend

< 그림 6.03 threads 디렉토리에서 make depend 명령어 실행 >


 이제 make 명령어를 통해 nachos 파일을 컴파일 한다.

# make

< 그림 6.04 threads 디렉토리에서 make 명령어 실행 >


 nachos 라는 파일이 생성되었다. 실행시키면 <그림 6.05>와 같은 메시지가 출력된다.

< 그림 6.05 nachos 컴파일 완료,  실행결과 >


 nachos는 bin 디렉토리의 coff2noff 라는 프로그램을 같이 배포하고 있다. 일반적으로 리눅스는 COFF(Common object file format) 형식으로 실행되는 반면, nachos에서는 NOFF(Nachos object file format)을 독자적으로 사용한다. 이를 위해 coff2noff를 같이 배포한다.

 nachos 디렉토리에서 make 명령어로 coff2noff 파일을 생성할 수 있다.

# make

< 그림 6.06 coff2noff를 컴파일 >


< 그림 6.07 생성된 coff2noff 파일 >


 threads 디렉토리의 nachos를 제외한 userprog 디렉토리에서 또 다른 nachos를 제공한다. 해당 디렉토리로 가서 make depend 명령어를 사용한다.

# make depend

< 그림 6.08 userprog의 nachos 컴파일을 위한 디렉토리 갱신 >


 명령어가 끝나면 make 명령어를 사용해 nachos를 컴파일한다. <그림 6.09>에서는 이미 컴파일 완료 후 스크린 샷을 찍어 에러 메시지가 출력되었다.

# make

< 그림 6.09 userprog의 nachos 컴파일 >


< 그림 6.10 생성된 nachos 파일 >


< 그림 6.11 userprog의 nachos 실행결과 >


 userprog의 nachos를 실행하면 echo 프로그램이 실행된다.



반응형
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

최근에 올라온 글
최근에 달린 댓글
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함
Total
Today
Yesterday