Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University.

Slides:



Advertisements
Similar presentations
1 Introduction to UNIX Ke Liu
Advertisements

Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University.
©Colin Jamison 2004 Introduction to Linux Colin Jamison.
Basic linux shell commands and Makefiles. Log on to engsoft.rutgers.edu Open SSH Secure Shell – Quick Connect Hostname: engsoft.rutgers.edu Username/password:
CS 141 Labs are mandatory. Attendance will be taken in each lab. Make account on moodle. Projects will be submitted via moodle.
HOMEPAGE & SEARCH ENGINE  2. About Cloud computing  3. Application Introduction - Nutch - Google App Engine  4. Presentation Contents.
Term Project Detail Design 2 Traffic Generator So Jung LEE Dpnm Lab. CSE POSTECH
SAP Tuning 실무 교육
AVR CPU Core & 8 bit AVR Instruction Set
Pintos overview Operating System Project kit 금오공과대학교.
Bootloader 부트로더.
SOAP 실전예제 Internet Computing KUT Youn-Hee Han.
Codec,battery,powermanager 커널 드라이버
Computer Architecture Project #2 Cache Simulator
Fall 2011 Nassau Community College ITE153 – Operating Systems 1 Session 4 More Hands-on Commands.
HDFS -Hadoop Overview 유현정. Data Replication HDFS’s blocks in a file except the last block are the same size. The block size and replication.
Memory & Storage Architecture Seoul National University Computer Architecture Byoungjun Kim School of Computer Science and.
1 Linux Command. Advanced Compiler Laboratory2 Simple linux cmds ls List information about FILEs, by default the current directory. pwd Print Working.
Lab 3. 프로세스 생성과 종료 (Unix/Linux) One, Two 출력하는 onetwo.c 코딩, 컴파일, 실행
Hanyang Univ.  강의 목표 ◦ 임베디드 개발 환경의 이해  강의 내용 ◦ 교차 컴파일 환경 구축 및 부트로더 실습 Hanyang Univ.
Linux/UNIX Programming APUE (Introduction) 문양세 강원대학교 IT 대학 컴퓨터과학전공.
Lecture 2 Linux Basic Commands,Shell and Make September 8, 2015 Kyu Ho Park.
PROGRAMMING PROJECT POLICIES AND UNIX INTRO Sal LaMarca CSCI 1302, Fall 2009.
Introduction to UNIX Road Map: 1. UNIX Structure 2. Components of UNIX 3. Process Structure 4. Shell & Utility Programs 5. Using Files & Directories 6.
Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University.
Chapter 2. UNP configuration, MAKEFILE, Echo program 백 일 우
1 Router 동작 mode (1/2) User Mode Router 동작 상태, Interface 의 상태, 현황등을 check 할 수 있는 command 사용 가능 Router Configuration 의 변경은 불가 Privileged Mode Router 의 Full.
1 Chapter 37 Files Transfer Protocol (FTP) Programs.
Kernel Programming Task Management ( 월 ) 이 병 희
Basic of UNIX For fresh members of SPARCS
Manage Directories and Files in Linux Part 2. 2 Identify File Types in the Linux System The file types in Linux referred to as normal files and directories.
Linux Commands C151 Multi-User Operating Systems.
영상 획득 영상 저장 카메라 파라메터 커스텀 이미지
Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 실 습실 습 7 WEEK 1 – 구조체 (STRUCTURES)
More on Using onyx 8/28/13. Program 1 Due a week from today. See website for details.
Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University.
SPARCS 10 Rohjoon Myung 1. 코드를 다운로드 한다.( 보통 압축파일 ) 2. 압축을 푼다. 3. Configuratoin 을 한다. 4. Compile 을 한다. 5. 설치를 한다.
Chapter 13. Getting started  Simple CLI 를 실행 Click!!
2 장 프로세스 제 03 강 : 프로세스. Multi-user System OS boot 탐색기 hwp OS kernel a.out game.
솔라리스 10 Chapter 23 점프 스타트 서버 관리 Solaris1. 점프 스타트 서버 구성.
방명록 제작. 목차  기본 레이아웃  DB 구조  방명록 구조  코드 설명  화면 설명.
1 Data Structures Introduction Homepage : Mail :
10 DAX Calculation For Tabular or PowerPivot Model
Linux Tutorial Lesson Two *Getting Help in Linux *Data movement and manipulation *Relative and Absolute path *Processes Note: see chapter 1,2,3 from Linux.
Analog IC design 7주차 Dec.4th Multimedia Lab..
Learning Unix/Linux Based on slides from: Eric Bishop.
May.28 1 Multimedia Lab  만나는 곳의 Junction 이 제대로 생겼는지 확인할 것.
LINUX System : Lecture 5 text editor, compilation (make), … Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University.
데이터 베이스 설계 및 실습 #11 - JSP 예제.
C 프로그래밍 개발 도구. 컴파일러 gnu c compiler 컴파일 gcc sample.c 실행 a.out 실행 파일 지정 컴파일 gcc –o sample sample.c 실행 sample.
NAM S.B MDLAB. Electronic Engineering, KNU 1 Beaglebone Black System.
Tomasulo algorithm 윤진훈.
Lecture 2 Linux Basic Commands,Shell and Make
UNIX To do work for the class, you will be using the Unix operating system. Once connected to the system, you will be presented with a login screen. Once.
Chapter 11 Command-Line Master Class
Linux Commands Help HANDS ON TRAINING Author: Muhammad Laique
Some Linux Commands.
C151 Multi-User Operating Systems
Useful Linux Commands.
Introduction to UNIX.
CS 60 Discussion Review.
Operating Systems Lecture 5.
Introduction to Linux/UNIX
ברוכים הבאים למת"ם מבוא לתכנות מערכות
Lab 00 Discussion Linux Basics
Module 6 Working with Files and Directories
Lab 6: Process Management
Lab 2: Terminal Basics.
Presentation transcript:

