Presentation is loading. Please wait.

Presentation is loading. Please wait.

1. Introduction 2015. 9.1 Kyu Ho Park CORE Lab. Embedded Software.

Similar presentations


Presentation on theme: "1. Introduction 2015. 9.1 Kyu Ho Park CORE Lab. Embedded Software."— Presentation transcript:

1 1. Introduction 2015. 9.1 Kyu Ho Park CORE Lab. Embedded Software

2 Computer Engineering Research Laboratory Course Description  The goal of this course is to understand Linux Kernel Programming and practice it on a CPU board implementing real device drivers. The topics will be Task management, Memory management, File Systems, Interrupt Handling, System call implementation, Module Programming, and Device drivers. The development environment will be implemented on VMware with Ubuntu Linux and a board computer.

3 Computer Engineering Research Laboratory Course Description Course TypeElective Course CodeEE516 Course NameKorean 임베디드소프트웨어 Course NameEnglishEmbedded Software InstructorsKyu Ho Park Lecture:Exp.:Credit(Homework)1: 5: 3 (4) Term : Fall Descriptions of Courses The goal of this course is to understand Linux Kernel Programming and practice it on a CPU board implementing real device drivers. The topics will be Task management, M emory management, File Systems, Interrupt Handling, System call implementation, Mo dule Programming, and Device drivers. The development environment will be impleme nted on VMware with Ubuntu Linux and a board computer. Course Website: http://core.kaist.ac.kr/~EE516/http://core.kaist.ac.kr/~EE516/

4 Computer Engineering Research Laboratory Topics to be covered [Lectures will be given on every Tuesday] 1. Introduction 2. Development Environment based on VMware 3. Linux Basic Commands, Shell and Kernel Compiling 4. Process, Thread and Task 5. Synchronization 6. Interrupt, Trap and System calls 7. Module Programming and Character Device Driver 8. Device Driver with Interrupt Handling 9. File System Management 10. Block Device Driver 11. Memory Management 12. Timing and Timer

5 Computer Engineering Research Laboratory TA  Kim Woo Joong, PhD Student(w.j.kim@kaist.ac.kr)  Joo Kyung Ro, PhD Student(eu8189@kaist.ac.kr)  Shin Dong Jae, PhD Student(djshin@kaist.ac.kr)  Kim Dong Jin, PhD Student(djkim@core.kaist.ac.kr)  Choi, Jong Hun, PhD Student(jhchoi@core.kaist.ac.kr)

6 Computer Engineering Research Laboratory Evaluation Evaluation: Projects ( 5 Projects will be assigned) : 50% Homework( 4 Homeworks) : 32% Quiz, Presentation, etc. : 18% Good Luck!

7 Computer Engineering Research Laboratory Projects 1.Setting Up Environment 2.Linux Fundamental 3.System Call and Synchronization 4.File System 5.Device Driver for Embedded H/W

8 Computer Engineering Research Laboratory System software  System software is a type of computer program that is designed to run a computer’s hardware and application programs. If we think of the computer system as a layered model, the system software is the interface between the hardware and user applications.program application programssoftware  The operating system (OS) is the best-known example of system software. The OS manages all the other programs in a computer.OS  Other examples of system software and what each does:  The BIOS (basic input/output system) gets the computer system started after you turn it on and manages the data flow between the operating system and attached devices such as the hard disk, video adapter, keyboard, mouse, and printer.BIOShard disk video adapterkeyboardmouseprinter  The boot program loads the operating system into the computer's main memory or random access memory (RAM).bootRAM  An assembler takes basic computer instructions and converts them into a pattern of bits that the computer's processor can use to perform its basic operations.assemblerinstructionsbitprocessor  A device driver controls a particular type of device that is attached to your computer, such as a keyboard or a mouse. The driver program converts the more general input/output instructions of the operating system to messages that the device type can understand.device driverdevice  According to some definitions, system software also includes system utilities, such as the disk defragmenter and System Restore, and development tools such as compilers and debuggers.utilities defragmenterSystem Restorecompilersdebuggers from WhatIS.com

9 Computer Engineering Research Laboratory

