1. MIPS Cross Compiler 설치하기
① binutils 설치
- 환경변수 설정
위치: /home/계정
$ export TARGET=decstation-ultrix
$ export gccLocal=~/gcc-Local
- 압축 풀기
위치:/home/계정
$tar xzvf binutils-2.12.tar.gz
- binutils를 configure하고 compile한다.
위치: /home/계정/binutils-2.12
$ ./configure --prefix=$gccLocal --target=$TARGET
- make, make install을 수행.
위치: /home/계정/binutils-2.12
$ make
$ make install
② gcc 설치
- 압축 풀기
위치:/home/계정
$tar xzvf gcc-2.95.tar.gz
- gcc를 컴파일 할 디렉토리 생성
위치: /home/계정/
$ mkdir gcc-build
- 별도의 디렉토리에 gcc를 컴파일
위치: /home/계정/gcc-build
$ ../gcc-2.95/configure --target=decstation-ultrix --with-gnu-as --with-gnu-ld --prefix=$gccLocal
- 거짓 libgcc.a와 libgcc2.a를 만들어 make시의 에러를 방지
위치: /home/계정/gcc-build
$ ar r libgcc.a /dev/null
$ ar r libgcc2.a /dev/null
- make, install 실행
위치: /home/계정/gcc-build
$ make -i LANGUAGE=c
$ make -i install LANGUAGE=c
- gccLocal위치에 decstation-ultrix/bin 디렉토리가 만들어지며 그 안에 컴파일러(gcc)가 설치된다.
2. Nachos 설치
- 압축 풀기
위치:/home/계정
$tar xzvf nachos-4.0-os2007_1.tar.gz
- X86플랫폼 의존성 파일을 Makefile.dep로 심볼릭 링크를 만들어 준다.
위치:/home/계정/nachos-4.0/code
$ln -s ports/x86.linux Makefile.dep
- make depend, make 실행
위치:/home/계정/nachos-4.0/code/threads
$ make depend
$ make
- nachos라는 실행파일 생성
위치:/home/계정/nachos-4.0/code/bin
$ make -> 오류 무시
- coff2noff 프로그램이 생성 확인
위치:/home/계정/nachos-4.0/code/bin
=> cross compile시에 coff형식으로 생성된 실행파일을 nachos에서 지원하 는 noff형식으로 바꾸어주는 프로그램
- Makefile수정: 크로스컴파일러의 경로를 지정해 준다.
GCCDIR = 부분을 크로스 컴파일러를 만든 곳으로 바꾸어 준다.
위치:/home/계정/nachos-4.0/code/test
$ vi Makefile
GCCDIR=/home/계정/gcc-Local/decstation-ultrix/bin/ (맨 끝에 슬래쉬(/) 포함.)
$ make
3. Application 실행
- test Application을 컴파일하고 수행
위치: /home/os/nachos-4.0/code/userprog
$ make depend
$ make
$ ./nachos 파일명