Microsoft PowerPoint - 15-4-EmbedSW-Host



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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint 프레젠테이션

Abstract View of System Components

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

PowerPoint 프레젠테이션

untitled


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

Network seminar.key

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Adobe Flash 취약점 분석 (CVE )

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

슬라이드 1

목차 운영체제운영체제종류실시간시스템임베디드운영체제임베디드운영체제의개념임베디드리눅스리눅스리눅스부팅과정리눅스디렉토리구조리눅스디렉토리설명리눅스파일시스템리눅스소프트웨어패키지리눅스컴파일러 1

Microsoft PowerPoint - 15-MARS

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Sena Technologies, Inc. HelloDevice Super 1.1.0

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

운영체제실습_명령어

Assign an IP Address and Access the Video Stream - Installation Guide

ARMBOOT 1

UDP Flooding Attack 공격과 방어

Microsoft Word - NAT_1_.doc

PowerPoint 프레젠테이션

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

Microsoft PowerPoint - chap10-함수의활용.pptx

SMB_ICMP_UDP(huichang).PDF

PowerPoint 프레젠테이션

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

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

PowerPoint 프레젠테이션

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

Microsoft Word doc

Microsoft PowerPoint - 06_(Linux)_(Fundamental)_C_Programming

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

PowerPoint 프레젠테이션

Mango220 Android How to compile and Transfer image to Target

망고100 보드로 놀아보자-4

Chapter ...

강의10

PowerPoint 프레젠테이션

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Windows Server 2012

vi 사용법

Microsoft PowerPoint - 4.스캐닝-1(11.08) [호환 모드]

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

chapter4

Microsoft PowerPoint - e7.pptx

PowerPoint 프레젠테이션

제20회_해킹방지워크샵_(이재석)

cam_IG.book

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

슬라이드 제목 없음

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

Chapter #01 Subject

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

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft Word ARM_ver2_0a.docx

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

삼외구사( 三 畏 九 思 ) 1981년 12월 28일 마산 상덕법단 마산백양진도학생회 회장 김무성 외 29명이 서울 중앙총본부를 방문하였을 때 내려주신 곤수곡인 스승님의 법어 내용입니다. 과거 성인께서 말씀하시길 道 를 가지고 있는 사람과 어울려야만 道 를 배울 수 있

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

Microsoft PowerPoint - chap12-고급기능.pptx

슬라이드 제목 없음

PowerPoint 프레젠테이션

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

온라인등록용 메뉴얼

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap-02.pptx

슬라이드 1

The Pocket Guide to TCP/IP Sockets: C Version

JVM 메모리구조

Microsoft PowerPoint - 08_(C_Programming)_(Korean)_Preprocessing

The Pocket Guide to TCP/IP Sockets: C Version

인천광역시의회 의원 상해 등 보상금 지급에 관한 조례 일부개정조례안 의안 번호 179 제안연월일 : 제 안 자 :조례정비특별위원회위원장 제안이유 공무상재해인정기준 (총무처훈령 제153호)이 공무원연금법 시행규칙 (행정자치부령 제89호)으로 흡수 전면 개

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

Microsoft PowerPoint - ch07.ppt

DE1-SoC Board

종사연구자료-이야기방 hwp

리눅스 취약점대응방안권고 / KISA 취약점점검팀 영향받는플랫폼 OS, FAQ 추가 개요 미국보안회사 에의해 시스템의 라이브러리 의특정함수에서임의코드를실행할수있는취약점이공개 해당취약점은 CVE 지정, 도메인네임을

목 차 국회 1 월 중 제 개정 법령 대통령령 7 건 ( 제정 -, 개정 7, 폐지 -) 1. 댐건설 및 주변지역지원 등에 관한 법률 시행령 일부개정 1 2. 지방공무원 수당 등에 관한 규정 일부개정 1 3. 경력단절여성등의 경제활동 촉진법 시행령 일부개정 2 4. 대

임베디드 OS 실습 환경 설정 절차(Windows XP Professional)

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

임베디드리눅스기초

/chroot/lib/ /chroot/etc/

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

Microsoft PowerPoint - chap11-포인터의활용.pptx

PowerPoint 프레젠테이션

Transcription:

4. Gcc 컴파일 환경 Make 유틸리티 ELF 실행 파일 네트워크 환경 순천향대학교 컴퓨터공학과 이 상 정 1 Gcc 컴파일 환경 순천향대학교 컴퓨터공학과 이 상 정 2

