linux as an embedded operating system and development environment ed bizari [email protected] director of...

39
Linux as an Embedded Operating System and Development Environment Ed Bizari [email protected] Director of Business Planning Performance Technologies February 22, 2005

Upload: domenic-owen

Post on 31-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Linux as anEmbedded Operating System

and Development Environment

Ed [email protected]

Director of Business PlanningPerformance Technologies

February 22, 2005

Syllabus

Introduction A Brief History of Linux Why Linux for Embedded Systems? Software Development Considerations The Continued Evolution of Linux Usage Example Conclusions

A Brief History of Linux

July 1991 – Computer science student Linus Torvalds announces he is working

on new, “free and open” OS – calls it Freax January 1992 –

Torvalds posts Linux 0.12 w/ GNU copyleft rights March 1994 –

Linux 1.0 released. TCP/IP, X-Windows, virtual mem. supported 1996 –

Linux 2.0 release, supports many different processor types, 1.5 million users, making inroads into the desktop and small server markets

Contributor count goes from hundreds, to thousands, now in the 10s of thousands!

A Brief History of Linux

January 1999 – Torvalds releases 2.2; HP and Compaq announce plans to offer Linux on their

systems August 2000 –

HP, IBM, Intel and NEC announce “Open Source Development Lab”, first step in “standardizing” Linux

January 2001 – Release 2.4 is posted to internet; IBM announces it will spend $1B USD on Linux

development in 2001 December 2003 –

Linux 2.6 released, tailored to scale both large and small. IDC reports Linux accounts for over 30% of server market

Today, release 2.4 and 2.6 are supported on everything from cell phones, to home entertainment appliances to watches to huge clustered supercomputers

Why Linuxfor Embedded Systems?

Why Linux?

Linux has scaled with Moore's Law Dynamic memory model

• Small to large footprint, virtual memory

Protected application environment• More CPU’s = more applications

Support for many CPU types and architectures• X86, Sparc, PowerPC, MIPS, ARM etc.

• Uniprocessor, SMP, clustering

Broad support for many different I/O devices• USB, Ethernet, mass storage, graphics, etc.

Why Linux? Increased integration in embedded product

designs SMP cores, multiple CPU’s, network processors, integrated DSPs Onboard high density mass storage devices Embedded switched Ethernet networks Demand for different & flexible I/O

Multiple Processors

Mass Storage

Ethernet Switches

Flexible I/O

PT-CPC714 Packet Processor

Why Linux?Scalability

EnterpriseData Center

Workstation

PC

EmbeddedSystems

PDAHome Ent.

DedicatedFunction

Small FootprintLimited Memory

Medium FootprintMed-Large Memory

Large FootprintHuge Memory

RTOS(VxWorks/Psos)

WindowsCEPocketPC

LinuxP

erfo

rman

ce

OS Feature/Size

WindowsXPSolaris

WindowsServer

Switching/AccessControllers

Network GatewayMedia Server

Compute Intensive

Why Linux?Leverage a Massive “Open-Source” Movement

Sourceforge.net – Central point for most every Open Source projectOver 75,000 registered

Linux Standards Base - Kernel watchdog – consistent APIs, growth

Enhanced reliability, manageability

Linux FreeS/WAN project – IPsec,

security

IP protocolsBIND, DNS, DHCP

Vovida.orgSIP, Radius

Which OS vendor offers free software packages, a world-class development team,thousands of global beta testers, millions of customers, and support for every hardware platform?** Source: IBM Peace/Love/Linux campaign

Why Linux?New Linux 2.6 Networking Features

IPsec – now in the kernel

NAPI – New API for faster packet processing – especially for Gigabit Ethernet, reduced int. latency

SCTP – Stream Control Transmission Protocol now in the kernel mainline - transport layer for SIGTRAN protocols

Additional RFC support, especially for IPv6 RFC3173 (IP Payload Compression) RFC3041 (IPv6 Privacy Extensions) RFC2473 (IPv6 in IPv6 tunnels)

Why Linux?Many New Linux 2.6 General Features

Non-Unified Memory Access (NUMA) No-MMU support Enhanced scheduler Better use of kernel and user process priorities Load-balancing Kernel preemption Faster and larger number of POSIX threads Async I/O – Overlapped I/O system calls provide faster response Additional filesystems – emphasis on resiliency, high performance (parallel),

large disk geometry Unified Device Model – allows more consistent management of all devices in

system. Lots of hooks for power management and fault tolerance General enhancements to monitoring/profiling

Why Linux?The Cost

It’s free!! (Don’t be naïve)

It’s free . . . in that it’s unencumbered and embodies a spirit of creativity

Several factors help keep costs down Open source packages – developed and tested by a massive open

source community Packages are immediately build-able into your apps and/or

environment which lowers cost and shortens development time Typically lower-priced licensing and kit costs from vendors

