Geek OS Setup 정범종 bj.jung@dankook.ac.kr
소개 실습 조교 : 정범종 연구실 Email 단국대학교 전자전기공학부 학사 단국대학교 컴퓨터 공학 석사과정 자연과학관 515호 bj.jung@dankook.ac.kr
Index Geek OS Geek OS 실행환경 구축 과제 Running environment Bochs Nasm Virtual Box Ubuntu Geek-OS 과제
Geek OS Geek-OS University of Maryland(2001) 교육용 운영체제 세계 많은 대학에서 수업과정으로 사용 운영체제가 제공하는 최소한의 기능(user process, virtual memory, scheduler 등)을 포함 부팅 및 기본 자원 초기화까지 구현 운영체제의 핵심 기능을 몇 가지 project로 구성
Geek OS GeekOS running environment Geek OS bochs Linux Host PC Process
Geek OS bochs x86, x86-64 기반의 PC시스템 전체를 에뮬레이트하는 소프트웨어 프로세서, 메모리, 디스크, 디스플레이, Ethernet, BIOS와 여러 하드웨어 주변기기를 지원 다양한 운영체제에서 실행 가능
Geek OS The Netwide Assembler (NASM) 인텔 x86 아키텍처 기반 어셈블러 다양한 운영체제에서 사용 가능 간결하고 쉬운 문법 사용 오픈소스 프리웨어 운영체제 개발 용도로 많이 사용
Geek OS 실행환경 구축 Virtual Box Oracle에서 제작 및 지원하는 가상화 소프트웨어 Download https://www.virtualbox.org/wiki/Downloads Ubuntu 10.04 LTS 설치 CD Download https://www.dropbox.com/s/h9vtfdhta14o1yx/ubuntu-10.04-desktop-i386.iso
Geek OS 실행환경 구축 Virtual box 새로만들기 – Ubuntu(32bit)
Geek OS 실행환경 구축 Virtual box 1 2 3 4
Geek OS 실행환경 구축 Bochs Vim Geek OS를 수행시킬 에뮬레이터 Install $sudo apt-get install bochs bochs-x Vim 텍스트 편집기 설치, vi 대신 vim 사용 가능 $sudo apt-get install vim 12.04 SDL library 필요
Geek OS 실행환경 구축 NASM assembler Geek-OS의 컴파일에 사용될 assembler Install NASM 다운로드 (nasm-2.08-1.i386) $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 버전 확인 Alien : Rpm만 배포하는데 deb를 설치하고자 하거나 반대라면 alien 툴을 사용하여 변환 dpkg .deb 패키지를 설치
Geek OS 실행환경 구축 GeekOS(geekos-0.3.0) 프로젝트를 진행할 Geek-OS 커널 전체 소스 Install Geek-OS 소스 다운로드 $wget http://sourceforge.net/projects/geekos/files/geekos/geekos-0.3.0/geekos-0.3.0.zip --no-check-certificate 압축 해제 $unzip geekos-0.3.0 환경변수 추가 $sudo vi ~/.bashrc 마지막 줄에 내용 추가 source ~/.bashrc GEEKOS_HOME=/home/본인계정이름/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 실행환경 구축 GeekOS(geekos-0.3.0) Install 프로젝트 폴더 생성 startProject <project name> <master directory> [<previous project>] $startProject project0 /home/본인계정이름/geekos-0.3.0/src Project0 폴더 생성 확인 Makefile 수정(project0/build) 컴파일 과정의 반복적 명령을 자동화하여 기술한 파일 $vi Makefile 148, 149 번째 라인 수정 148줄 : GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) -> GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) -fno-stack-protector 149줄 : CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror ->CC_GENERAL_OPTS := $(GENERAL_OPTS) #-Werror
Geek OS 실행환경 구축 GeekOS(geekos-0.3.0) Install Make(project0/build) 파일간의 종속관계를 파악해 Makefile에 기술된 대로 컴파일 또는 쉘 명령을 내릴 수 있는 유틸리티 make 명령으로 Geek-OS 커널을 한번에 컴파일 $make
Geek OS 실행환경 구축 GeekOS(geekos-0.3.0) Install .bochsrc 수정(project0/build) bochs 에뮬레이터에 대한 설정을 저장해둔 파일 $vi .bochsrc 다음 내용으로 수정 vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest romimage: file=/usr/share/bochs/BIOS-bochs-latest megs: 8 boot: floppy floppy_bootsig_check: disabled=0 floppya: 1_44=fd.img, status=inserted log: ./bochs.out keyboard_serial_delay: 250 keyboard_paste_delay: 100000 vga: extension=vbe mouse: enabled=0 private_colormap: enabled=0
Geek OS 실행환경 구축 GeekOS(geekos-0.3.0) Install bochs 에뮬레이터 실행 및 Geek-OS 부팅 컴파일 하여 만들어진 커널 이미지를 통해 Geek-OS 부팅 $bochs 실행 화면
과제 본인 PC에 Geek-OS 설치 터미널 창에서 자신의 mac address 출력 Bochs 에뮬레이터 실행 창에 본인 학번과 이름 출력 캡처 해서 다음주까지 메일 (메일 제목 : 운영체제개론_수업요일_학번_이름) 예시) 운영체제개론_월_32xxxxxx_홍길동
Q/A