Linux for Embedded and Real-Time Systems



Similar documents
Eddy Integrated Development Environment, LemonIDE for Embedded Software System Development

Red Hat Linux Internals

RTAI. Antonio Barbalace (modified by M.Moro 2011) RTAI

PARALLELS SERVER 4 BARE METAL README

Chapter 1: Introduction. What is an Operating System?

LSN 10 Linux Overview

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Comparison between scheduling algorithms in RTLinux and VxWorks

Components of a Computer System

Real-Time Systems Prof. Dr. Rajib Mall Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Mobile Operating Systems. Week I

Unit 10 : An Introduction to Linux OS

PARALLELS SERVER BARE METAL 5.0 README

Performance Comparison of RTOS

Linux A multi-purpose executive support for civil avionics applications?

OPERATING SYSTEM SERVICES

CGI-based applications for distributed embedded systems for monitoring temperature and humidity

Real-Time Operating Systems for MPSoCs

4.1 Introduction 4.2 Explain the purpose of an operating system Describe characteristics of modern operating systems Control Hardware Access

Embedded Systems. 6. Real-Time Operating Systems

CGL Architecture Specification

Example of Standard API

POSIX. RTOSes Part I. POSIX Versions. POSIX Versions (2)

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

Computer and Set of Robots

Chapter 2. Basic Concepts Linux Workstation. 2.1 Types of Hosts

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

STLinux Software development environment

evm Virtualization Platform for Windows

The shortest path to cellular communications: Cellular Development Platform

How To Understand The History Of An Operating System

Chapter 3. Operating Systems

Computers: Tools for an Information Age

Embedded Linux development training 4 days session

Technology in Action. Alan Evans Kendall Martin Mary Anne Poatsy. Eleventh Edition. Copyright 2015 Pearson Education, Inc.

Network Scanning: A New Feature for Digital Copiers

Programación de Sistemas Empotrados y Móviles (PSEM)

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Contents. Chapter 1. Introduction

Introduction. What is an Operating System?

3 - Introduction to Operating Systems

Embedded & Real-time Operating Systems

Chapter 2 System Structures

Experience with the integration of distribution middleware into partitioned systems

Operating Systems 4 th Class

Sun xvm VirtualBox Product Overview

Computer Automation Techniques. Arthur Carroll

Operating Systems OBJECTIVES 7.1 DEFINITION. Chapter 7. Note:

CS420: Operating Systems OS Services & System Calls

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software

Introduction to Operating Systems. Perspective of the Computer. System Software. Indiana University Chen Yu

ERIKA Enterprise pre-built Virtual Machine

Real-Time Operating Systems.

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

Introduction to Linux for RISC OS Users. Matthew Cook

Solution Guide Parallels Virtualization for Linux

Chapter 1 Basic Introduction to Computers. Discovering Computers Your Interactive Guide to the Digital World

RPC and TI-RPC Test Suite Test Plan Document

DEVICE DRIVERS AND TERRUPTS SERVICE MECHANISM Lesson-14: Device types, Physical and Virtual device functions

Citrix XenApp-7.6 Administration Training. Course

Master of Engineering Thesis. Evaluation and Implementation of the RTOS ecos

Medical Device Design: Shorten Prototype and Deployment Time with NI Tools. NI Technical Symposium 2008

Multiprogramming. IT 3123 Hardware and Software Concepts. Program Dispatching. Multiprogramming. Program Dispatching. Program Dispatching

7a. System-on-chip design and prototyping platforms

System Software Integration: An Expansive View. Overview

Open Source Project from China. Northeast Asia Open Source SoftwareCompetition Nov. 2012

Cross-Platform and Embedded Systems Development

Embedded System Deployment and Management

Virtualization: an old concept in a new approach

Java and Real Time Storage Applications

HTTP-FUSE PS3 Linux: an internet boot framework with kboot

Wireless Microcontrollers for Environment Management, Asset Tracking and Consumer. October 2009

1/5/2013. Technology in Action

EXPLORING LINUX KERNEL: THE EASY WAY!

NI Real-Time Hypervisor for Windows

Operating Systems: Basic Concepts and History

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Virtualization and Other Tricks.

ontune SPA - Server Performance Monitor and Analysis Tool

Operating System Tutorial

OS Concepts and structure

elan Technology White Paper Why Linux?

IOTIVITY AND EMBEDDED LINUX SUPPORT. Kishen Maloor Intel Open Source Technology Center

VoIP support on Qtopia. Vladimir Minenko, Ph.D.