It’s less expensive than traditional operating systems and development environments

But . . . don’t skimp on Support !!

Why Linux?Summary

Support for many processor architectures – single OS

Flexible memory usage – small to very large

Wide range of support for many “onboard” devices Mass storage - filesystems - network interfaces - graphics

A true systems approach to embedded design

Huge leverage from the Open Source movement Many advanced technologies available in collaborative

projects

Less expensive that “traditional” operating systems and development environments

LinuxSoftware Development

Considerations

Linux Distributions

A Linux “distribution” A collection of applications, installation and configuration tools, and the

Linux operating system

Typically provided on CDs, DVDs or ftp site

Price range – “free” to $1000’s, even $10,000’s

There are ~ 290 distributions available Many started as Red Hat, Mandrake or Debian and grew from there Most are focused on desktop & multi-media 98% support X86 CPU’s, some support other processor types Companies providing distributions range in size

• Very large to very small– Red Hat – 750 employees, publicly traded– 100’s – 2-3 individuals donating time

Support model is not always clear…

Example Distributions

Wide range of available distributions for embedded market

Red Hat• Worlds largest provider• Focused on enterprise versions & desktop• ~$800 to $1500 for “standard” annual subscription• Additional charge for support

MontaVista• #1 supplier of embedded versions• Supports many different hardware platforms• ~$5000 to $25000 for annual subscription• Additional charge for higher level of support/consulting• Linux kernel is customized

Example Distributions

Performance Technologies - NexusWare™ Development Environment

Supports PTI’s family of hardware products

~$1K for Development Distribution• Very reasonable per-unit RTU fee (~$500)

“One Company” support for both hardware and software

Tailored for each product – and at a system level• Pre-integrated drivers for all onboard devices• Kernels configured and tested on every platform• Example applications and source code to speed development

Kernels based on standard www.kernel.org versions• Support for 2.2, 2.4 and 2.6

Focused on embedded applications!

Flexible Development Environment

ApplicationProcessingApplicationProcessingCall ControlCall ControlMedia

ProcessingMedia

ProcessingI/OI/OIPMIManagement

IPMIManagementBlades

Customer-Developed Applications

SystemManagement

ISMModule

I/O &Comms

CommunicationProtocolModule

MediaGateway

Media GatewayModule

Signaling

Signaling Gateway Module

Network & Cluster

Processing

Cluster Processing

Module

Packet-Based Embedded Hardware Platform

Linux Kernel

LinuxDevelopment & Operating Environment

NexusWare™

Core

Development Tools / Middleware / Protocols / APIs

Fully DocumentedSource &

Sample Applications

Compilers, Linkers& Application

Debuggers

Cross-PlatformDevelopmentEnvironment

Window

s

Solaris

Linu

x

Utilities

Applications

Open SourceProjects

APIs

DebugTools

Libraries

DeviceDrivers

ProtocolModules

NetworkServices

Tools and UtilitiesMajor

Components/Tools of a Linux Development

System

LinuxKernelLinuxKernel

Development Support

Who brings it all together? Support for the Linux distribution Knowledge of development tools and

environments Understanding of the target hardware

Goal of support is to: Facilitate the development of applications Maximize hardware/software integration Help bring projects to market

The Continued Evolutionof Linux

Linux ClusteringWhat Is Clustering?

Multiple computers working together to look like one NOT client/server model – it is peer-to-peer

Each computer runs standard OS - Linux Enhanced network transport software Enhanced filesystem software Kernel modules to support inter-computer application execution

Applications can run on one or many nodes in the cluster

1st cluster – built by NASA in 1994 using 16 80486 processors and 10MBit dual Ethernet

Today – 2132 nodes using dual Xeon cores

Clustering Architecture

Additional nodes can be added or removed at

any time

IPApplications can run on any node

ComputeNode

ComputeNode

ComputeNode

ComputeNode

ComputeNode

“Director” functions as central monitor & resource

allocator

Director

EthernetSwitch

Benefits of Linux Clustering

Lower cost Use of commercial computer and networking technology to

create high availability and/or high performance systems

Extremely scalable Nodes added or removed based on application/system

needs

Massively parallel Most applications can be run in parallel (HA) Some are designed to be very parallel (compute)

Very fault-tolerant No single (or even multiple!) points of failure Inherent in the cluster architecture - Application “invisible”

A Variety of Clusters

Many types of clusters High performance clusters Load-leveling/balancing clusters Web-service clusters Storage clusters Database clusters High availability clusters

Clustering specifically for Linux Beowulf.org Oscar (Open Source Cluster Application Resource) Rocks OpenSSI (Single System Image)

Linux ClusteringSummarized

Bring supercomputer class technology to the embedded market!!!

CompactPCI® now has native high speed packet-switched backplanes (PICMG 2.16)

