학교 운영체제 과목을 수강하며 진행했던 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설치
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.a와 libgcc2.a를 만들어 make시의 에러를 방지
# make -i LANGUAGE=c
# make -I install LANGUAGE=c
make오류가 뜨는걸 방지하기 위해 make -i LANGUAGE=c / make -I install LANGUAGE=c를통해 해결
nachos를 정상적으로 구동하기 위한 cross-complier설치과 완료되었다.
'기술 > 운영체제' 카테고리의 다른 글
운영체제(2)_1950~1960년대의 운영체제 (0) | 2021.08.30 |
---|---|
운영체제(1)_운영체제의 큰 그림 (0) | 2021.08.30 |
nachos 운영체제 (4)main 함수 분석 정리 및 고찰 (0) | 2021.06.06 |
nachos 운영체제 (3)nachos 설치 (0) | 2021.06.06 |
nachos 운영체제 (1)nachos시스템 소개 (0) | 2021.06.06 |