Abstract View of System Components

Similar documents
Abstract View of System Components

PowerPoint 프레젠테이션

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

PowerPoint 프레젠테이션

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

리눅스 프로세스 관리

PowerPoint 프레젠테이션

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

ISP and CodeVisionAVR C Compiler.hwp

DE1-SoC Board

강의10

Abstract View of System Components

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

/chroot/lib/ /chroot/etc/

Microsoft PowerPoint - comp_prac_081223_2.pptx

고급 프로그래밍 설계

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

01Àå

Microsoft PowerPoint - chap-02.pptx

슬라이드 1

untitled

슬라이드 제목 없음

Mango220 Android How to compile and Transfer image to Target

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint Presentation

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

슬라이드 1

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


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

LXR 설치 및 사용법.doc

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

PowerPoint 프레젠테이션

untitled

chap2

PowerPoint 프레젠테이션

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

MAX+plus II Getting Started - 무작정따라하기

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

제2장 리눅스 사용

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

PowerPoint 프레젠테이션

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

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

초보자를 위한 C++

MySQL-Ch10

PowerPoint 프레젠테이션

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

Microsoft PowerPoint EmbedSW-Host

PA for SWE2007

Secure Programming Lecture1 : Introduction

<31332DB9E9C6AEB7A2C7D8C5B72D3131C0E528BACEB7CF292E687770>

6주차.key

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

Apache Ivy

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Microsoft Word ARM_ver2_0a.docx

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

Orcad Capture 9.x

Microsoft PowerPoint - Install Guide[ ].ppt [호환 모드]

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

APOGEE Insight_KR_Base_3P11

Adobe Flash 취약점 분석 (CVE )

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

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap-02.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

What is Unix? A multi-task and multi-user Operating System Developed in 1969 at AT&T s Bell Labs by Ken Thompson (Unix) Dennis Ritchie (C) Douglas Mcl

슬라이드 1

Sena Technologies, Inc. HelloDevice Super 1.1.0

Microsoft PowerPoint - ARM 개발 환경.ppt

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

PRO1_04E [읽기 전용]

Microsoft PowerPoint APUE(Intro).ppt

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

Mango-AM335x LCD Type 커널 Module Parameter에서 변경하기

MPLAB C18 C

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Solaris Express Developer Edition

Code Generation in Rapid

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

1 Live CD(USB) 란? 1.1 Live CD(USB) 란? LiveCD(USB) 란 CD( 또는 USB) 를하드디스크로인식하여해당매체를기반으로동작하는운영체제를말한다. 즉 CD에설치된운영체제이다. 이는자신의 PC의하드디스크에설치된내용은 CD에그대로복사하였다고생각

PowerPoint 프레젠테이션

USER GUIDE

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

05Àå

본 강의에 들어가기 전

Transcription:

Operating System 3 주차 - About Linux - Real-Time Computing and Communications Lab. Hanyang University jtlim@rtcc.hanyang.ac.kr yschoi@rtcc.hanyang.ac.kr shpark@rtcc.hanyang.ac.kr

Contents Linux Shell Command Foreground & Background gcc compiler Makefile Quiz Kernel Source Download 과제1 설명 2 2

Linux Shell Command man Linux Programmer s Manual 보기 Usage : man [name] Ex> $ man ls $ man fork 다양한명령어와시스템콜등에대한자세한정보를찾아볼수있다. 3 3

Linux Shell Command ls 현대폴더의파일과폴더목록을출력 Option : -a ( 숨김파일도모두표시 ), -l ( 파일상세정보표시 ) Ex> $ ls $ ls a $ ls l $ ls al $ ls../ $ ls /usr 그밖의 Option 은 $ man ls 를통해서확인할수있다. 4 4

Linux Shell Command cd 디렉터리이동 Usage : cd (target directory) 1. 현재디렉터리기준, 다운로드디렉터리로이동 2. 상위디렉터리로이동 3. /usr/src/linux 디렉터리로이동 4. 현재디렉터리기준, kernel 디렉터리로이동. : 현재디렉터리,.. : 상위디렉터리의미 5 5

Linux Shell Command mkdir 디렉터리생성 Usage : mkdir [directory name] rmdir 디렉터리삭제 Usage : rmdir [directory name] touch 빈파일생성 Usage : touch [file name] rm 파일삭제 Usage : rm [fime name] rm rf [directory name] ( 해당폴더와하위파일까지모두지우는명령 ) 6 6

Linux Shell Command 7 7

Linux Shell Command cp 파일복사 Usage : cp [original filename] [target filename] mv 파일위치변경 Usage : mv [original filename] [target filename / target location] 8 8

Linux Shell Command find 파일검색 Usage : find [path] [option] [target filename] 등다양한포맷가능 자세한옵션은 $ man find를통해서확인하고사용한다. Ex> $ find [path] name [filename] 9 9

Linux Shell Command ps 프로세스목록출력 Usage : ps [options] 10 10

Linux Shell Command sudo 일반사용자가루트권한이부분적으로필요할때사용 Usage : sudo [option] [command] jobs 실행중인작업출력 11 11