Gcc 컴파일러 소개 GNU 컴파일러 모음(GNU Compiler Collection, 줄여서 GCC) 리처드 스톨만이 1987년 GNU 프로젝트의 일환으로 개발된 컴파일 러 원래 C만을 지원했던 컴파일러로 이름도 "GNU C 컴파일러" 이 후 C++, Java, Fortran, Ada 등 여러 언어를 컴파일할 수 있게 되 면서 현재의 이름으로 변경 순천향대학교 컴퓨터공학과 이 상 정 3 C 컴파일 과정 (1).c.cc.C.s.o 전처리기 컴파일러 어셈블러 링커 (preprocessor) (compiler) (assembler) (linker).s.o a.out 위 과정은 gcc 명령어 호출로 실행됨 순천향대학교 컴퓨터공학과 이 상 정 4

C 컴파일 과정 (2) 전처리(preprocessing) #define, #include, #if와 같은 전처리 지시자 해석 전처리 작업을 위한 cpp 프로그램을 호출 컴파일(compile) 고급 언어 소스 프로그램을 입력 받아서 어셈블리 파일을 만듬 (.s) 일반적으로 어셈블리 파일은 저장하지 않고 바로 어셈블러를 호 출함 여기서 컴파일은 좁은 의미의 컴파일이며 넓은 의미의 컴파일은 모든 과정을 포함함 순천향대학교 컴퓨터공학과 이 상 정 5 C 컴파일 과정 (2) 어셈블(assemble) 어셈블리 파일을 입력 받아서 오브젝트 파일을 만듬(.o) 어셈블을 위한 gas 프로그램을 호출함 어셈블러는 플랫폼(CPU+OS)마다 다르며 해당 전용 어셈블러 호 출가능 링크(linking) 오브젝트 파일을 엮어서 실행 파일을 만듬 (a.out) 라이브러리 함수도 이 단계에서 사용함 링크를 위한 ld 프로그램을 호출 순천향대학교 컴퓨터공학과 이 상 정 6

Gcc 컴파일러 설치 $ sudo apt-get install gcc <- 호스트 컴파일러 설치 순천향대학교 컴퓨터공학과 이 상 정 7 hello.c 작성 및 컴파일 vi (또는 gedit)를 이용한 hello.c 파일 작성 $ gedit hello.c $ gcc o hello hello.c <= -o 옵션 생략 시에는 a.out 생성 순천향대학교 컴퓨터공학과 이 상 정 8

주요 옵션 모든 컴파일 과정을 한번에 처리하기 $ gcc o prog pa.c pb.c -o 옵션은 실행 파일 명을 지정함 이 옵션을 지정하지 않으면 a.out이 실행 파일임 필요한 소스 파일만 컴파일 하기 $ gcc c pa.c $ gcc c pb.c $ gcc o prog pa.o pb.o -c 옵션은 컴파일 하지만 링크는 하지 않음(.o) 파일 만 만듬 순천향대학교 컴퓨터공학과 이 상 정 9 Make 유틸리티 순천향대학교 컴퓨터공학과 이 상 정 10

Make 소개 Make 기능 및 목적 다수의 파일로 구성된 프로그램의 컴파일을 자동화해 주는 명령 어 생성 프로그램 프로그램 그룹 중에서 어느 부분이 새롭게 컴파일 되어야 하는 지를 자동적으로 판단해서 필요한 명령어를 이용해서 그들을 재 컴파일 소스 프로그램의 의존성 관계를 명시적으로 표현할 수 있음 Make 사용법 make [ -f <목록파일> ] -f 옵션은 목록파일 이름 을 지정해 주는 옵션 목록 파일 이름이 Makefile 이면 f 옵션 생략 복수개의 파일과 목적 파일 컴파일 순천향대학교 컴퓨터공학과 이 상 정 11 Makefile 목록 파일 작성 규칙 targetlist : dependencylist [TAB] commandlist targetlist dependencylist commandlist : 목표 파일 목록 : 의존 파일 목록 : 명령어 목록 목표(target), 의존관계(dependency), 명령(command)의 세 개로 이루어진 기분적인 규칙(rule)들이 계속적으로 나열 목표(target) 명령(command)이 수행된 결과 생성된 결과 파일 뒤에 의존파일(dependency)이 없는 경우에는 레이블(label) 기능 의존관계(dependency) 목표를 생성하기 위해 의존하는 파일들 명령(command) 의존관계에 해당하는 파일이 없거나 변경되었을 때 실행되는 명령 반드시 [TAB] 키로 시작 순천향대학교 컴퓨터공학과 이 상 정 12

