강의 자료

Similar documents
지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

PowerPoint 프레젠테이션

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

SBR-100S User Manual

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint - chap01-C언어개요.pptx

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

슬라이드 제목 없음

PowerPoint Template

Bochs \(x86 에뮬레이터\)에서 MicroC/OS-II 실행하기

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

PowerPoint 프레젠테이션

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

고급 프로그래밍 설계

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Chapter 1

Secure Programming Lecture1 : Introduction

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

DE1-SoC Board

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

PowerPoint Presentation

<49534F C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

슬라이드 1

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

PowerPoint 프레젠테이션

MPLAB C18 C

*Ãßõ¿©Çà

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

204

Microsoft PowerPoint - 02-Development-Environment-1.ppt

Endpoint Protector - Active Directory Deployment Guide

4S 1차년도 평가 발표자료

Microsoft PowerPoint - 02_Installation

라즈베리파이 프로그래밍_130912(최종).indd

歯MW-1000AP_Manual_Kor_HJS.PDF

PowerPoint 프레젠테이션

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

01장

Oracle VM VirtualBox 설치 VirtualBox에서 가상머신 설치 가상머신에 Ubuntu 설치

이상한 나라의 앨리스.pages

페도라 코어 5 설치 가이드

歯mp3사용설명서

untitled

<30352D30312D3120BFB5B9AEB0E8BEE0C0C720C0CCC7D82E687770>

Mango220 Android How to compile and Transfer image to Target

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

Miscellaneous

슬라이드 1

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

슬라이드 1

R50_51_kor_ch1

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

PowerPoint 프레젠테이션

게임 기획서 표준양식 연구보고서

PowerPoint 프레젠테이션

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

알아 둘 사항 아이오드 제조사는 본 기기에 하드디스크를 포함하여 출고하지 않습니다. 따라서 하드디스크에 문제가 발생할 경우, 구매처 또는 해당 하드디스크 서비 스센터에 문의 하시기 바랍니다. 정해진 용도 외의 사용으로 발생한 문제에 대해서, 당사는 어떠한 책임도 지지

Microsoft Word ARM_ver2_0a.docx

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

벤처연구사업(전동휠체어) 평가

Adobe Flash 취약점 분석 (CVE )

문서 대제목


PowerPoint 프레젠테이션

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

6주차.key

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

³»Áö¼öÁ¤

슬라이드 1

Microsoft PowerPoint - ch07.ppt

작성자 : 기술지원부 김 삼 수

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Web Scraper in 30 Minutes 강철

Abstract View of System Components

SIGIL 완벽입문

PowerPoint 프레젠테이션

µµºñ¶óµîµî

소규모 비즈니스를 위한 플레이북 여기서 다룰 내용은 다음과 같습니다. 1. YouTube 소개 2. YouTube에서 비즈니스를 위한 채널 만들기 3. 눈길을 끄는 동영상 만들기 4. 고객의 액션 유도하기 5. 비즈니스에 중요한 잠재고객에게 더 많이 도달하기

untitled

Microsoft Word - Korean_뷰어 메뉴얼_공용_ADVR&SWi_.doc

05Àå

PowerPoint 프레젠테이션

/chroot/lib/ /chroot/etc/

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

ODS-FM1

Microsoft PowerPoint - 03-Development-Environment-2.ppt