Real-Time Computing and Communications Lab., Hanyang University Real-Time Computing and Communications Lab., Hanyang University Operating System 3 주차 - About Linux - Real-Time Computing and Communications Lab. Hanyang University

2 Real-Time Computing and Communications Lab., Hanyang University 2 Real-Time Computing and Communications Lab., Hanyang University Contents  Linux Shell Command  Foreground & Background  gcc compiler  Makefile  Quiz  과제 1 설명  Kernel Source Download

3 Real-Time Computing and Communications Lab., Hanyang University 3 Real-Time Computing and Communications Lab., Hanyang University Linux Shell Command  man – Linux Programmer’s Manual 보기  Usage : man [name]  Ex> $ man ls $ man fork  다양한 명령어와 시스템 콜 등에 대한 자세한 정보를 찾아 볼 수 있다.

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

5 Real-Time Computing and Communications Lab., Hanyang University 5 Real-Time Computing and Communications Lab., Hanyang University Linux Shell Command  cd – 디렉터리 이동  Usage : cd (target directory)  1. 현재 디렉터리기준, 다운로드 디렉터리로 이동  2. 상위 디렉터리로 이동  3. /usr/src/linux 디렉터리로 이동  4. 현재 디렉터리기준, kernel 디렉터리로 이동 . : 현재디렉터리,.. : 상위 디렉터리 의미

6 Real-Time Computing and Communications Lab., Hanyang University 6 Real-Time Computing and Communications Lab., Hanyang University 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] ( 해당 폴더와 하위 파일까지 모두 지우는 명령 )

7 Real-Time Computing and Communications Lab., Hanyang University 7 Real-Time Computing and Communications Lab., Hanyang University Linux Shell Command

8 Real-Time Computing and Communications Lab., Hanyang University 8 Real-Time Computing and Communications Lab., Hanyang University Linux Shell Command  cp – 파일복사  Usage : cp [original filename] [target filename]  mv – 파일위치 변경  Usage : mv [original filename] [target filename / target location]