Make 규칙 순서 예 master master.o pirami.o master.c pirami.h pirami.c pirami.h 규칙을 순서대로 조사하면서 상호 의존 트리를 작성 make는 leaf 노드에서 root 노드까지 진행하면서 부모 노드의 마지막 수정시간이 자식 노드의 수정시간보다 이전이거나 없으면 명령어 목 록대로 수행 순천향대학교 컴퓨터공학과 이 상 정 13 Makefile 예 test : main.oread.owrite.o [tab]gcc o test main.o read.o write.o main.o : io.h main.c [tab]gcc c main.c read.o : io.h read.c [tab]gcc c read.c write.o : io.h write.c [tab]gcc c write.c 순천향대학교 컴퓨터공학과 이 상 정 14

hello.c 컴파일 예 1 $vimakefile 순천향대학교 컴퓨터공학과 이 상 정 15 hello.c 컴파일 예 2 (1) hello.c 파일을 여러 개 다른 이름으로 복사 한 후 Makefile을 이용하여 컴파일 하기 순천향대학교 컴퓨터공학과 이 상 정 16

hello.c 컴파일 예 2 (2) $ gedit Makefile 순천향대학교 컴퓨터공학과 이 상 정 17 매크로(Macros) 매크로(Macros) 목록파일 내에서 특정한 문자열을 대표하는 코드를 정해서 반복적으 로 사용하는 것 동일한 것을 반복적으로 사용할 때 유용 매크로 정의 이름 = 내용들 이름은대문자로작성 예 token = replacementtext 매크로 치환 $(이름), ${이름} 예 $(token) 목록 파일 내에 모든 $(token)는 replacementtext로 치환됨 순천향대학교 컴퓨터공학과 이 상 정 18

매크로 사용 예 매크로를 사용하여 Makefile을 효과적으로 만들 수 있음 순천향대학교 컴퓨터공학과 이 상 정 19 레이블 사용 예 목표(타겟)로 레이블을 사용할 수 있음 레이블은 특별한 명령을 실행하기 위해 그 명령을 대표하는 이름 순천향대학교 컴퓨터공학과 이 상 정 20

미리 정의된 매크로들 Make 도구에서 자주 사용하는 매크로를 정해 놓았음 옵션 p로 정해져 있는 매크로를 알아 볼 수 있음 make p 대표적인 매크로 CC C 언어 컴파일러 CFLAGS C 언어 컴파일러의 옵션 TARGET 기본적으로 만들어지는 목적(target) 미리 정의된 매크로들은 다시 정의하여 사용할 수 있음 순천향대학교 컴퓨터공학과 이 상 정 21 hi 프로그램 예 (1) ~/hi 디렉토리에 4개 C 소스 프로그램을 생성한 후 컴파일 실행하는 예 io.h, hi.c, input.c output.c 순천향대학교 컴퓨터공학과 이 상 정 22

hi 프로그램 예 (2) io.h hi.c 순천향대학교 컴퓨터공학과 이 상 정 23 hi 프로그램 예 (3) input.c output.c 순천향대학교 컴퓨터공학과 이 상 정 24

hi 프로그램 예 (4) Makefile 순천향대학교 컴퓨터공학과 이 상 정 25 hi 프로그램 예 (5) 순천향대학교 컴퓨터공학과 이 상 정 26

내부 매크로 내부 매크로 심볼 의 미 $* 확장자가 없는 현재의 목표 파일 (target) $@ 현재의 목표 파일 (target) $< 현재의목표파일보다더최근에갱신된첫째 의존 파일 이름 $? 현재의목표파일보다더최근에갱신된모든 의존 파일 이름 $^ 디폴트 소스 파일들 (확장자가.c인 파일들) 내부 매크로 예

