기술/운영체제

nachos 운영체제 (2)cross-compiler 설치

코린이형준 2021. 6. 6. 16:11
728x90

학교 운영체제 과목을 수강하며 진행했던 nachos os 설치및 컴파일 과정입니다. 프로젝트 진행당시 제대로된 레퍼런스가 없어 고생한 기억이 있어 참고용으로 업로드하였습니다.

1. 작업환경

-컴퓨터 환경

 

-리눅스 환경

우분투 버전은 https://releases.ubuntu.com/14.04/ 링크에서 14.04 32bit용 데스크탑 이미지를 다운받아 사용하였다.

2. cross-compiler란?

크로스 컴파일러(cross compiler)는 컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러이다. 크로스 컴파일러 툴은 임베디드 시스템 혹은 여러 플랫폼에서 실행파일을 생성하는데 사용된다. 이것은 운영 체제를 지원하지 않는 마이크로 컨트롤러와 같이 컴파일이 실현 불가능한 플랫폼에 컴파일하는데 사용된다. , 컴파일이 불가능한 곳에서 컴파일하여 실행파일을 생성하는 데 사용하기 위한 것으로 정의할 수 있다. 이것은 시스템이 사용하는데 하나 이상의 플랫폼을 쓰는 반가상화에 이 도구를 사용하는 것이 더 일반적이게 되었다. 아래는 cross컴파일러와 일반적으로 사용되는 Native컴파일러의 차이점에 관한 표이다.

종류 차이점
Native(네티이브) 컴파일러 동일한 환경에서 동작되는 컴파일러로 이로 인해 생성되는 실행 파일을 동일한 환경에서 수행할 수 있음.
cross(크로스) 컴파일러 컴파일러가 동작하는 시스템과 컴파일러에 의해 생성된 실행 파일이 동작하는 시스템이 다른 것

3-1) cross컴파일러와 Native컴파일러의 차이점

3.  cross-compiler설치

binutils설치
gcc구버전 설치

Nachos os는 오래된 os로써 컴파일간 에러가 많이 떳으므로 binutils gcc를 구버전을 구글 검색을 통해 다운받았다. (우분투 웹에서 직접 다운)

# sudo passwd root

#su

nachos설치 진행간 사용권한이 필요하므로 초기 루트계정 패스워드 설정 및 root사용자 전환을 해준다.

 

# apt-get upgrade

개발환경을 최신상태로 업그레이드 해준다.

# g++ -v

# apt-get install g++

g++ 버전 확인후 설치가 안됨을 인지하고 g++ 설치하였다.

# apt-get install csh

추후 Makefile 파일에서 csh을 이용하여 명령어를 주는 경우가 있기 때문에 설치하였다.

#tar xzvf binitils-2.11.2.tar.gz

#tar xzvf gcc-3.0.1.tar.gz

/ 위치에서 tar파일의 압축을 해제한다.

Binutils-2.11.2디렉터리로 이동 후,

# ./configure --prefix=/usr/local --target=decstation-ultrix

binutils가 설치될 위치를 지정해준다.

# make

# make install

# mkdir gcc-build

gcc-build 디렉터리 생성 후 이동

# ../gcc-3.0.1/configure --target=decstation-ultrix --with-gnu-as --with-gnu-ld --prefix /usr/local --with-local-prefix=/usr/local --enable-languages=c

거짓 libgcc.alibgcc2.a를 만들어 make시의 에러를 방지

# make -i LANGUAGE=c

# make -I install LANGUAGE=c

make오류가 뜨는걸 방지하기 위해 make -i LANGUAGE=c / make -I install LANGUAGE=c를통해 해결

 

nachos를 정상적으로 구동하기 위한 cross-complier설치과 완료되었다.

728x90