Node.JS Appliances on Embedded Linux Devices. Mehmet Fatih Karagöz & Cevahir Turgut

Operating Systems Overview As we have learned in working model of a computer we require a software system to control all the equipment that are

CAMAvision v18.5.x System Specification Guide 7/23/2014

THE RTOS AS THE ENGINE POWERING THE INTERNET OF THINGS

Embedded PC The modular Industrial PC for mid-range control. Embedded PC 1

System Structures. Services Interface Structure

Chapter 13 Embedded Operating Systems

Chapter 12. Development Tools for Microcontroller Applications

Easing embedded Linux software development for SBCs

CS3600 SYSTEMS AND NETWORKS

Availability Digest. Raima s High-Availability Embedded Database December 2011

REAL TIME OPERATING SYSTEM PROGRAMMING-II: II: Windows CE, OSEK and Real time Linux. Lesson-12: Real Time Linux

Cloud Computing with Red Hat Solutions. Sivaram Shunmugam Red Hat Asia Pacific Pte Ltd.

Embedded Operating Systems in a Point of Sale Environment. White Paper

Operating System Software

MARTe Framework. Middleware for RT Control Development

Transcription:

Linux for Embedded and Real-Time Systems Kaiserslautern 9 June 2005 Samir Amiry (samir.amiry@iese.fhg.de) Fraunhofer IESE Institut Experimentelles Software Engineering

Outlines Introduction. Linux: the OS. Embedded and real-time systems. RTOS. Linux and embedded systems. Linux and real-time systems. RTAI. RTAI characteristics. Examples. Demo: the RTLOpen prototype. Conclusion. Page 2

Introduction Context of the work: RTLOpen. What is RTLOpen? Is an effort to build: flexible, performant, future-proof for SMEs in mechanical engineering. Domain characteristics are: real-time requirements, complex calculations, interoperability, safety, quality, reliability and longevity. Expected results: Freely available reference architecture based on one or more variants of embedded or real-time Linux kernels, interface specifications, communication and exchanging formats, as well as development methodologies, techniques and tools. Partners: Hofmann Maschinen (balancing machines, test equipment for rims, tires and wheels as well as tire mounting systems). Berghof (CANtrol Steuerungen und Dialog-PC Design-In Projekte mit CANtrol, Testsysteme zur Qualitätssicherung, IT Lösungen + Bahntechnik). Vision Tools (Industrial Image Analysis Systems (Quality control, Character recognition, Robotics) for car manufacters and their suppliers). Why did we choose Linux? Page 3

Introduction (Cont.) Because of many facts (cheap, open, big supporting community in Internet), Linux gains a big popularity; it is used in: Jetfighters, Phones, Satellite receivers, desktops, etc. Today, Linux shows its capability to be used in embedded/real-time systems. The open source community is continuously providing solutions for making Linux used in embedded/real-time systems: New kernel architecture (2.6), RTAI, etc. Linux benefits: Open source. Free (we can put an explanation of what does free means). Most probably, you will find what you are looking for (code, component, etc). Hardware support and software utilities. Page 4

Introduction (Cont.) Examples that uses Linux: Linux counts thousands of success stories Page 5

Linux: the OS What is the origin of Linux? Started by Linus Torvalds in 1991. Followed the design of UNIX. Released as open source: GNU public license. Nowadays: Widely used, with a large number of developers; very promoted in academia as well as in industry. Linux is used in small and big systems. Many distributions are available: Redhat, Slackeware, Suse, Fedora, Debian, Mandrake, Knoppiks, Yellow Dogs, Slackeware, etc. Available for download for free from internet (with its source code). Page 6

Linux: the OS (Cont.) A little about Linux: User Applications: kwrite, emacs, etc. Memory Manager O/S Services: command shell, etc. Linux Kernel: intermediate between the hardware and software. (no clear boundaries) Hardware Controllers: all possible hardware resources File System Process Scheduler Network Interface Inter-Process Communication Page 7

Embedded and Real-Time Systems What are embedded systems? Are a special-purpose computer system completely encapsulated by the device (or the system) it controls. An embedded system has specific requirements and achieve pre-defined tasks. Example: Phones, mobiles, PDA, DVD players, aircraft control system, ATM machines, cars navigation systems, etc. What are real-time systems? Describes an application which requires a program to respond to an event within a small pre-defined upper bound time limit (we are talking about guarantee). There are two types of real-time systems: Soft-real-time systems: meeting the constraints in a statistical basis. Example: Video conference. Hard-real-time systems: meeting the constraints all the time. Example: the airbag system. Page 8

