Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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