10 What we will learn  Linux basic commands,  Basic shell programming,  Linux kernel programming,  Process management,  Memory management,  File systems,  Linux module programming,  System calls, interrupt and trap,  Device driver implementation. Rerferences: 1.Understanding the Linux Kernel, 3 rd,Bovet $Cesati. 2.Linux Device Drivers, 3 rd, Corbet,Rubini & Kroah-Hartman.

11 Computer Engineering Research Laboratory Linux history  1991.8.26 Linux 0.0.1 Linus Benedict Torvalds  1991.10.5 The first official version Linux 0.0.2  1996.6.9 Linux-2.0.tar.gz  Mr. Torvalds developed based on the experience of using Minix( developed by Andrew Tanenbaum).

12 Computer Engineering Research Laboratory Linux (System Call Interface) Process Managenent ModuleFile system Memory Management Module Network Management Module Device Driver Initialization Module

13 Computer Engineering Research Laboratory Linux File System 13 (Buffer Cache) (Device Driver)

14 Computer Engineering Research Laboratory Linux components H/W dependent kernel codes Header files to build kernel Kernel initialization routines Memory management codes File system codes Main kernel codes Socket interface, TCP/IP

15 Computer Engineering Research Laboratory Linux Distribution Tree http://futurist.se/gldt *Debian---Ubuntu Linux *Slackware *Redhat Ubuntu (/ ʊˈ bu ː nt ʊ / uu-BOON-tuu; Zulu pronunciation: [ù ɓ únt ʼ ú]) [1][2] is a Nguni Bantu term roughly translating to "human kindness." [dubious – discuss] It is an idea from the Southern African region which means literally "human-ness," and is often translated as "humanity toward others," but is often used in a more philosophical sense to mean "the belief in a universal bond of sharing that connects all humanity". [3]/ ʊˈ bu ː nt ʊ /uu-BOON-tuu [ù ɓ únt ʼ ú] [1][2]NguniBantudubiousdiscussSouthern African [3]

16 Computer Engineering Research Laboratory http://futurist.se/gldt

17 Computer Engineering Research Laboratory debian

18 Computer Engineering Research Laboratory ubuntu

19 Computer Engineering Research Laboratory slackware

20 Computer Engineering Research Laboratory redhat

21 Computer Engineering Research Laboratory Ubuntu Linux  Ubuntu13.04 was released in April,2013.  Ubuntu13.10 was released in October,2013.  Generally Ubuntu is released in April and Oct.

22 Computer Engineering Research Laboratory System Calls and Shell  Operating system is the code that executes the system calls.  System Calls: The interface between the OS and its application programs  How are the commands executed? -shell: command interpreter 22

23 Computer Engineering Research Laboratory Users’ Programs Hardware Kernel System Call Interface (Kernel Functions) System Call

24 Kernel csh Other programs The X Window System bash Shell 1.shell: command interpreter 2. #date ; The shell creates a child process and runs the ‘date’ program as the child. When the child process is running, the shell waits for it to terminate. When the child finishes, the shell types the prompt again and tries to read the next input line.

25 Computer Engineering Research Laboratory Process Management Module  fork( ), exec( )  kill( ), exit( )  signal( ) (./linux/kernel and./linux/arch/x86/kernel)

26 Computer Engineering Research Laboratory File systems  open( ), read( ), write( ),close( )  create( )  lseek( )  chmod( ),rename( )

27 Computer Engineering Research Laboratory files  files:  regular file  directory  symbolic link  device file

28 OS Disk CPU Memory Basic Operations of a Computer

29

30 Disk vi testWelcom.c inode 69 6e 74 20 … Basic Operations of a Computer

31 testWelcom.ctestWelcom Basic Operations of a Computer

32 Disk vi testWelcom.c inode 69 6e 74 20 … testWelcom Basic Operations of a Computer

33 Disk vi testWelcom.c inode 69 6e 74 20 … testWelcom Basic Operations of a Computer $./testWelcom Stack Heap BSS Data Text SP PC Memory testWelcom process 0B 3GB p1 p2p3p4 readyQueue CPU p5 running Kernel Space 4GB 16EB 128TB 0B

34 Computer Engineering Research Laboratory Programming Environment


Download ppt "1. Introduction 2015. 9.1 Kyu Ho Park CORE Lab. Embedded Software."

Similar presentations


Ads by Google