9 Real-Time Computing and Communications Lab., Hanyang University 9 Real-Time Computing and Communications Lab., Hanyang University Linux Shell Command  find – 파일검색  Usage : find [path] [option] [target filename] … 등 다양한 포맷 가능  자세한 옵션은 $ man find 를 통해서 확인하고 사용한다.  Ex> $ find [path] –name [filename]

10 Real-Time Computing and Communications Lab., Hanyang University 10 Real-Time Computing and Communications Lab., Hanyang University Linux Shell Command  ps – 프로세스 목록 출력  Usage : ps [options]

11 Real-Time Computing and Communications Lab., Hanyang University 11 Real-Time Computing and Communications Lab., Hanyang University Linux Shell Command  sudo – 일반 사용자가 루트 권한이 부분적으로 필요할 때 사용  Usage : sudo [option] [command]  jobs – 실행중인 작업 출력

12 Real-Time Computing and Communications Lab., Hanyang University 12 Real-Time Computing and Communications Lab., Hanyang University Linux Shell Command  top – 시스템 사용량 확인

13 Real-Time Computing and Communications Lab., Hanyang University 13 Real-Time Computing and Communications Lab., Hanyang University 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 : 실행된 명령어

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

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

16 Real-Time Computing and Communications Lab., Hanyang University 16 Real-Time Computing and Communications Lab., Hanyang University Foreground & Background  Example> Foreground & Background  Foreground 실행 -> 프로세스가 종료할 때 까지 다른 작업 못함  Background 실행 -> 다른 작업 가능  “ctrl + z” 프로세스 중지 -> foreground 프로세스 중지

17 Real-Time Computing and Communications Lab., Hanyang University 17 Real-Time Computing and Communications Lab., Hanyang University Foreground & Background  Example> Foreground & Background  command “jobs” 현재 실행되고 있는 프로세스들의 상태와, job 번호를 알 수 있다.  Background -> Foreground $ fg %job 번호 (ex> fg %2)

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

19 Real-Time Computing and Communications Lab., Hanyang University 19 Real-Time Computing and Communications Lab., Hanyang University 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 파일을 만듭니다.

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

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

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

23 Real-Time Computing and Communications Lab., Hanyang University 23 Real-Time Computing and Communications Lab., Hanyang University 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

24 Real-Time Computing and Communications Lab., Hanyang University 24 Real-Time Computing and Communications Lab., Hanyang University 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

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

26 Real-Time Computing and Communications Lab., Hanyang University 26 Real-Time Computing and Communications Lab., Hanyang University Example  위의 예제 파일은 다음과 같이 간단하게 구성되어 있습니 다. func.h func1.c func2.c main.c

27 Real-Time Computing and Communications Lab., Hanyang University 27 Real-Time Computing and Communications Lab., Hanyang University Example GCC  위의 예제를 gcc 를 이용해 컴파일 했습니다.  컴파일을 위해 명령어를 많이 쳐야 함을 확인할 수 있습니다.

28 Real-Time Computing and Communications Lab., Hanyang University 28 Real-Time Computing and Communications Lab., Hanyang University Example Makefile  같은 예제를 Makefile 을 만들어 컴파일하였습니다.  $vim Makefile 을 통해 작성합니다.  Makefile 을 작성할 때 공백과 위의 제시된 문법에 주의해서 작성해 야합니다.

29 Real-Time Computing and Communications Lab., Hanyang University 29 Real-Time Computing and Communications Lab., Hanyang University Example Makefile  $make 명령어를 입력하면, Makefile 에 구현된 gcc 명령어 가 한번에 입력되고 똑같은 결과를 얻을 수 있습니다.

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

31 Real-Time Computing and Communications Lab., Hanyang University 31 Real-Time Computing and Communications Lab., Hanyang University Quiz  출력 예시  Makefile 내에는 clean 부분이 정의되어 있어야 한다.