(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

5 장소프트웨어관리편 리눅스의패키지관리시스템패키지란? 수많은리눅스배포판과마찬가지로우분투와 DYNA LINUX 또한소프트웨어설치 / 제거에관해서는패키지관리시스템에의존하고있습니다. 모든우분투용프로그램은 패키지 의형태로배포되고있는데, 여러분이이스트소프트웹사이트에서다운받는 a

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

LXR 설치 및 사용법.doc

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Transcription:

GeekOS 1. Introduction March, 2015 Dept. of Software, Dankook University E-mail : sonn2@daum.net

Introduction Who is Class Assistant..? 실습 조교 : 손대연 (대학원 컴퓨터학과 석사과정) 연구실 : 자연과학관 515호 (임베디드 연구실) 이메일 : sonn2@daum.net 카톡 아이디 : sonn2 GeekOS 실습은 소스 구현에 있어서 다소 힘든 점이 많습니다. 그러한 관계로 모르는 것이 있으시면 바로 물어보시는 것이 가장 좋습니다. 이메일은 가급적 실시간으로 살펴보고 있으니 일반적인 질문은 이메일을 통해서 물어보셔도 빠른 시간 내에 답장을 받아보실 수 있습니다. 연구실 방문시간은 '오후 2시 ~ 오후 6시' 정도이며 긴급하게 질문을 할 경우에는 카카오톡으로 메시지를 보내주셔도 괜찮습니다. (늦은 시간에도 답장해드립니다.) 2

GeekOS Course 1. Introduction Software와 Hardware간의 관계와 OS를 왜 배워야 하는 지에 대한 이유를 생각해본다. GeekOS에 대한 내용을 숙지하고 ubuntu에 bochs를 설치하여 OS에 대한 개발 환경을 설정해본다. 2. ELF, User Process ELF File Format에 대한 내용을 숙지하고 Header Parsing에 관하여 GeekOS에서 구현해본다. User Process를 구성하는 Segment, GDT, LDT 등과 Context Switching에 대한 내용을 숙지하여 GeekOS에서 구현해본다. 3. Paging, Scheduling Process의 Segment를 Memory상에 Paging 기법으로 할당하는 방법을 알아보고 실제 OS에서는 어떻게 구현되는지 살펴본다. Process의 실행 순서를 설정하는 Scheduling에 대한 기본적인 내용을 알아보고 Round-Robin Scheduling을 비롯한 다양한 Scheduling 기법을 배워가며 관련 알고리즘을 직접 GeekOS에서 구현해본다. 4. Semaphore, Mutex CPU상에서 Data에 접근할 때 발생하는 Synchronization 관련 내용을 알아보고 Semaphore, Mutex에 대한 필요성에 대해서 살펴본다.

What is the GeekOS? GeekOS University of Maryland(2001)에서 제작된 교육용 운영체제 User Process, Virtual Memory, Scheduler 등의 내용 포함 부팅 과정 및 기본 자원 초기화에 대한 내용 구현 여러 개의 Project를 통해 단계별로 OS를 구현할 수 있도록 소스 제공 http://geekos.sourceforge.net/index.php 참고

What is the GeekOS? 우리는 어떤 생각을 가지고 GeekOS에 접근해야 하는가? 기존의 C 프로그래밍 수업(선행 필수)에서는 C언어를 사용하기 위한 방법론을 배우게 된다. 우리는 Program을 만드는 방법을 처음 접하게 되지만, 실제로 어떻게 Program이 생성이 되고 작동되는 지에 대한 이론은 자세히 모른다. 우리가 OS를 직접 Programming 하기 위해서는 다음과 같은 질문에 대한 대답을 먼저 찾아야 한다. CPU, Memory, Disk를 비롯한 Hardware는 각각 무슨 역할을 가지는가? Software는 어떠한 과정을 거쳐서 만들어지는가? 우리가 사용하는 Software는 어떠한 과정을 거쳐서 실행되는가? Device에 있어서 OS가 차지하는 역할은 무엇인가? OS의 기본적인 설계 구조와 그에 따른 자료 구조는 Hardware의 어떤 자료를 근거로 하여 만들어졌는가? 우리는 왜 OS를 사용해야 하며, 왜 배워야 하는가? GeekOS 수업은 암기보다는 이해가 필요합니다.

GeekOS 설치 순서 ① ② ③ ④ ⑤ ⑥

GeekOS 실행환경 ① VirtualBox VirtualBox는 Oracle에서 제작된 가상화 소프트웨어 http://www.virtualbox.org/wiki/downloads

GeekOS 실행환경 ① VirtualBox 1. 좌측상단에 '새로 만들기' 클릭

GeekOS 실행환경 ① VirtualBox 2. Memory 크기 할당

GeekOS 실행환경 ① VirtualBox 3. HDD 크기 할당

GeekOS 실행환경 ① VirtualBox 3. HDD 크기 할당

GeekOS 실행환경 ① VirtualBox 4. 가상 디스크 생성

GeekOS 실행환경 ② ubuntu 1. ubuntu 10.04 image 다운받기 http://old-releases.ubuntu.com/releases/lucid/ubuntu-10.04-desktop-i386.iso

GeekOS 실행환경 ② ubuntu 2. Virtualbox에서 새로 생성한 OS의 설정에서 ubuntu iso 파일 선택

GeekOS 실행환경 ② ubuntu 2. Virtualbox에서 새로 생성한 OS의 설정에서 ubuntu iso 파일 선택

GeekOS 실행환경 ② ubuntu 3. ubuntu iso 파일을 선택한 이후 OS를 부팅한 뒤 설치 시작 여기 클릭

GeekOS 실행환경 ② ubuntu 3. ubuntu iso 파일을 선택한 이후 OS를 부팅한 뒤 설치 시작 여기 클릭

GeekOS 실행환경 ② ubuntu 3. ubuntu iso 파일을 선택한 이후 OS를 부팅한 뒤 설치 시작 ① ③ ② ④

GeekOS 실행환경 ② ubuntu 3. ubuntu iso 파일을 선택한 이후 OS를 부팅한 뒤 설치 시작 여기 클릭

GeekOS 실행환경 ② ubuntu 3. ubuntu iso 파일을 선택한 이후 OS를 부팅한 뒤 설치 시작 ① ② ③ ④ ⑤

GeekOS 실행환경 ② ubuntu 3. ubuntu iso 파일을 선택한 이후 OS를 부팅한 뒤 설치 시작 여기 클릭

GeekOS 실행환경 ② ubuntu 3. ubuntu iso 파일을 선택한 이후 OS를 부팅한 뒤 설치 시작

GeekOS 실행환경 ② ubuntu 3. ubuntu iso 파일을 선택한 이후 OS를 부팅한 뒤 설치 시작 여기 클릭

GeekOS 실행환경 ② ubuntu 4. 설치 종료한 뒤 Enter키 눌러서 시스템 재 시작

GeekOS 실행환경 ③ bochs 1. 재 부팅 이후 ubuntu 로그인 하기 여기 클릭

GeekOS 실행환경 ③ bochs 1. 재 부팅 이후 ubuntu 로그인 하기 ① ②

GeekOS 실행환경 ③ bochs 2. '프로그램' '보조 프로그램' '터미널' 열기

GeekOS 실행환경 ③ bochs 3. bochs 설치에 앞서 기본적인 개발 관련 package 설치하기 sudo apt-get update && sudo apt-get upgrade && sudo apt-get install build-essential && sudo apt-get install vim 명령어 입력 후 자신의 아이디의 암호 입력한 뒤 Enter

GeekOS 실행환경 ③ bochs 3. bochs package 설치 sudo apt-get install bochs bochs-x

GeekOS 실행환경 ③ bochs 3. bochs package 설치 bochs 입력한 뒤 다음과 같은 화면 나타날 시 package 설치 완료

GeekOS 실행환경 ④ nasm 1. Intel x86 Architecture Assembler인 nasm의 rpm 파일 다운 wget http://www.nasm.us/pub/nasm/releasebuilds/2.08/linux/nasm-2.08-1.i386.rpm 다운 받은 파일은 /home/(자신의 아이디) 경로에 존재함.

GeekOS 실행환경 ④ nasm 2. alien package 설치 sudo apt-get install alien

GeekOS 실행환경 ④ nasm 3. nasm의 rpm 파일을 deb 파일로 변환 sudo alien -k nasm-2.08-1.i386.rpm

GeekOS 실행환경 ④ nasm 3. nasm의 deb 파일을 설치함으로서 package 설치 종료 sudo dpkg -i nasm_2.08-1_i386.deb 해당 명령어로 nasm package 설치 완료 한 뒤에 nasm -version nasm의 버전을 확인하는 명령어를 실행하여 버전 체크

GeekOS 실행환경 ⑤ GeekOS 1. GeekOS의 공식 사이트에서 Source를 다운 받는다. ② ① ③ ④

GeekOS 실행환경 ⑤ GeekOS 1. GeekOS의 공식 사이트에서 Source를 다운 받는다. ① ②

GeekOS 실행환경 ⑤ GeekOS 2. 다운 받은 파일을 압축 해제하여 홈 디렉토리에 옮겨놓는다. Home Directory Path : /home/(자신의 아이디) ① ③ 마우스 오른쪽 버튼 클릭 ④ ②

GeekOS 실행환경 ⑤ GeekOS 2. 다운 받은 파일을 압축 해제하여 홈 디렉토리에 옮겨놓는다. Home Directory Path : /home/(자신의 아이디) ③ ① 마우스 오른쪽 버튼 클릭 빈 곳에 마우스 오른쪽 버튼 클릭 ② ④

GeekOS 실행환경 ⑤ GeekOS 3. ~/.bashrc 파일에 환경변수 추가 터미널을 열고 vi ~/.bashrc 실행하여 파일을 vim 편집기로 열도록 한다. ② ① 방향키 또는 Page Down키를 이용하여 커서를 파일의 맨 마지막 줄로 이동

GeekOS 실행환경 ⑤ GeekOS 3. ~/.bashrc 파일에 환경변수 추가 터미널을 열고 vi ~/.bashrc 실행하여 파일을 vim 편집기로 열도록 한다. ① ② a키를 눌러서 입력상태로 바꾼다. 하단의 내용을 그대로 입력한 뒤 Esc를 누른 후에 :wq! 라는 문자를 입력하여 저장한 뒤 종료시킨다. GEEKOS_HOME=/home/(자신의 아이디)/geekos-0.3.0 export GEEKOS_HOME PATH=$GEEKOS_HOME/scripts:$PATH export PATH

GeekOS 실행환경 ⑤ GeekOS 4. 저장 이후 터미널에서 source ~/.bashrc 입력하여 환경변수 적용 5. Project Directory 생성하기 startproject project0 /home/(자신의 아이디)/geekos-0.3.0/src 입력하여 생성

GeekOS 실행환경 ⑤ GeekOS 5. cd project0/build/ 실행하여 Project의 Build 디렉토리로 들어간다. 6. Project의 Compile option을 수정하도록 한다. vi Makefile ① ②

GeekOS 실행환경 ⑤ GeekOS 6. Project의 Compile option을 수정하도록 한다. Makefile이 vim 편집기에서 열린 상태에서 /GENERAL_OPTS 입력하여 해당 옵션이 포함되어 있는 Line 검색 ① ② 기존의 옵션에서 수정 없이 Compile한 후 실행을 하게 되면 정상적으로 작동 되지 않는다. 이로 인하여 Compile을 담당하는 Makefile의 일부 옵션을 수정하여야 한다.

GeekOS 실행환경 ⑤ GeekOS 6. Project의 Compile option을 수정하도록 한다. ① ② a키를 눌러서 입력상태로 바꾼다. 하단의 내용으로 기존의 내용을 변경한 뒤 Esc를 누른 후에 :wq! 라는 문자를 입력하여 저장한 뒤 종료시킨다. GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) -fno-stack-protector CC_GENERAL_OPTS := $(GENERAL_OPTS)

