Geek OS
목 차 Geek OS Geek OS 실행환경 구축 분석 도구 과제 Virtual Box Ubuntu Bochs Nasm ctag, cscope 과제
Geek OS University of Maryland(2001) 교육용 운영체제 운영체제가 제공하는 최소한의 기능(user process, virtual memory, scheduler 등)을 포함 리눅스와 매우 유사하며 축소판이라고 볼 수 있음 부팅 및 기본 자원 초기화까지 구현 운영체제의 핵심 기능을 몇 가지 project(0~5)로 구성 세계 많은 대학에서 수업과정으로 사용
Geek OS 실행환경 구축 Host PC bochs Geek OS ㆍ linux Process
Geek OS 실행환경 구축 Virtual Box Oracle에서 제작 및 지원하는 가상화 소프트웨어 https://www.virtualbox.org/wiki/Downloads Ubuntu 10.04 LTS 설치 CD https://www.dropbox.com/s/h9vtfdhta14o1yx/ubuntu-10.04-desktop-i386.iso Host PC bochs Geek OS ㆍ linux
Geek OS 실행환경 구축 Virtual Box 좌측 상단의 ‘새로 만들기‘ 클릭 linux, Ubuntu(32bit)
Geek OS 실행환경 구축 Virtual Box 만들어진 가상머신 클릭 후, 좌측 상단의 ‘설정‘ 클릭 ‘저장소’ 클릭 가상디스크 파일 선택 Ubuntu 설치 cd선택 설치 설치 후 cd제거
Geek OS 실행환경 구축 bochs ㆍ Geek OS bochs linux Host PC x86기반 PC시스템을 에뮬레이트하는 소프트웨어 대부분 운영체제 개발 또는 Guest OS를 구동시키기 위해 사용 프로세서, 메모리, 디스크, 디스플레이, Ethernet, BIOS와 여러 하드웨어 주변기기를 지원 DOS, Windows, BSDs, Linux, Xenix 등 다수의 운영체제 수행 Host PC bochs Geek OS ㆍ linux
Geek OS 실행환경 구축 bochs Shell에서 직접 설치 설치 확인 sudo apt-get install bochs bochs-x 설치 확인 Bochs
Geek OS 실행환경 구축 nasm Geek-OS 컴파일에 사용될 assembler 호환성 문제로 2.08 버전 rpm다운로드 후 설치 wget http://www.nasm.us/pub/nasm/releasebuilds/2.08/linux/nasm-2.08-1.i386.rpm alien 설치 sudo apt-get install alien rpm파일을 deb 파일로 변환 sudo alien -k nasm-2.08-1.i386.rpm 변환된 패키지 설치 sudo dpkg -i nasm_2.08-1_i386.deb 설치 확인 nasm -version
Geek OS 실행환경 구축 Geek OS 프로젝트를 진행할 OS 커널 소스 Install Geek-OS 소스 다운로드 wget http://sourceforge.net/projects/geekos/files/geekos/geekos-0.3.0/geekos-0.3.0.zip 압축 해제 unzip geekos-0.3.0.zip 환경변수 추가 vi ~/.bashrc 마지막 줄에 내용 추가 source ~/.bashrc 만약 vi 편집기가 제대로 동작 안하면 Sudo apt-get install vim GEEKOS_HOME=/home/myung_hoon/geekos-0.3.0 export GEEKOS_HOME PATH=$GEEKOS_HOME/scripts:$PATH export PATH alias bochs='/usr/bin/bochs -q' BXSHARE=/usr/share/bochs export BXSHARE
Geek OS 실행환경 구축 Geek OS 148 : GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) 첫 프로젝트 디렉토리 생성 startProject <project name> <master directory> [<previous project>] startProject project0 /home/myung_hoon/geekos-0.3.0/src project0 디렉토리 생성 확인 Makefile 수정 컴파일 과정의 반복적 명령을 자동화하여 기술한 파일 cd project0/build/ vi Makefile 148, 149번째 줄 수정 (번호 보이기 :set nu, 148번째 줄로 가기 :148) make(project0/build) 파일 간의 종속 관계를 파악해 Makefile에 기술된 대로 컴파일 또는 쉘 명령을 내릴 수 있는 유틸리티 make 명령으로 Geek-OS 커널을 한 번에 컴파일 make 148 : GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) -> GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) -fno-stack-protector (SSP - 스택 overflow를 방지하기위한 컴파일 옵션을 꺼준다) 149 : CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror ->CC_GENERAL_OPTS := $(GENERAL_OPTS) #-Werror (경고를 오류취급하는 옵션을 꺼준다)
Geek OS 실행환경 구축 Geek OS .bochsrc 수정(project0/build) bochs emulator에 대한 설정을 저장해둔 파일 vi .bochsrc 다음 내용으로 수정 vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest romimage: file=/usr/share/bochs/BIOS-bochs-latest megs: 8 boot: a floppya: 1_44=fd.img, status=inserted log: ./bochs.out mouse: enabled=0 private_colormap: enabled=0
Geek OS 실행환경 구축 Geek OS ㆍ Geek OS bochs linux Host PC bochs emulator 실행 및 Geek-OS 부팅(project0/build) 컴파일 하여 만들어진 커널 이미지를 통해 Geek-OS 부팅 bochs Host PC bochs Geek OS ㆍ linux
분석 도구 ctags 프로그램 소스 태그 추적 및 탐색기능을 가진 소프트웨어 Install sudo apt-get install ctags ctags를 사용할 경로에 tags 만들기 ctags –R yum install vim vi 대신 vim 사용 ~/vimrc 수정 Set tags=(tags파일 경로) 사용 Ctrl + ] Ctrl + T
분석 도구 cscope ctags의 부족한 부분을 보완하며 변수 및 함수가 사용된 곳을 찾을 수 있다. Install sudo apt-get install cscope mkcscope.sh 파일 생성 vi mkcscope.sh mkcscope.sh 내용 편집 #!/bin/sh rm –rf cscope.out cscope.file find . –name ‘*.[chsS]’ –print > cscope.files cscope –i cscope.files
분석 도구 cscope mkcscope.sh 파일 권한 변경 및 이동 vimrc 파일에 추가 chmod 755 mkcscope.sh sudo mv mkcscope.sh /usr/local/bin vimrc 파일에 추가 ~/.vimrc set nu set csprg=/usr/bin/cscope set csto=0 set cst set nocsverb if filereadable(“./cscope.out”) cs add cscope.out else cs add /home/kilmo/project0/cscope.out endif set csverb
분석 도구 cscope :cs find s main Ctrl + T cscope를 사용할 경로에 cscope 설치 mkcscope.sh :cs find s main Ctrl + T
과 제 bochs로 Geek OS 부팅 후, 본인 학번과 이름 출력 본인 PC에 Geek-OS 설치 자신의 mac address 출력 bochs 에뮬레이터 실행 창에 본인 학번과 이름 출력 캡처 해서 다음주까지 메일로... (메일제목: 운영체제수업 학번 이름) Download free PowerPoint templates from http://ppttemplate.net/ - Later, you can also upload your finished presentations for free to http://slideonline.com/