32 Real-Time Computing and Communications Lab., Hanyang University 32 Real-Time Computing and Communications Lab., Hanyang University 과제 1 (Makefile Implementation)  Sorting Program Implementation  Input.txt file 의 내용을 읽어 3 개의 sorting algorithms(bubble, insertion, selection) 을 통해 정렬하는 Program 을 구현한다.  2 가지의 용도 (I/O, Sorting) 에 따라 각각 code 를 구현한 뒤, Makefile 을 통해 각 파 일들을 Linking 시켜 sorting program 을 구현 해야 함  global.h : 기본적인 헤더파일 include 와 input.txt 의 자료를 저장할 수 있는 Integer array buffer 정의  File I/O (global.h, io.h, io.c) io.h : read_file, write_file 함수의 프로토타입을 정의 io.c : input.txt 의 내용을 읽어 Integer array 로 저장하는 read_file 함수와 정렬된 내용 을 output.txt file 에 쓰는 write_file 함수의 동작을 구현  Sorting : 3 가지의 sorting algorithms 을 구현 (global.h, sort.h, sort.c) sort.h : bubbleSort, insertionSort, selectionSort 함수의 프로토타입을 정의 sort.c : Integer array 에 대한 3 가지의 sorting algorithms (bubble sort, insertion sort, selection sort) 의 동작을 구현  Main : io.c 의 함수를 이용해 파일 내용을 읽고, option 에 따라 sort.c 에 구현된 정 렬을 수행한 뒤 output.txt 파일에 정렬된 결과를 출력 (global.h, io.h, sort.h, main.c)

33 Real-Time Computing and Communications Lab., Hanyang University 33 Real-Time Computing and Communications Lab., Hanyang University 과제 1 (Makefile Implementation)  전체 Linking 관계 global.h io.h sort.h main.c io.c sort.c Include I/O 관련 함수 구현 Include Sorting 함수 구현 main.o io.o sort.o sorting

34 Real-Time Computing and Communications Lab., Hanyang University 34 Real-Time Computing and Communications Lab., Hanyang University 과제 1 (Makefile Implementation)  입출력 화면  Input.txt  output.txt

35 Real-Time Computing and Communications Lab., Hanyang University 35 Real-Time Computing and Communications Lab., Hanyang University 과제 1 (Makefile Implementation)  Due : 2015/03/27 실습 수업시간  제출물  앞에 슬라이드의 전체 Linking 관계에 표시 된 각 파일 소스 보고서 맨 뒤에 첨부  보고서 표지 Makefile 사용법에 대한 요약 정리 과제 내용 요약 구현한 Makefile 설명 결과 및 분석 ( 결과 화면 첨부할 것 ) 후기 ( 느낀 점, 조교에게 바라는 점 )

36 Real-Time Computing and Communications Lab., Hanyang University 36 Real-Time Computing and Communications Lab., Hanyang University 과제 1 (Makefile Implementation)  문의사항  이름 : 김연준   이름 : 하태욱   실습관련 질문 시 제목을 아래의 양식에 맞춰서 메일을 보내주세요. ex> [ 운영체제 ] 학번 _ 이름  지연제출에 대해서는 감점이 있을 수 있음.

37 Real-Time Computing and Communications Lab., Hanyang University 37 Real-Time Computing and Communications Lab., Hanyang University Kernel Source Download  Kernel Source Download  로 접속

38 Real-Time Computing and Communications Lab., Hanyang University 38 Real-Time Computing and Communications Lab., Hanyang University Kernel Source Download  Download kernel source  Copy kernel URL link  Kernel version : (longterm)

39 Real-Time Computing and Communications Lab., Hanyang University 39 Real-Time Computing and Communications Lab., Hanyang University Kernel Source Download  Download kernel source  “wget” 을 통해 URL link 로 kernel source code 를 다운로드 $ sudo wget [URL address]