Linux Shell Command top 시스템사용량확인 12 12

Linux Shell Command Top Table 필드정보 PID : 프로세스 ID (PID) USER : 프로세스를실행시킨사용자 ID PRI : 프로세스우선순위 (nice value + 20) NI : task 의 Nice value VIRT : 가상메모리사용량 RES : 현재 Page 가상주하고있는크기 (Resident Size) S : 프로세스상태 (S : sleeping, R : running, W : swapped out process, Z : zombies) %CPU : 프로세스가사용하는 CPU 사용률 %MEM : 프로세스가사용하는메모리사용률 COMMAND : 실행된명령어 13 13

Foreground & Background 프로세스를실행하는방법은크게 2 가지가있다. Foreground 기본적으로모든프로세스는 foreground 로실행된다. 키보드와연결되어있으며결과를직접적으로스크린혹은터미널창에출력한다. 꽤긴시간동안동작하는프로그램을실행시켰을경우에는그시간동안터미널을이용할수없게되므로, 곤란한경우가생기게된다. Background 키보드와연결되지않은상태로실행된다. 만약이프로세스가키보드입력을필요로할경우에는, 입력을기다린다. Background 로프로세스를실행하는것의장점은한프로세스가동작하고있는동안에도다른프로세스를실행시킬수있다는점이다. $./a.out & 를통해백그라운드로실행할수있다. 14 14

Foreground & Background Example> matrix source code 단순하게 100 x 100 행렬을 10^5 제곱하는함수. 참고로아래프로그램은 input_matrix 의초기화가생략되어있습니다. 15 15

Foreground & Background Example> Foreground & Background Foreground 실행 -> 프로세스가종료할때까지다른작업못함 Background 실행 -> 다른작업가능 ctrl + z 프로세스중지 -> foreground 프로세스중지 16 16

Foreground & Background Example> Foreground & Background command jobs 현재실행되고있는프로세스들의상태와, job 번호를알수있다. Background -> Foreground $ fg %job 번호 (ex> fg %2) 17 17

Foreground & Background Foreground -> Background $ bg %job 번호 foreground 에서 background 로바꾸려면, 먼저 foreground 로실행되고있는프로세스를 ctrl + z 로중지시킨후해야한다. 18 18

gcc compiler 먼저컴파일이란인간이이해할수있는형식언어 (C, C++ 등 ) 로작성된소스코드를 CPU 가이해할수있는기계어로번역하는과정 Linux 에서는기본적으로 gcc (GNU C Compiler) 을사용하여작성된코드를컴파일하고사용 gcc 에도다양한옵션이존재하며, 이번시간에서는아래의 3 가지경우만설명하고추가적으로강의를진행하면서필요한옵션들에대해서강의자료를통해보강할예정 ( 더궁금한사람은 $ man gcc) $ gcc [target file name] Ex > gcc test.c a.out 이라는실행파일이생김. $ gcc o [executable file name] [target file name] Ex> gcc o test test.c test 라는실행파일이생김. 여러개의 target file 을링킹할수도있음. $ gcc c [target file name] Ex> gcc c test.c test.o 라는 object 파일을만듭니다. 19 19

Make 프로젝트가커지면서소스파일의개수가많아지고, 각파일에대해서로다른컴파일러와어셈블러를사용하고, 각기다른옵션을적용해야한다면그것을일일이 gcc 명령으로처리하기에문제발생 따라서이런문제점들을해결하기위해 Make 라는유틸리티를사용 Make 는파일관련유틸리티로각파일간의종속관계를파악해기술파일 (Makefile) 에기술된대로컴파일혹은쉘명령을순차적으로내릴수있다. 프로젝트에 Make 를도입하면컴파일시간을절약할수있고, 프로그램의종속구조를파악하는데용이하다. 20 20

Makefile 사용법 기본구조 Target : Command 에의해서수행되어나온결과파일을지정, 일반적으로목적파일이나실행파일 Dependent files : 생성되는파일인대상 (Target) 과의존하는파일들의관계 Command : Dependent files 의내용이바뀌거나 Target file 이존재하지않을경우 Command 부분이실행됨 (Shell Command) 21 21

Makefile 사용법 간단한 Makefile 만들기 Shell 상에서실행파일만들기 Ex) test program main.c, read.c, write.c 로구성되고, 모두 io.h 을사용 read.c 는 defs.h 라는헤더파일사용 write.c 는 buffer.h 라는헤더파일을사용 $gcc -c main.c $gcc -c read.c $gcc -c write.c $gcc -o test main.o read.o write.o 22 22

Makefile 사용법 간단한 Makefile 만들기 Makefile 작성 test: main.o read.o write.o gcc -o test main.o read.o write.o main.o : io.h main.c gcc -c main.c read.o : io.h defs.h read.c gcc -c read.c write.o : io.h buffer.h write.c gcc -c write.c clean : rm rf *.o test 23 23