Moore's Law is supplying faster processors and more memory per in2

Use of embedded (intra-board) switched networks provide high speed, scalable processor architectures

Embedded Linux technology provides complete cluster implementation

All using today's technology!

Usage Example

Development Steps

1. Assemble the platform2. Configure the hardware3. Develop your application(s)4. Build an image5. Flash the target

Platform Selection and Assembly

Compute Elements• Sparc, PPC or Intel®-based SBCs• Cluster Processors• Standard distribution OS

Embedded SS7/IP• Signaling gateway blades• SS7 MTP-2 cards

I/O & Communications• T1/E1/J1• T3• Sync/serial access• WAN/LAN comm servers

Media & Voice Processing• DSP resource HW platforms• Wireless, data, fax• Echo cancellation, VoCoding

Software & Middleware• Linux-based software suite• System management• Media & voice processing• WAN protocols• SS7/IP signaling• High availability

Network & Packet Processing• Storage and security accelerator • IP tunnel routing• NAT/load sharing NAT

Integrated Shelf Management• Management / alarming• Monitors system power, cooling, fabrics/nodes

Ethernet Switches• L2/L3+ Ethernet fabric switches

PICMG 2.16 ChassisPower

Cooling

Zoom-In Front View7U Packet-Based Platform

Power Supplies

Intake Fan Tray

ISMs

EthernetFabricSwitches

Exhaust Fan Tray

8 NodeSlots- Compute- IO- Signaling- Voice- NPU

Each node is Linux-enabled !!

Cluster ProcessorBlade has four

stand-alone processor elements running at 800Mhz,

512MB DDR Memory, Dual GB Ethernet

Processing elements are networked together, on board using Gigabit Ethernet Switch

Each blade can be connected to PICMG 2.16 switched

backplane using aggregated dual Gigabit Ethernet ports

Every processing element runs Linux

PICMG®

2.16

Embedded Cluster Processing Blade

Gig E

Gig E

USB2.0

Gig E

Gig E

Gig E

Gig E

Gig-ESwitch

USB 2.0CF/Microdrive

800Mhz CPU1GB SDRAM

Linux Kernel

800Mhz CPU1GB SDRAM

Linux Kernel

800Mhz CPU1GB SDRAM

Linux Kernel

800Mhz CPU1GB SDRAM

Linux Kernel

Embedded Cluster Processing Blade

The NexusWare Environment

httpdhttpdSNMPSNMP

Frame Relay

X.25

HDLC

Frame Relay

X.25

HDLC

PCIPCIT1T1T3T3 H.110H.110EthernetEthernet

Linux Kernel SpaceLinux Kernel Space

User/App SpaceUser/App Space

Physical HardwarePhysical Hardware

MTP-2MTP-2

Har

dw

are

Ad

apte

rH

ard

war

e A

dap

ter

H.323

SIP

MGCP

H.323

SIP

MGCP

NexusWare Resource APIs

Customer Developed System-Level Application(s)Customer Developed System-Level Application(s)

Optional or User Integrated Protocols

CASCAS

Configuration & Applications Development

Application Development

LinuxLinux

SolarisSolaris

WinXPWinXP

DevelopApplication

> Using existing company dev. platform

> Using tools from distribution

> Incorporating “packages”

FlashTarget

> Perform integration and applications testing on target platform

BuildImage

GNUTool

Chain

GNUTool

Chain

> Using GNU tools and compilers

Embedded Cluster System

With quad cluster processing blades, up to 76 node processors per

chassis

~4800 MIPS per blade, 91200 MIPS per chassis

Using link aggregation, up to 76 Gigabits of

backplane bandwidth

01 02 03 04 a b05 06 07 08 09 10 11 12 13 14 15 16 17 18 19

Up to 19 clusterprocessing blades

Dual Gbfabric switchesw/ 10Gb uplinks

Highly scalable embedded cluster

Using Ethernet switch uplinks, can expand to huge numbers of node

processors!!!

Cluster System

“Director” resides on 1 processor

For Future Revs?Protecting Your Investment

ATCAAMC

MicroTCA

PCI/Server

AMP2.16

CTCA Commonalities:OS/Development – Linux

Management – IPMI/SNMPSwitching – EthernetNetworking – TCP/IP

Summary

Long past the hobbyist stage

Linux is gaining a large share of the Embedded market

Due to dominance in both the Enterprise and Desktop Full set of development tools Supported by a massive open-source movement Competent distributions

Embedded architectures are advancing Linux fully leverages today's high performance hardware

Linux + packet based platforms + cluster processors Supercomputer class embedded systems can now be created

– at incredible price/performance ratios!

Questions/Answers

Thank you

Internet Telephony Conference & ExpoFebruary 22, 2005

Linux as an Embedded Operating System and Development

Environment