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

Slides:



Advertisements
Similar presentations
COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
Advertisements

Operating System.
Slide 2-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 2 Using the Operating System 2.
The Operating System. What is an Operating System? The program that is loaded first and manages the hardware resources like main memory, backing storage.
Enrique Blanco García © 2004 Introduction to the UNIX environment Enrique Blanco Cover from the book Modern operating systems. A. Tanenbaum.
Operating Systems High Level View Chapter 1,2. Who is the User? End Users Application Programmers System Programmers Administrators.
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
Figure 2.8 Compiler phases Compiling. Figure 2.9 Object module Linking.
1 CS 333 Introduction to Operating Systems Class 2 – OS-Related Hardware & Software The Process Concept Jonathan Walpole Computer Science Portland State.
Process Management. External View of the OS Hardware fork() CreateProcess() CreateThread() close() CloseHandle() sleep() semctl() signal() SetWaitableTimer()
Advanced OS Chapter 3p2 Sections 3.4 / 3.5. Interrupts These enable software to respond to signals from hardware. The set of instructions to be executed.
Systems Programming Course Gustavo Rodriguez-Rivera.
1 Introduction Chapter What is an operating system 1.2 History of operating systems 1.3 The operating system zoo 1.4 Computer hardware review 1.5.
Introduction Operating Systems’ Concepts and Structure Lecture 1 ~ Spring, 2008 ~ Spring, 2008TUCN. Operating Systems. Lecture 1.
Build an Operating System
Systems Software Operating Systems.
I/O Tanenbaum, ch. 5 p. 329 – 427 Silberschatz, ch. 13 p
Unix Presentation. What is an Operating System An operating system (OS) is a program that allows you to interact with the computer -- all of the software.
The University of Akron Summit College Business Technology Department Computer Information Systems 2440: 145 Operating Systems Introduction to UNIX/Linux.
Computer Organization Review and OS Introduction CS550 Operating Systems.
Operating Systems CS3502 Fall 2014 Dr. Jose M. Garrido
Chapter 2 – Software Part A. Definition Computer is made up of two components Hardware Physical components Software Instructions for the computer Two.
WEEK 1 COURSE INTRODUCTION INTRODUCTION TO OPERATING SYSTEMS OPERATING SYSTEM STRUCTURES Operating Systems CS3013 / CS502.
ICOM Noack Operating Systems - Administrivia Prontuario - Please time-share and ask questions Info is in my homepage amadeus/~noack/ Make bookmark.
Introduction to Operating Systems Chapter 1. cs431 -cotter2 Lecture Objectives Understand the relationship between computing hardware, operating system,
Chapter 1 Introduction 1.1 What is an operating system
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
CS 390 Unix Programming Summer Unix Programming - CS 3902 Course Details Online Information Please check.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Chapter 1 : The Linux System Part 1 Lecture 1 10/21/
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
30 October Agenda for Today Introduction and purpose of the course Introduction and purpose of the course Organization of a computer system Organization.
2003 Dominic Swayne1 Microsoft Disk Operating System and PC DOS CS-550-1: Operating Systems Fall 2003 Dominic Swayne.
LINUX System : Lecture 7 Bong-Soo Sohn Lecture notes acknowledgement : The design of UNIX Operating System.
C o n f i d e n t i a l 1 Course: BCA Semester: III Subject Code : BC 0042 Subject Name: Operating Systems Unit number : 1 Unit Title: Overview of Operating.
CS2204: Introduction to Unix January 19 th, 2004 Class Meeting 1 * Notes adapted by Christian Allgood from previous work by other members of the CS faculty.
UNIX Unit 1- Architecture of Unix - By Pratima.
1 Lecture 1: Computer System Structures We go over the aspects of computer architecture relevant to OS design  overview  input and output (I/O) organization.
Chapter 1 Introduction  What is an operating system  History of operating systems  The operating system zoo  Computer hardware review  Operating system.
CEG 2400 FALL 2012 Linux/UNIX Network Operating Systems.
WHY AN OPERATING SYSTEM (OS) OS interacts with hardware and manages programs. Programs not expected to know which hardware they will run on. Must be possible.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
Introduction to Operating Systems Concepts
Chapter 5 Operating Systems.
OPERATING SYSTEM CONCEPT AND PRACTISE
EE516: Embedded Software Project 1
Bare metal OS project CSSE 332 Operating Systems
Operating System & Application Software
Operating System Review
Chapter 1: A Tour of Computer Systems
Chapter 4 – Introduction to Operating System Concepts
CS 3305 System Calls Lecture 7.
KERNEL ARCHITECTURE.
What is an Operating System?
IB Computer Science Topic 2.1.1
Computer Software CS 107 Lecture 2 September 1, :53 PM.
Operating System Review
OPERATING SYSTEMS DESIGN AND IMPLEMENTATION Third Edition ANDREW S
MODERN OPERATING SYSTEMS Third Edition ANDREW S
SAPC Hardware Pentium CPU (or 486) 4M usable memory
Mid Term review CSC345.
Lecture Topics: 11/1 General Operating System Concepts Processes
Lecture 3: Basic OS Concepts
Linux Architecture Overview.
Operating Systems Lecture 1.
LINUX System : Lecture 7 Lecture notes acknowledgement : The design of UNIX Operating System.
Introduction to Computer Systems
Implementing Processes, Threads, and Resources
Chapter 1: Introduction CSS503 Systems Programming
A very basic introduction
Presentation transcript:

1. Introduction Kyu Ho Park CORE Lab. Embedded Software

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.

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:

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

Computer Engineering Research Laboratory TA  Kim Woo Joong, PhD  Joo Kyung Ro, PhD  Shin Dong Jae, PhD  Kim Dong Jin, PhD  Choi, Jong Hun, PhD

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

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

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

Computer Engineering Research Laboratory

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.

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

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

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

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

Computer Engineering Research Laboratory Linux Distribution Tree *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]

Computer Engineering Research Laboratory

Computer Engineering Research Laboratory debian

Computer Engineering Research Laboratory ubuntu

Computer Engineering Research Laboratory slackware

Computer Engineering Research Laboratory redhat

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.

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

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

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.

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

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

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

OS Disk CPU Memory Basic Operations of a Computer

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

testWelcom.ctestWelcom Basic Operations of a Computer

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

Disk vi testWelcom.c inode 69 6e … 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

Computer Engineering Research Laboratory Programming Environment