확장 규칙 파일의 확장자를 보고, 그에 따라 적절한 명령을 수행시키는 규칙 확장 규칙도 미리 정해진 규칙중의 하나임 예.c 파일은 컴파일되어서.o 파일이 되어야 하는 것 Make 도구에서 정의한 매크로 그대로 사용하기 매크로.SUFFIXS에 사용하는 확장자 등록.SUFFIXS:.c.o 새로운 확장 규칙 정의하기 의존성 파일 확장자와 목표 확장자에 점을 앞에 놓고 목표로 사용.c.o: $(CC) $(INC) $(CFLAGS) c $< 순천향대학교 컴퓨터학부 이 상 정 29 확장 규칙 예 OBJECTS = main.o read.o write.o SRCS = main.cread.cwrite.c CC = gcc CFLAGS = -g -c TARGET = test INC = -I../include # 없어도됨 # gcc 로 세팅 # gcc 의 옵션에 -g 추가 # 결과 파일을 test 라고 지정.c.o: co: $(CC) $(INC) $(CFLAGS) c $< $(TARGET) : $(OBJECTS) $(CC) -o $(TARGET) $(OBJECTS) clean : rm -rf $(OBJECTS) $(TARGET) core main.o : io.h main.c read.o : io.h read.c write.o: io.h write.c 순천향대학교 컴퓨터학부 이 상 정 30

확장 규칙 예 실행 $ make gcc I../include -g -c main.c -o main.o gcc I../include -g -c read.c -o read.o gcc I../include -g -c write.c -o write.o gcc -o test main.o read.o write.o 순천향대학교 컴퓨터학부 이 상 정 31 ELF 실행파일 순천향대학교 컴퓨터학부 이 상 정 32

ELF (Executable and Linkable Format) 순천향대학교 컴퓨터학부 이 상 정 33 ELF AT&T System V Unix시스템에서 개발 리눅스를 포함하여 거의 모든 UNIX계 열의 Object 파일 및 실행 파일 표준 이진 형식(binary format) 리눅스 커널도 2.2 버전으로 오면서 ELF 포멧을 지원하며, 커널의 이미지 도ELF 형태로만들수있음 ELF Header ELF 포멧임을 표시하는 magic number, 이미지의 형태(.o, exec,.so) 실행되는 CPU 정보, Little-endian인 지 Big-endian인지 표시하는 Byte 순 서와 같은 파일 내용의 기본적인 정보 포함 Executable and Linkable Format (ELF) (2) Program Header Table 실행 파일의 메모리 구조 내용을 표시 EFL에서는 segment로 알려진 영역을 section으로 정의 이 테이블에서는 어떠한 section이 존재하고 그 section의 정보가 있는 곳을 가지고 있음.text section 실제로 CPU에서 수행되는 이진 기계 코드가 저장되어 있는 영역.data section 프로그램이 실행 될 때, 이미 초기화 되어 있는 Data가 저장되어 있는 영역.bss section 프로그램이 실행 될 때, 초기화 되어 있지 않지만, static이나 전역으로 선언된 변수가 위치하는 곳.symtab 함수, 전역 변수, section의 이름 등이 저장된 영역 이 정보는 링커나 사람에게 필요한 정보이다. 순천향대학교 컴퓨터학부 이 상 정 34

Executable and Linkable Format (ELF) (3).rel.txt 동적 라이브러리의 경우 라이브러리의 코드가 여러 응용 프로그램의 메 모리 영역에 연결되는데, 이 때, 항상 같은 주소로 연결되지 않는다. 주 소가 바뀔 때 마다.text section에서 변경되어야 할 정보를 저장하고 있 음.rel.data 동적 라이브러리의 경우 라이브러리의 코드가 여러 응용 프로그 램의 메모리 영역에 연결되는데, 이 때, 항상 같은 주소로 연결되 지 않는다. 주소가 바뀔 때 마다.data section에서 변경되어야 할 정보를 저장하고 있음.debug section 디버거에서 필요한 정보를 가지고 있음 gcc 컴파일러에서 g 옵션을 주면 이 부분에 gdb와 같은 디버거에서 필 요로 하는 정보를 이 부분에 생성 순천향대학교 컴퓨터학부 이 상 정 35 위치 재설정의 개념 순천향대학교 컴퓨터학부 이 상 정 36

파일의 종류 file 명령을 이용해서 파일 내용, 종류를 조사 $ file hello $ file i hello <= i 옵션 : MIME 미디어 타입 문자열로 표시 순천향대학교 컴퓨터공학과 이 상 정 37 이진 파일 보기 od (octal dump) 명령 이진 파일을 8진수로 출력 $ od hello head -5 <-행앞첫컬럼은오프 $ od t x1z Ax hello head -5 <- 출력 형식을(-t) 16진수(x) 1 바이트 단위(1)로 출력하고 우측에 ASCII문자 표시를 추가(z) 오프셋의 기수를 16진수로 출력(-A x) 순천향대학교 컴퓨터공학과 이 상 정 38

