Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | domenic-owen |
View: | 218 times |
Download: | 0 times |
Linux as anEmbedded Operating System
and Development Environment
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 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
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
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!
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
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!