GeekOS 실행환경 ⑤ GeekOS 7. 터미널로 돌아와서 project0/build 디렉토리에서 make 입력 ② ① make 실행 이후 fd.img가 만들어지면 정상적으로 Compile이 된 것이다. 만약 make가 제대로 실행되지 않고 Compile error가 발생할 시에는.. makefile 파일의 수정한 부분을 자세히 살펴보고 다시 고치던지.. project 디렉토리를 만드는 과정부터 다시 시작하자.

GeekOS 실행환경 ⑤ GeekOS 8. bochs의 정상적인 실행을 위하여 build 디렉토리 내의.bochsrc 파일을 수정하도록 한다. vi.bochsrc ① ②

GeekOS 실행환경 ⑤ GeekOS 8. bochs의 정상적인 실행을 위하여 build 디렉토리 내의.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

GeekOS 실행환경 ⑤ GeekOS ① 9..bochsrc 파일을 수정하고 저장한 이후 터미널에서 bochs 입력하여 정상적으로 수행 되는지 확인한다. ②

실습 수행 조 편성 최종 과제 수행 방법 조 편성 인원은 4~5명으로 정하도록 한다. 2번째 실습 시간 전까지 조장 및 조원들의 명단을 이메일로 제출해주세요. 시간 내에 조를 편성하지 못한 사람들은 Random으로 정해진다. 마지막 실습 수업을 종료한 이후에 3~4개의 주어진 과제 중에서 1개를 선택하여 주어진 시간 내에 Source를 작성하여 제출하도록 한다. 수행 프로젝트는 선택 과제에 대한 구현 과정의 보고서를 작성하도록 한다. PPT, HWP, PDF 등 보고서 양식은 자유 참고자료를 사용하는 경우 무조건 출처 표기가 되어있어야 함 보고서에는 Source가 필수적으로 포함이 되어 있어야 한다. Source없이 보고서를 작성 할 경우 0점 처리 각 Source는 구현 과정을 알 수 있도록 주석이 포함되어 있어야 한다. 미 완성 상태라도 무조건 제출하도록 한다. 주어진 일정 내에 보고서를 제출하지 못한 조는 감점 처리된다.

실습 수행 조 편성 최종 과제 수행 방법 또한, 최종 과제 제출과 더불어 발표 자료를 준비하여 정해진 일정에 교수님, 실습조교에게 Presentation 형식으로 발표를 실시한다. PT 발표 시간 : 20분 내외 PT 제출 양식은 자유 최종 과제 보고서와 동일하게 제작 과정에 대한 내용을 필히 작성 최종 과제의 주제 공개 및 보고서 제출, 발표 일자는 추후 공지 예정

1번째 과제 GeekOS 설치한 뒤 문자 출력하기 본 과제는 조 별로 진행한다. PT에 적힌 설치 과정을 참고하여 직접 GeekOS를 설치한 뒤 다음과 같이 Screenshot을 찍어서 교수님과 실습조교에게 E-mail을 보내도록 한다. 첨부 내용 : 작성한 Source (Project 단위로 보낼 것), Screenshot