Embedded and Real-Time Systems (Cont.) Page 9

Real-Time Operating System (RTOS) A Real-Time Operating System (RTOS) is an OS design for use in real-time applications. RTOS characteristics: Reliability: an RTOS should be available and should not fail. Predictability: an RTOS should meet the timing requirements for applications (tasks) it runs. Performance: to fulfill time requirements, an RTOS should be fast enough. Compactness: in general, RTOSes are deployed as embedded systems; thus, they should be compact. Scalability: systems exist under different sizes in terms of resources; to deal with this, it should be possible to scale up and down an RTOS. Page 10

Linux and Embedded Systems Nowadays, Linux is widely used in embedded systems. Many open source and commercial tools are available to support the production of Linux software for embedded systems; they range from use-case tools like ArgoUml, Poseidon, etc; to debugging tools like gdb (with remote debugging capabilities). Linux can be deployed in very small systems like 68EZ328 DragonBall Microcontroller (16MHz, 2 MB Flash ROM 8 MB DRAM). Linux can be deployed in very big servers (GBytes of RAM, TBytes of hard-drives, many CPUs). Page 11

Linux and Real-Time Systems Linux has no real-time capabilities because: Kernel calls are not preemptible. Paging (swapping in/out pages is not suitable for realtime). Fairness in scheduling (not suited for real-time). I/O request reordering. Batching (Linux batches operations). Motivation for making from Linux an RTOS: Linux is cheap. Linux is open source. Linux has a worldwide support over internet. Nowadays: there many solution that were presented to make from Linux an RTOS. Examples: RTLinux, VXworks, RTAI, etc. We did chose RTAI for the RTLOpen project. Page 12

RTAI What is RTAI? Stands for: Real-Time Application Interface. First version appeared in 1991 in DIAPM (Italy). Patent: (partly) GPL (Note: no conflict should be existing with the Linux/GNU patents). More information can be found at: http://www.rtai.org. RTAI provides a rich set of services for making realtime programming in Linux possible. Using RTAI, real-time programming is possible at the kernel level (in the LKM manner) and at the application level (LXRT). Facts: Best maximum UP latency: 3552ns. Best maximum LXRT latency: 9602ns. RTAI uses now ADEOS (a hall in the kernel). For more info: http://issaris.org/rtai/summary.php. Page 13

RTAI (Cont.) RTAI architecture: Page 14

RTAI Characteristics Getting RTAI running: Step1:patching the Linux kernel with Adeos. Step 2: compiling and installing the new Kernel. Step 3: compile and install RTAI. Can I install RTAI on a target machine? Yes, by a cross-compilation. RTAI provides: Task structures and a rich library for manipulation. scheduler (fixed priority and round robin).. Loading RTAI: Save current status of the registers. Manipulate its own tasks on the lowest level of the hardware. Finishes and restores last saved registers. Linux keeps working as nothing did happen, but its no more the machine s master. Page 15

RTAI Characteristics (Cont.) Timers & controller: RTAI provides periodic and oneshot timers. Controller: timer interrupt handler. RTAI modules: Real-time scheduler. POSIX API. LXRT (user space real-time tasks). Shared memory. FIFOS and Semaphores. Shared memory & FIFOS: Enables communication between processes (user/kernel space). FIFO: device like Linux files that can be used within RTAI. Shared memory: shared memory regions to exchange data. LXRT: enables writing real-time programs in the user space. Device drivers: Serial ports, standard parallel ports, Ethernet cards, etc. Page 16

Examples RTAI success stories: Platino: the laser cutting machine (prima industrie) RTAI software radio transmission antenna and AM receiver Enhanced Machine Controller Project Many others in: http://www.inrialpes.fr/sed/plateformesrobvis.html Page 17

Demo: The RTLOpen prototype The RTLOpen prototype: the labyrinth game (live demo after the second presentation). Configuration: Hardware: Control machine via LTP, step engines with a controlling card, labyrinth Game, mouse, and a battery. Software: Linux fedora, kernel 2.6, RTAI 3.1, programming language C. Page 18

Conclusion Nowadays Linux is becoming one of the most popular OSes for a large number of systems. RTAI is powering Linux with good real-time capabilities that makes Linux/RTAI a promising RTOS. However, Linux/RTAI should be powered by modern software engineering concepts for enabling the production of high-quality software; we list as examples of these concepts: Component-based software engineering concepts. Safety and security aspects. Inspection and testing. One-hand framework production environment. Fraunhofer IESE solution: RTLOpen. Page 19