ELF 파일 읽기 - 헤더 읽기 readelf 명령 사용 ELF 헤더 읽기 $ readelf h hello $ readelf h hello.o ELF 파일은 첫 4바이트에 다음과 같은 매직 넘버를 갖는다 0x7F 0x45 0x4c 0x46 " 177ELF"가 된다. ABI(Application Binary Interface) 애플리케이션이 지켜야 할 바이너리 레벨의 규약. 함수호출 시 스택 또는 레지스터 사용법, 심볼 name mangling 규칙 등 OS, 프로세서별로 규정 순천향대학교 컴퓨터공학과 이 상 정 39 순천향대학교 컴퓨터공학과 이 상 정 40

ELF 파일 읽기 주요 옵션 요약 $ readelf l hello <= 프로그램 헤더 읽기 $ readelf S hello <= 섹션 헤더 읽기 $ readelf s hello <= 심볼 테이블 읽기 순천향대학교 컴퓨터공학과 이 상 정 41 네트워크 환경 순천향대학교 컴퓨터공학과 이 상 정 42

VirtualBox 네트워크 하드웨어 VirtualBox는 가상 머신에 8개까지 가상 PCI 이더넷 카드를 제공 다음 형태의 네트워크 하드웨어를 가상화 AMD PCNet PCI II (Am79C970A); AMD PCNet FAST III (Am79C973, the default); Intel PRO/1000 MT Desktop (82540EM); Intel PRO/1000 T Server (82543GC); Intel PRO/1000 MT Server (82545EM); Paravirtualized network adapter (virtio-net). 순천향대학교 컴퓨터공학과 이 상 정 43 VirtualBox 네트워크 동작 모드 (1) 각 네트워크 카드는 다음 네트워크 동작 모드 중 하나로 설정 할수있음 연결되지 않음 (Not Attached) 이더넷케이블이연결되지않은동작모드 NAT (Network Address Translation) 디폴트 동작 모드 브리지 어댑터 (Bridged networking) 게스트시스템이서버로동작시사용 호스트 시스템의 네트워크 스택을 우회하여 설정된 카드로 직접 패킷들 을전송 내부 네트워크 (Internal networking) 가상 머신들 간에 통신하는 소프트웨어 기반 네트워크 호스트나 외부 세계와 연결할 수 없음 순천향대학교 컴퓨터공학과 이 상 정 44

VirtualBox 네트워크 동작 모드 (2) 호스트-전용 어댑터 (Host-only only networking) 호스트와 가상 머신들 간에 네트워크 연결 호스트시스템에물리적인네트워크인터페이스카드필요없음 일반 드라이버 (Generic networking) 사용자가 특정 드라이버 등을 선택하고 포함시켜 동작하는 모드 순천향대학교 컴퓨터공학과 이 상 정 45 VirtualBox 네트워크 동작 모드 설정 확인 - NAT 순천향대학교 컴퓨터공학과 이 상 정 46

네트워크 주소 변환, NAT (Network Address Translation) 복습 외부 인터넷 138.76.29.7 7 10.0.0.4 지역 네트워크 (e.g., 홈 네트워크) 10.0.0/24 10.0.0.1 10.0.0.2 10.0.0.3 지역 네트워크에서 전송되는 모든 데 이터그램은 하나의 같은 출발지 NAT IP 주소를 가짐: 138.76.29.7, 다른 출발지 포트번호 이 네트워크에서의 데이터그램은 출발지 또는 목적지 주소로 10.0.0/24 을 가짐 순천향대학교 컴퓨터공학과 47 ICMP (Internet Control Message Protocol) - 복습 ICMP는호스트와 라우터 사이 에서 네트워크 계층 정보를 통 신하기 위해 사용 오류 보고(error reporting) 목적지 네트워크에 도달하지 못 함 등 반향(echo) 요청/응답 (ping에서 사용) IP 상위 계층 ICMP 메시지는 IP 데이터그램의 페이로드로 전송 ICMP 메시지 타입과 코드필드와 에러가 발생 한 IP 데이터그램의 첫 8바이트 순천향대학교 컴퓨터공학과 48

