[공학]리눅스 환경에서 나초스(Nachos)설치과정 및 Threads & main()분석
- 최초 등록일
- 2007.04.30
- 최종 저작일
- 2007.01
- 24페이지/ 한컴오피스
- 가격 1,500원
목차
1. 나초스 시스템 소개
2. 작업환경
- 실제 컴퓨터 환경
- Linux 사용을 위한 VM-ware
3. cross compiler 설치과정
1) binutils와 gcc package, Nachos를 다운로드 한다.
[1]binutils 설치과정
1)binutils를 unpacking을 한다
2)binutils package를 compile하고 /usr/local/에 설치
[2]gcc 설치과정
1)gcc를 unpacking을 한다
2)gcc package를 compile하고 /usr/local/에 설치
4.nachos compile 설치과정
1)nachos를 unpacking을 한다
2)nachos 설치
5.nachos application compile 과정
1)coff2noff프로그램 생성
2)test application
6.nachos 실행 및 결과
1)nachos 실행결과
7.main() 함수 분석
Q1. ThreadedKernel, UserProgKernel 두 class는 어떤 관련이 있는가?
Q2. thread/nachos, userprog/nachos 두 실행 파일을 실행할 때 main()함 수가 수행하는 작업의 차이는 무엇인가?(main.h , main.cc)
Q3. 위의 두 실행 파일에서 사용할수 있는 option들에는 어떤것 들이 있나?
8.팀 구성원 소개
결과 및 고찰
본문내용
1. 나초스 시스템 소개
나초스(Nachos)는 Not Another Completely Heuristic Operating System의 약자로서 U.C..Berkeley 대학의 Tom Anderson 교수가 운영체제 실습을 위해 만든 Operating System 이다.
나초스가 실제 운영체제와 다른 점은, 실제 운영체제가 하드웨어 기반에서 동작한다는 반면에 나초스는 유닉스나 리눅스의 응용프로그램의 형태, MIPS 또는 I386 machine 등의 하드웨어 위에서 구동된다.
교육 목적으로 작성되어 내부 구조가 단순하고 체계적으로 구성되어 있어 소스 코드를 이해하는 것이 비교적 용이하다
그러나, 실제 운영체제가 하는 것처럼 인터럽트, 가상메모리, 입출력장치 등을 시뮬레이션 할 수 있다. 나초스 머신은 3가지로 구성된다. 즉, 레지스터, 물리적 메모리, 가상메모리로 구성되는데, 각각에 대해서 알아보겠다.
첫째, 레지스터. 40개의 레지스터로 이루어진 하나의 array는 스택포인터, 더블레지스터, 프로그램카운터, 넥스트 프로그램카운터, 레지스터 타겟 등으로 이루어져있다. 이 레지스터는 0-39의 번호가 할당되어있다.
둘째, 메인메모리. 메모리는 바이트 단위의 주소를 가지며, 128바이트의 페이지들로 구성되어있다. 이것은 디스크섹터와 같은 크기이다. 메모리는 물리적인 주소를 메모리 주소로 엑세스 할 수 있게 한다. 기본적으로 나초스 머신은 31페이지의 물리적 메모리를 갖는다.
셋째, 가상메모리. 나초스는 single linear page나 소프트웨어로 관리되는 TLB 등으로 통해 가상메모리를 지원한다. 이러한 선택은 TLB나 pageTable 변수를 초기화 하는것에 영향을 끼친다.
debugging이나 test의 편의를 위해 나초스를 실제 하드웨어 위에서 동작시키지 않고 Linux나 Solaris등의 다른 운영 체제에서 하나의 응용 프로그램으로 실행시킨다. 따라서, 일반 응용 프로그램을 debugging하는 것과 마찬가지로 GDB 등을 그대로 사용 할 수 있다. 이럴 경우에는 하드웨어를 대신할 수 있는 시뮬레이터를 사용하게 되며 일반적으로 나초스는 MIPS 시뮬레이터 코드도 함께 포함하고 있어 나초스 커널과 MIPS 시뮬레이터를 하나의 프로그램으로 링크하여 사용한다.
참고 자료
없음