Download Slide 1

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Cracking of wireless networks wikipedia , lookup

Distributed operating system wikipedia , lookup

Zero-configuration networking wikipedia , lookup

Transcript
Linux as an
Embedded Operating System
and Development Environment
Ed Bizari
[email protected]
Director of Business Planning
Performance 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 –


August 2000 –


Release 2.4 is posted to internet; IBM announces it will spend $1B USD on Linux development in
2001
December 2003 –


HP, IBM, Intel and NEC announce “Open Source Development Lab”, first step in “standardizing”
Linux
January 2001 –


Torvalds releases 2.2; HP and Compaq announce plans to offer Linux on their systems
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 Linux
for 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
Ethernet Switches
Mass Storage
PT-CPC714 Packet
Processor
Multiple Processors
Flexible I/O
Why Linux?
Scalability
Enterprise
Data Center
Linux
Windows
Server
Performance
Embedded
Systems
Workstation
WindowsXP
Compute Intensive
Network Gateway
Media Server
Solaris
PC
PDA
Home Ent.
WindowsCE
PocketPC
Switching/Access
Controllers
RTOS
(VxWorks/Psos)
Dedicated
Function
Small Footprint
Limited Memory
Medium Footprint
Med-Large Memory
OS Feature/Size
Large Footprint
Huge Memory
Why Linux?
Leverage a Massive “Open-Source” Movement
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
Linux Standards Base - Kernel watchdog – consistent APIs, growth
Enhanced reliability,
manageability
Linux FreeS/WAN
project – IPsec,
security
IP protocols
BIND, DNS, DHCP
Sourceforge.net – Central point for most every Open Source project
Over 75,000 registered
Vovida.org
SIP, Radius
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
Linux
Software 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
Customer-Developed Applications
Development Tools / Middleware / Protocols / APIs
Linux
Development
& Operating
Environment
System
Management
I/O &
Comms
Media
Gateway
Signaling
Network &
Cluster
Processing
NexusWare™
Core
ISM
Module
Communication
Protocol
Module
Media
Gateway
Module
Signaling
Gateway
Module
Cluster
Processing
Module
Call Control
Application
Processing
Linux Kernel
Blades
IPMI
Management
I/O
Media
Processing
Packet-Based Embedded Hardware Platform
Tools and Utilities
Major Components/Tools
of a Linux Development
System
Cross-Platform
Development
Environment
Applications
APIs
Device
Drivers
Linux
Kernel
Debug
Tools
Network
Services
Fully Documented
Source &
Sample Applications
Open Source
Projects
Solaris
Utilities
Protocol
Modules
Libraries
Compilers, Linkers
& Application
Debuggers
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 Evolution
of Linux
Linux Clustering
What 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
Applications can run
on any node
IP
Compute
Node
Compute
Node
Ethernet
Switch
Compute
Node
Director
“Director” functions as
central monitor & resource
allocator
Compute
Node
Compute
Node
Additional nodes can be
added or removed at
any time
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 Clustering
Summarized
 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.
2.
3.
4.
5.
Assemble the platform
Configure the hardware
Develop your application(s)
Build an image
Flash the target
Platform Selection and Assembly
Integrated Shelf Management
• Management / alarming
• Monitors system power, cooling, fabrics/nodes
PICMG 2.16 Chassis
Power
Cooling
Ethernet Switches
• L2/L3+ Ethernet fabric switches
Software & Middleware
• Linux-based software suite
• System management
• Media & voice processing
• WAN protocols
• SS7/IP signaling
• High availability
Media & Voice Processing
• DSP resource HW platforms
• Wireless, data, fax
• Echo cancellation, VoCoding
Network & Packet Processing
Compute Elements
• Sparc, PPC or Intel®-based SBCs
• Cluster Processors
• Standard distribution OS
Embedded SS7/IP
• Signaling gateway blades
• SS7 MTP-2 cards
• Storage and security accelerator
• IP tunnel routing
• NAT/load sharing NAT
I/O & Communications
• T1/E1/J1
• T3
• Sync/serial access
• WAN/LAN comm servers
Zoom-In Front View
7U Packet-Based Platform
Intake
Fan Tray
Exhaust
Fan Tray
Ethernet
Fabric
Switches
ISMs
Power
Supplies
8 Node
Slots
- Compute
- IO
- Signaling
- Voice
- NPU
Each
node is
Linuxenabled !!
Embedded Cluster Processing Blade
Cluster Processor
USB
2.0
CF/
Microdrive
USB 2.0
800Mhz CPU
1GB SDRAM
Gig E
Blade has four
stand-alone processor
elements running at 800Mhz,
512MB DDR Memory, Dual GB
Ethernet
Gig E
Linux Kernel
PICMG®
2.16
800Mhz CPU
1GB SDRAM
Gig-E
Switch
Gig E
Linux Kernel
800Mhz CPU
1GB SDRAM
Every processing element
runs Linux
Gig E
Processing elements are
networked together, on board
using Gigabit Ethernet Switch
Linux Kernel
Gig E
800Mhz CPU
1GB SDRAM
Linux Kernel
Embedded Cluster Processing Blade
Gig E
Each blade can be connected
to PICMG 2.16 switched
backplane using aggregated
dual Gigabit Ethernet ports
The NexusWare Environment
Customer Developed System-Level Application(s)
Optional or User Integrated Protocols
Hardware Adapter
SNMP
Frame Relay
H.323
X.25
SIP
HDLC
MGCP
httpd
MTP-2
User/App Space
Linux Kernel Space
NexusWare Resource APIs
Ethernet
T3
CAS
T1
Physical Hardware
H.110
PCI
Configuration & Applications Development
Application Development
Develop
Application
Build
Image
Flash
Target
Linux
GNU
Tool
Chain
Solaris
WinXP
>
Using existing company dev. platform
>
Using tools from distribution
>
Incorporating “packages”
>
>
Using GNU tools and
compilers
Perform integration
and applications
testing on target
platform
Embedded Cluster System
Up to 19 cluster
processing blades
Dual Gb
fabric switches
w/ 10Gb uplinks
Cluster System
Using Ethernet switch
uplinks, can expand to
huge numbers of node
processors!!!
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 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 a
Highly scalable embedded cluster
b
“Director” resides on 1
processor
For Future Revs?
Protecting Your Investment
AMP
2.16
CTCA
Commonalities:
OS/Development – Linux
Management – IPMI/SNMP
Switching – Ethernet
Networking – TCP/IP
PCI/Server
ATCA
AMC
MicroTCA
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
Linux as an Embedded Operating
System and Development Environment
Thank you
Internet Telephony Conference & Expo
February 22, 2005