ping 명령어 순천향대학교 컴퓨터공학과 이 상 정 49 ifconfig 명령어 순천향대학교 컴퓨터공학과 이 상 정 50

route 명령 인터넷 라우팅 테이블 참조 및 설정 Destination : 네트워크 또는 호스트의 목적지 Gateway : 게이트웨이 주소나 * 으로 표시 Genmask : 목적지의 netmask가 지정 Flags : U (route is up), H (target is a host), G (use gateway) Metric : 경로 설정의 기준값, 최소 경로를 선택하여 설정 Ref : 라우트에서 참조하는 값 (리눅스 커널에서는 사용하지 않음) Use : 라우트를 검사한 수 xf or xc 옵션을 이용하여 miss or hits를 표시 Iface : 라우트에서 패킷을 보낼 interface 순천향대학교 컴퓨터공학과 이 상 정 51 윈도우에서 네트워크 확인 ipconfig 순천향대학교 컴퓨터공학과 이 상 정 52

윈도우에서 네트워크 연결 확인 순천향대학교 컴퓨터공학과 이 상 정 53 네트워크 인터페이스 설정하기 ifconfig 명령으로 네트워크 인터페이스 작동 또는 중지 # ifconfig <네트워크 인터페이스 이름> <IP 주소> [옵션] up/down # ifconfig eth0 211.201.48.195 up <= 이더넷 카드에 IP 주소 부여 # ifconfig eth0 211.201.48.195 netmask 255.255.255.0 up <= 옵션으로 넷 마스크 지정 # ifconfig eth0 down <= eth0 작동 중지 순천향대학교 컴퓨터공학과 이 상 정 54

VirtualBox 네트워크 동작 모드 설정 - 브리지 어댑터 순천향대학교 컴퓨터공학과 이 상 정 55 브리지 어댑터 IP 주소 지정 (1) 고정 IP를 /etc/network/interfaces 에 등록하여 설정 예 게이트웨이 192.168.0.1 주소 192.168.0.12 실습실의 경우 DHCP 주소 할당 영역 참조 현재 /etc/network/interfaces 내용 순천향대학교 컴퓨터공학과 이 상 정 56

브리지 어댑터 IP 주소 지정 (2) /etc/network/interfaces 등록 NAT 설정 복구 시에는 interfaces 파일 원상 복구 순천향대학교 컴퓨터공학과 이 상 정 57 브리지 어댑터 네트워크 활성화 네트워크 재 활성화 $ sudo /etc/init.d/networking restart 순천향대학교 컴퓨터공학과 이 상 정 58

브리지 어댑터 IP 주소 확인 순천향대학교 컴퓨터공학과 이 상 정 59 브리지 어댑터 IP 테스트 순천향대학교 컴퓨터공학과 이 상 정 60

과제 1 다음의 fast.c와 slow.c 프로그램을 실행하여라. 각각 개별 Make 파일을 작성하여 컴파일, 실행하여 실행시간 측정 time 명령 사용하여 시간 측정 실행시간 차이가 나는 이유를 고찰 하나의 Makefile 로 통합하여 위 과정 반복 순천향대학교 컴퓨터공학과 이 상 정 61 fast.c #include <stdio.h> #define MAX_SIZE 5000 int src[max_size][max_size], dest[max_size][max_size]; int main() { int i,j ; for (i=0; i < MAX_SIZE; i++) for (j=0; j < MAX_SIZE; j++) dest[i][j] = src[i][j]; } printf("fast Program End n"); 순천향대학교 컴퓨터공학과 이 상 정 62

slow.c #include <stdio.h> #define MAX_SIZE 5000 int src[max_size][max_size], dest[max_size][max_size]; int main() { int i,j ; for (j=0; j < MAX_SIZE; j++) for (i=0; i < MAX_SIZE; i++) dest[i][j] = src[i][j]; } printf("slow Program End n"); 순천향대학교 컴퓨터공학과 이 상 정 63 과제 2 가상머신의 네트워크 동작 모드를 브리지 어댑터로 설정하고 외부와의 통신 예를 보여라 실습실의 경우 DHCP 서버와 포트 보안으로 외부 통신이 제한적 실습실이 아닌 곳에서 테스트 권장 순천향대학교 컴퓨터공학과 이 상 정 64