개인공부 후 자료를 남기기 위한 목적으로 포스팅합니다. 내용 상에 오류가 있을 수 있습니다. 0x07. main() 함수 분석 1. ThreadedKernel, UserProgKernel 두 class는 어떤 관계인가?// kernel.h #ifndef KERNEL_H#define KERNEL_H#include "copyright.h"#include "debug.h"#include "utility.h"#include "thread.h"#include "scheduler.h“#include "interrupt.h"#include "stats.h"#include "alarm.h"class ThreadedKernel { public: ThreadedKernel(int argc, char **argv); // ..
개인공부 후 자료를 남기기 위한 목적으로 포스팅합니다. 내용 상에 오류가 있을 수 있습니다.0x06. Nachos 컴파일 및 실행결과 크로스 컴파일러의 준비가 끝났으므로 이제 MIPS 기반의 Nachos를 컴파일 할 수 있다. nachos4[1].0-modified.tar 파일을 다운받아 사용했다. tar 명령어를 통해 압축을 풀면 아래와 같은 디렉토리 내용을 확인 할 수 있다. 우리는 리눅스 환경에서 컴파일 할 것이므로 ports/x86.linux 파일을 Makefile.dep로 심볼릭링크를 걸어준다.# ln -s ports/x86.linux Makefile.dep Nachos는 threads 디렉토리의 Nachos와 userprog 디렉토리의 Nachos 두 가지가 존재한다. 첫 번째로 threads..
개인공부 후 자료를 남기기 위한 목적으로 포스팅합니다. 내용 상에 오류가 있을 수 있습니다. 0x05. 리눅스에 gcc 3.0.1 설치 Nachos에서 구동될 gcc 예전 버전을 구하기 위해 gun의 ftp 사이트로 접속해 gcc-3.0.1.tar.gz를 다운 받는다. 윈도우에 다운받은 gcc-3.0.1.tar.gz 파일을 리눅스의 rz 명령어를 통해 리눅스로 옮긴다. 다운받은 gcc 설치 tar 파일의 압축을 해제한다. # tar -zxvf gcc-3.0.1.tar.gz gcc-3.0.1 디렉토리가 생성되었으며, gcc 빌드를 위한 별도의 gcc-build 디렉토리르 생성했다. 다음으로 configure 파일을 통해 컴파일 설정을 다시 해준다. # configure --target=decstation-..