Makefile 사용법 변수사용 Objects = main.o read.o write.o test: $(Objects) gcc -o test $(Objects) main.o : io.h main.c gcc -c main.c 주석 : # 으로시작 변수 : 값을대입하기위해서는 = 을사용 $( 변수 ), ${ 변수 } 형식을통해변수사용 read.o : io.h defs.h read.c gcc -c read.c write.o : io.h buffer.h write.c gcc -c write.c clean : rm rf *.o test 24 24

Example 다음의간단한함수를앞에서배운예제를참고하여컴파일후실행시켜보겠습니다..h 함수구현 func.h Include func1.c func2.c main.c 25 25

Example 위의예제파일은다음과같이간단하게구성되어있습니다. func1.c func.h func2.c main.c 26 26

Example GCC 위의예제를 gcc 를이용해컴파일했습니다. 컴파일을위해명령어를많이쳐야함을확인할수있습니다. 27 27

Example Makefile 같은예제를 Makefile 을만들어컴파일하였습니다. $vim Makefile 을통해작성합니다. Makefile 을작성할때공백과위의제시된문법에주의해서작성해야합니다. 28 28

Example Makefile $make 명령어를입력하면, Makefile 에구현된 gcc 명령어가한번에입력되고똑같은결과를얻을수있습니다. 29 29

Quiz 아래의관계를갖고, 다음과같이출력되는프로그램을구현하고기술파일 (Makefile) 을이용해컴파일하시오. diary.h memo.c calendar.c main.c memo.o calendar.o main.o diary 30 30

Quiz 출력예시 Makefile 내에는 clean 부분이정의되어있어야한다. 31 31

Kernel Source Download Kernel Source Download http://www.kernel.org 로접속 32 32

Kernel Source Download Download kernel source Copy kernel URL link Kernel version : 3.18.27 (longterm) 33 33

Kernel Source Download Download kernel source wget 을통해 URL link 로 kernel source code 를다운로드 $ sudo wget [URL address] 34 34

Kernel Compile Required tools to build kernel build-essential : gcc 등프로그램개발을위한도구 Installation : $ sudo apt-get install build-essential libncurses5-dev : text 환경에서윈도우형태의 GUI 를표현해주는라이브러리, menuconfig 를위해필요 Installation : $ sudo apt-get install libncurses5-dev 35 35

Kernel Compile - 수정 Kernel configuration Compile menuconfig $ cd /usr/src/linux $ sudo make menuconfig 36 36

Kernel Compile - 수정 Kernel configuration 37 37

Kernel Compile Build Kernel image and modules Build kernel image Usage : $ sudo make Module compilation Usage : $ sudo make modules Module installation Usage : $ sudo make modules_install Kernel installation Usage : $ sudo make install 38 38

Kernel Compile Using multi-core for building kernel 자신의 CPU 의 core 개수확인 Usage : $ cat /proc/cpuinfo grep cores make 에 -j<n> option 추가 Usage : $ sudo make -j<n> n : 일반적으로 n = 자신의 cpu개수 + round(cpu개수 * 20%) Example : cpu cores = 2이면 n = 2 + round(0.4) = 2 39 39

Previous Linux Booting $ sudo vim /etc/default/grub 여기서 grub는 GNU 프로젝트의부트로더이다. 아래의그림처럼 # 을이용해주석처리한다. $ sudo update-grub $ sudo reboot 40 40

Previous Linux Booting booting 시다음과같이 version 을선택할수있게된다. 41 41

Kernel Version Check $ uname r 혹은 uname a 를통해현재커널버전을확인할수있다. 42 42

과제 1 (Kernel Build) Kernel Build Kernel.org 홈페이지에서 3.18.27 커널을다운로드하여 Make 하여확인하기, 커널이초기에부팅하였을경우 dmesg 를통해 Hello Kernel : 이름 을확인할수있도록수정하여 Make 하기. Cscope 와 Ctags 를활용, 수정해야될소스는커널버전 /Init/main.c 의 start_kernel 에서수정하면확인이가능하다. 43 43

과제 1 (Kernel Build) Example> 44 44

과제 1 (Kernel Build) Due : 2016/03/25 실습수업시간 보고서 표지 결과파일 과제내용요약 정상적으로빌드하는과정사진및설치한결과화면 ( uname r ) 과 cat < /var/log/dmesg > txt 로학생이름이정확하게출력되는화면을보고서에첨부 다음주실습시간때직접 Virtual Machine 혹은멀티부트가설치된 PC 에서직접설치하여결과검사 타 PC 에설치를위해 System.map, bzimage, Module 파일을 USB 에가지고올것. 45 45

과제 1 (Kernel Build) 문의사항 이름 : 임정택 Tel : 010-4780 - 9294 E-Mail : jtlim@rtcc.hanyang.ac.kr 이름 : 최윤식 Tel : 010-7970 - 0906 E-Mail : yschoi@rtcc.hanyang.ac.kr 이름 : 박성현 Tel : 010-6612 - 8957 E-Mail : shpark@rtcc.hanyang.ac.kr 실습관련질문시제목을아래의양식에맞춰서메일을보내주세요 ex> [ 운영체제 ] 학번 _ 이름 지연제출에대해서는감점이있을수있음. 46 46