Embedded Os [Linux & Co.]

41
http://dev.emcelettronica.com/print/book/export/html/51676 1 din 41 16.05.2008 21:40 Your Electronics Open Source (http://dev.emcelettronica.com) Home > Resources > Embedded OS > Embedded OS By allankliu Created 05/03/2008 - 04:10 RESOURCES Electronics Embedded OS [Linux & Co.] Overview [Wikipedia] [1], an embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, sometimes with real-time computing constraints. It is usually embedded as part of a complete device including hardware and mechanical parts. In contrast, a general-purpose computer, such as a personal computer, can do many different tasks depending on programming. Embedded systems have become very important today as they control many of the common devices we use. Today, the boundaries between the general purpose PCs, the servers and the embedded systems are more blurred. These computers are sharing same platforms, same peripherals. For example, an x86/Mac PC can be used as a server, an x86/PowerPC CPU can be used in an embedded system like portable navigation device (PND). On the other way, the popular embedded processor StrongARM was a powerful desktop PC processor for the DEC workstation, and the embedded systems often also act servers, like NAS (Network Attached Storage). As same as the hardware suppliers, the OS suppliers port their products into the desktop PCs, servers and embedded systems. Nothing cuts to the heart of a development project like the choice of OS. Whether it's a tiny scheduler or kernel, an open-source distribution, a tightly wound real-time operating system, a fully featured commercial RTOS, or no OS at all, it drives all downstream software decisions and many hardware decisions as well. A survey shows us what's important to those who get a say in the choice of OS. The criteria are: Real-time performance 1. Processor compatibility 2. Software tools 3. No royalties 4. Price 5. Memory footprint 6. Simplicity 7. Middelware 8. Compatibility 9. Services & Features 10.

description

Today, the boundaries between the general purpose PCs, the servers and the embedded systems are more blurred. These computers are sharing same platforms, same peripherals. For example, an x86/Mac PC can be used as a server, an x86/PowerPC CPU can be used in an embedded system like portable navigation device (PND). On the other way, the popular embedded processor StrongARM was a powerful desktop PC processor for the DEC workstation, and the embedded systems often also act servers, like NAS (Network Attached Storage). As same as the hardware suppliers, the OS suppliers port their products into the desktop PCs, servers and embedded systems.

Transcript of Embedded Os [Linux & Co.]

Page 1: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

1 din 41 16.05.2008 21:40

Your Electronics Open Source

(http://dev.emcelettronica.com)

Home > Resources > Embedded OS > Embedded OS

By allankliuCreated 05/03/2008 - 04:10

RESOURCES Electronics

Embedded OS [Linux & Co.]

Overview

[Wikipedia] [1], an embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, sometimes with real-time computing constraints. It is usually embedded as part of a complete device including hardware and mechanical parts. In contrast, a general-purpose computer, such as a personalcomputer, can do many different tasks depending on programming. Embedded systems havebecome very important today as they control many of the common devices we use.

Today, the boundaries between the general purpose PCs, the servers and the embedded systems are more blurred. These computers are sharing same platforms, same peripherals. For example, an x86/Mac PC can be used as a server, an x86/PowerPC CPU can be used in an embedded system like portable navigation device (PND). On the other way, the popular embedded processor StrongARM was a powerful desktop PC processor for the DEC workstation, and the embedded systems often also act servers, like NAS (Network Attached Storage). As same as the hardware suppliers, the OS suppliers port their products into the desktop PCs, servers and embedded systems.

Nothing cuts to the heart of a development project like the choice of OS. Whether it's a tiny scheduler or kernel, an open-source distribution, a tightly wound real-time operating system, a fully featured commercial RTOS, or no OS at all, it drives all downstream software decisions and many hardware decisions as well.

A survey shows us what's important to those who get a say in the choice of OS. The criteriaare:

Real-time performance1.Processor compatibility2.Software tools3.No royalties4.Price5.Memory footprint6.Simplicity7.Middelware8.Compatibility9.Services & Features10.

Page 2: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

2 din 41 16.05.2008 21:40

[1]

Open-source11.Familiarity12.Hardware suppport13.Customization14.Supplier's reputation15.Support16.Popularity17.Other products 18.

Reference

[2]

The resource of OS for embedded systems.

[3]

A market research report for embedded OSes

Wikipedia resources of OS for embedded systems

01 Non RTOS

According to a survey in Embedded System Design, more than a quarter of embedded systems now in development won't have an OS at all. None. a little over 28% of all our survey-takers said the system they're designing now won't have so much as a tiny scheduler or task switcher.

Page 3: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

3 din 41 16.05.2008 21:40

[4]

Main Software Loop

In this design, the software simply has a loop. The loop calls subroutines, each of which manages a part of the hardware or software. This method is called round-robin. The round-robin method is very popular in small microcontrollers.

Interrupt Controlled System

Some embedded systems are predominantly interrupt controlled. This means that tasks performed by the system are triggered by different kinds of events. An interrupt could be generated for example by a timer in a predefined frequency, or by a serial port controller receiving a byte.

These kinds of systems are used if event handlers need low latency and the event handlers are short and simple. Usually these kinds of systems run a simple task in a main loop also, but this task is not very sensitive to unexpected delays.

Sometimes the interrupt handler will add longer tasks to a queue structure. Later, after the interrupt handler has finished, these tasks are executed by the main loop. This method bringsthe system close to a multitasking kernel with discrete processes.

Most of above shedulers or kernels are developed in house. They are simple and easy-to-use. They are not RTOS because they are only sheduler part of an OS. A complete OS includes scheduler, task switching and resource allocation, memory management.

Non Real Time Embedded OS

Not every embedded operation systems are designed for real-time, for example, Windows CE is not a real-time OS, but it is a multi-tasking OS. But you know, as time goes by, things change a lot. These OSes are improved by using real-time kernels or patches.

A lot of similiar OSes have already faded out. Such as PPSM from Motorola (for its 68K/ARM DragonBall CPU), Zaurus from Sharp. The propertiary OS for TX MIPS micro from Toshiba (Sorry I forgot name of OS, but it was popular in Toshiba's Taiwanese customers)...

Palm OS, running on Motorola/Freescale 68K based Dragonball CPU and ARM9 CPU, Development tools availablefreely from official web site and 3rd parties.

[5]

EPOC/Symbian, supports ARM CPU. leader in mobile phone market.

Page 4: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

4 din 41 16.05.2008 21:40

[6]

[7]

[8]

02 RTOS

Commercial

RTX, CMX Real-Time Multi-Tasking Operating System products support most embedded Microcontrollers, Microprocessors and DSPs. We also support more than 30 compiler vendors. Please contact us for further information on any of our RTOS products such as CMX-RTX(tm), CMX-TINY+(tm), CMX-TCP/IP(tm), CMXBug(tm), and CMXTracker(tm).CMX supports most of the 8/16/32/64 bit microcontrollers, microprocessors and DSPs. CMX also has configuration an studio for development.

RTXC, by Embedded Power Corportation. Now its name is Quadros. RTXC is RTOS and integrated middleware in TCP/IP, CAN, USB, IrDA, FS, GUI. The development tools areRTXC Bridge and VisualRTXC, ported to ARM, ColdFire, Blackfin.

Integrity Green Hills Software is a well-known OS supplier for embedded system. Its offerings are INTEGRITY/velOSity/u-velOSity OSes, and IDEs of MULTI, AdaMULTI, DoubeCheck, TimeMachine, as well as many compilers, communication software and off-the-shelf product designs. It supports development platform on Linux and Windows PC and SPARC workstation. The supporting microprocessor list is too long. You'd better to check it out by yourself. But most of the supporting processors are 32bit

architectures.

Page 5: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

5 din 41 16.05.2008 21:40

[9]

[10]

[11]

[12]

Keil offers a OS/Kernels for 8051/C166/ARM processors. They are:RTX51 tiny, free available in its kit, limited features.RTX51 full, enhanced features with CAN bus.RTX166Tiny, similiar to RTX51 but for C16x platform.ARTX-166 Advanced, C16x/ST10, full features includes Flash file system and TCP/IP stack.RL-ARM Real-Time Library, complete RT kernel for ARM7/9/Cortex-M3, with Flash file system and TCP/IP suites.

AMX, Since its introduction by KADAK in 1980, AMXTM has been recognized as a superior RTOS which meets the most critical needs of the most challenging real time applications, and yet remains easy to use and simple to understand. It supports x86,68K,ColdFire,PPC32 PowerPC, ARM7, ARM9,StrongARM,Xscale,and MIPS32.

embOS, developed by SEGGER Microcontroller, it is a real-time operating system for embedded applications designed to offer the benefits of a fully fledged multitasking system at minimum cost. The kernel is fully interruptible and so efficient that it can be used in very time critical situations. The memory footprint in both RAM and ROM is so small that it can be used in single-chip applications, leaving maximum room for the user-program.

iRMX, by tenAsys. The gold standard in real-time software forthe x86 architecture, the iRMX III operating system, has beenproven in thousands of demanding real-time applications worldwide. Designed specifically to support Intel x86 architecture 32-bit CPUs and associated chipsets, the iRMX III operating system is highly configurable from a small-footprint, kernel-only solution to a full-service, hard real-time operating system. iRMX configurations support PC and non-PC architectures, such as Multibus and Multibus II.

Page 6: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

6 din 41 16.05.2008 21:40

[13]

[14]

[15]

Nucleus, by Mentor Graphics, The Nucleus OS can significantly improve the performance, response times and memory system utilization in many complex systems, where other bulkier OS choices add significant overhead and do not provide real-time response.

OS-9, by RadiSys. Top-ranked in recent RTOS surveys, OS-9is proven world-wide in thousands of products representing hundreds of embedded applications, including industrial automation & control, automotive, and medical instrumentation.

OSE, a powerful platform for the design of real-time embedded systems. OSE's message based architecture instantly and seamlessly achieves powerful simplicity in complex and distributed systems.

Page 7: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

7 din 41 16.05.2008 21:40

[16]

[17]

[18]

[19]

pSOS, aqcuired by Wind River Inc, now. It used to be a majorembedded OS, but the current status is unknown.

Phoenix-RTOS is the realtime operating system intended for embedded systems. The main goal of the Phoenix-RTOS project is to develop free, portable, small and well-designed realtime operating system for embedded hardware platforms like SBC (Single Board Computers), SOM (System on Module) and SoC (System On Chip). It supports IA32, PowerPC and ARM.

QNX, Its ultra-reliable nature means QNX software is the preferred choice for life-critical systems such as air traffic control systems, surgical equipment, and nuclear power plants. And its cool multimedia features have QNX software turning up in everything from in-dash radios and infotainment systems to the latest casino gaming terminals.

Salvo, Salvo has modest ROM and miniscule RAM requirements. This mean that you can have event-driven, priority-based, multitasking applications in nearly any single-chip microcontroller, with plenty of room left for your application. It is a product of Pumpkin, Inc. It supports

8051/ARM/AVR/M68HC11/MSP430/PIC12/PIC24/PIC32/TMS320 DSP.

Page 8: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

8 din 41 16.05.2008 21:40

[20]

[21]

[16]

ThreadX is an advanced Real-Time Operating System (RTOS) designed specifically for deeply embedded applications. ThreadX has many advanced features, includingits picokernel? architecture, preemption-threshold,? and a rich set of system services. Combined with its superior ease-of-use, ThreadX is the ideal choice for the most demanding of embedded applications. It is developed by Express Logic.

VRTX, by Mentor Graphics as well. Product strategy is unclear

VxWorks, Wind River. The microsoft in embedded OS. VxWorks could be the most widely used OS in embedded world.

Page 9: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

9 din 41 16.05.2008 21:40

[22]

[23]

[24]

XMK, The eXtreme Minimal Kernel (XMK) is a real-time operating system (RTOS) that is designed for minimal RAM/ROM use. It supports AVR, H8 and many 8 bit microcontrollers.

Open Source

OSEK/VDX, a OS standard used in automotive distributed applications. OSEK is not a OS, but a standard interface and design guideline for OS.

TRON, The Real-time Operating system Nucleus, ITRON is aJapanese open standard for a real-time operating system (RTOS) initiated under guidance of Ken Sakamura. This project aims to standardize the RTOS and related specifications for embedded systems, particularly small-scale embedded systems. The ITRON RTOS is targeted for consumer electronic devices, such as mobile phones and fax machines. Various vendors (most Japanese) sell their own implementations of the RTOS.

Page 10: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

10 din 41 16.05.2008 21:40

[25]

[26]

[27]

[28]

FreeRTOS is a portable, open source, mini Real Time Kernel - a free RTOS. This site shows how a complete embedded real time system can be created from a Windows host using quality open source development tools (where available). It supports ARM7/MSP430/AMD/AVR/8051.

MicroC/OS-II. uC/OS-II is a highly portable, ROMable, very scalable, preemptive real-time, multitasking kernel (RTOS) formicroprocessors and microcontrollers. It supports many processor architectures including ARM7 and ARM9; and can handle up to 255 tasks, providing services such as semaphores, message mailboxes and task management. uC/OS-II has been ported to many microcontrollers and microprocessors. The OS is not free for commercial purpose with a lot of middleware from 3rd parties.

InfraBed is a portable RTOS that has been ported to the ARM7 architecture using the Keil tools. It is developed by Embedded Artists. Free for non-commercial purpose.

TinyOS. Crossbow Technology, Inc. announces the availability of the TinyOS 2.0 Operating System for Crossbow's advanced IRIS motes. This enables developers to use the latest generation software on the latest generation Sensor Network hardware. The sensor is using AVR microcontroller with open source GNU compiler.

Page 11: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

11 din 41 16.05.2008 21:40

[29]

[31]

[32]

eCos is an open source, royalty-free, real-time operating system intended for embedded applications. The highly configurable nature of eCos allows the operating system to be customised to precise application requirements, delivering the best possible run-time performance and an optimised hardware resource footprint. A thriving net community has grown up around the operating system ensuring on-going technical innovation and wide platform support. eCOS supports ARM, CalmRISC, FR-V, H8, IA32, M86K, AM3x,

MIPS, NEC v8xx, PowerPC, SPARC, SuperH. Detail list please check their web page for hardware [30].

Nut/OS is an intentionally simple RTOS for the ATmega128, which provides a minimum of services to run Nut/Net, the TCP/IP stack. It supports AVR-GCC/ICCAVR/CodeVisionAVR.

AvrX is a Real Time Multitasking Kernel written for the Atmel AVR series of micro controllers. AvrX contains approximately 40 API in the Six categories. The Kernel is written inassembly. Total kernel size varies from ~500 to 700 wordsdepending upon which version is being used. Since thekernel is provided as a library of routines, practical applications take up less space because not all functions are used. It supports IAR assembler and GCC Ccompiler.

03 Embedded Linux and Unix platforms

Community

Page 12: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

12 din 41 16.05.2008 21:40

[33]

[34]

[36]

The Linux/Microcontroller project is a port of Linux to systemswithout a Memory Management Unit (MMU). uClinux first ported to the Motorola MC68328: DragonBall Integrated Microprocessor. The first target system to successfully boot isthe PalmPilot using a TRG SuperPilot Board with a custom boot-loader created specifically for our Linux/PalmPilot port.

ARM Linux is a port of the successful Linux Kernel to ARM processor based machines, lead mainly by Russell King, with contributions from many others. ARM Linux is under almost constant development by various people and organisations around the world.

Distributions

Most of the major players in Linux distribution have embedded versions. These distributions are a bundle of software components, the specific distribution will bring a lof of application specific software module with the Linux kernel.

[35]

Linux/RT, by TimeSys

Red Hat,For many years, embedded systems have beendeveloped and deployed with the help of Red Hat's opensource tools and runtime software. Because of the diverserange of embedded devices and systems, Red Hat hasdeveloped a process to customize tools and runtime softwarefor a wide range of architectures, boards, and systems.

Page 13: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

13 din 41 16.05.2008 21:40

[37]

[38]

[39]

BlueCat embedded Linux from LynuxWorks, based on the 2.6kernel, is an implementation of the Linux model enhanced for use in embedded systems ranging from small consumer-type devices to large-scale, multi-CPU systems.

MontaVista? With over 2,000 customers developing onMontaVista Linux across a wide range of industries,MontaVista is the undisputed leading provider ofcommercial-grade Linux development platforms for intelligentdevices and communications infrastructure.

Debian's multiarchitecture support, vendor independence, social contract and huge software base make it an attractive choice for all sorts of systems, but the main distribution is very much aimed at systems with at least desktop resources (big hard discs, plenty of memory). Embedded Debian tries tostrip Debian down to be a much smaller system whilst keeping all the good things.

Page 14: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

14 din 41 16.05.2008 21:40

[40]

[41]

[42]

[43]

Embedix. With its 20-year experiences of embedded devices development and solid accomplishments as an embedded Linux pioneer, Lineo strongly boosts ubiquitous network era by providing sophisticated-and-robust software products and reliable services for the customers to attain faster time-to-market.

emKnoppix is a distribution of Knoppix tailored for use in embedded systems. Idea for such a distribution arose when I was playing with Knoppix for remastering and building an embedded Linux platform at the same time

Pico/Linux, The Open Source Handheld OS powered byPicoGUI and Linux.

GeeXboX is a free embedded Linux distribution which aims atturning your computer into a so called HTPC (Home Theater PC) or Media Center. Being a standalone LiveCD-based distribution, it's a ready to boot operating system than works on any Pentium-class x86 computer or PowerPC Macintosh, implying no software requirement. You can even use it on a diskless computer, the whole system being loaded in RAM.

Page 15: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

15 din 41 16.05.2008 21:40

[44]

[45]

[46]

LynxOS, Lynixworks offers many RTOS and Linux distributionfor real-time and embedded systems.

RTAI, RealTime Application Interface for Linux - which lets you write applications with strict timing constraints for your favourite operating system. Like Linux itself this software is a community effort. RTAI supports x86, x86_64, PowerPC andARM.

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language. Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the

software stack.

UNIX

Because the relationship between UNIX and Linux, we put embedded UNIX in this section aswell.

Page 16: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

16 din 41 16.05.2008 21:40

[47]

[48]

[49]

Embedded FreeBSD. The Embedded FreeBSD project provides tools and documentation for using FreeBSD in an embedded environment. The goal is that FreeBSD can be used to produce products and systems that are competitive inthe embedded world. FreeBSD has some unique advantages for embedded developers.

NetBSD. The NetBSD Operating System is the most portable OS in the world, and many of the supported hardware platforms are suited for embedded applications. While embedded development with NetBSD doesn't differ a lot fromregular Unix development, some special cases are in the build processes.

polyBSD is a "multi"-purpose (hence "poly") framework for building embedded systems that address certain aspects of information assurance. Essentially, it is a minimalistic install of NetBSD (i386) designed to run from a 256MB flash card or USB memory stick.

[50]

Embedded OpenBSD

MAC

Page 17: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

17 din 41 16.05.2008 21:40

[51]

[53]

[54]

Mac OS X (Linux based, for desktop PC and Apple TV)

References

[52]

The Consumer Electronics Linux Forum (CELF), a California Non-Profit Corporation, is focused on the advancement of Linux as an open source platform for consumer electronics (CE)devices.

04 Embedded Windows Platform

Windows

Windows, the major OS in the desktop PCs, it has many derivates in the servers and embedded systems. Microsoft offers embedded OSes in different names with different configurations for different applications, sometimes the names are really confusing the developers. But their cores are almost identical.

Windows Embedded CE, a real embedded OS for x86, ARM, MIPS and SH4 processors, it has a lot of names for different applications and different time. The very first name is Windows CE, then Pocket PC, Windows Mobile, Windows CE.NET, Windows automotives, Microsoft Auto. But they are leaves from same trunk. The first version of Windows CE is a subset of Win32, more or less an embedded OS derivates from Windows NT, which is not a real-time OS, not latest Windows CE 6.0 becomes a native real time multi-task OS.

Its run time price is USD3-16.In order to develop Windows Embedded CE, you must

Page 18: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

18 din 41 16.05.2008 21:40

[55]

[56]

[57]

download following software packages from Microsoft's website.Visual Studio 2005 Trial, Team Suite SP1 for developing application software, Windows Embedded CE 6.0 Evaluation Edition and update ReleasesWindows Embedded CE 6.0 Platform Builder for porting OS to your hardware.

Windows XP Embedded is an embedded version of WindowsXP Professional. Windows XP Embedded incorporates the latest embedded-enabling capabilities, such as support for multiple boot, storage, deployment, and management technologies. Windows XP Embedded SP2 Features 2007 support new features includes File Based Write Filter and USB support. Its run time price is USD99.The Windows XP Embedded SP2 Features 2007 has integrated necessary tools for Windows XPe

Windows Embedded for Point of Service is developed for POS applications, which requries a lot of business periperal devices. Its minimum requirement is x86 CPU running over 233MHz. The runtime cost is pretty high, about USD100 for each POS PC. But WEPOS indeed brings some benefits to POS applications.

Windows Vista for Embedded (x86). Unlike the other Windows Embedded operating systems, Windows Vista for Embedded Systems is not a componentized offering and the image is not customizable by the developer. Windows Vista for Embedded System was designed for the desktop but is available for fixed-function or dedicated embedded systems. The Windows Vista? for Embedded Systems product line offers two choices: Ultimate and Business versions. WindowsVista Ultimate for Embedded Systems offer BitLocker Driver

Encrytion and SUA for running UNIX applications on the OS.

Page 19: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

19 din 41 16.05.2008 21:40

[58]

[59]

[60]

Windows Automotive. Windows Automotive 5.0 is built on theMicrosoft Windows CE 5.0 operating system, a hard, real-time, 32-bit, memory-protected operating system kernel with support for a variety of processor architectures. WindowsAutomotive 5.0 also features the Automotive User Interface Toolkit (AUITK), a sophisticated graphical user interface framework design tool and compact runtime environment.

Microsoft Auto, another new name of Windows CE 6.0 in automotives. A comprehensive hardware/software reference platform, Microsoft Auto enables carmakers and suppliers to more quickly and easily build a solution that provides consumers with features such as mobile device integration, speech recognition, and infotainment.

SYNC, powered by Microsoft Auto software, is Ford’s newfully integrated, voice-activated in-car communications andentertainment system for mobile phones and digital musicplayers.DOS clones for embedded systemBecause Microsoftdiscontinued DOS support long time ago. A lot of OSsuppliers start to port this legacy OS in embedded system.Most of these DOS-like OSes are free, even open sourcesolutions. Since DOS is not a real time OS, there are someRT extensions for these OSes.

DOS clones for embedded system

Because Microsoft discontinued DOS support long time ago. A lot of OS suppliers start to port this legacy OS in embedded system. Most of these DOS-like OSes are free, even open source solutions. Since DOS is not a real time OS, there are some RT extensions for theseOSes.

Page 20: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

20 din 41 16.05.2008 21:40

[61]

[62]

[63]

Dr-DOS (Digital Research/Caldera)

RTKernel, On Time RTOS-32 (Win32 subset in 16K RAM/ROM), from On Time.

JK microsystems, Inc.

[64] eRTOS

[65]

2net

Development tools

Page 21: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

21 din 41 16.05.2008 21:40

[66]

[67]

[68]

[69]

Jungo WinDriver for Windows CE, Windows Mobile.

05 Java Approach

Usually developers consider Java as a programming language, but Java is a complete operating enviornment including some parts belong to OS. If you have experience of porting Java runtime to embedded system. You will find that RTOS is not a necessary requirement for porting Java.

Java Platform, Micro Edition (Java ME) provides a robust,flexible environment for applications running on mobile andother embedded devices—mobile phones, personal digitalassistants (PDAs), TV set-top boxes, and printers.

Using Java SE for Embedded enables you to develop highly functional, reliable, portable and secure applications for today's more powerful embedded systems.

JavaOS. The project is aimed at creating an Operating System using JAVA as the core language. Although this may sounda bit absurd, in the long run this project will definitely be successfully completed with the help of more members.

Page 22: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

22 din 41 16.05.2008 21:40

[70]

[71]

[73]

JX is a Java operating system that focuses on a flexible and robust operating system architecture. The JX system architecture consists of a set of Java components executing on the JX core that is responsible for system initialization, CPU context switching and low-level domain management. The Java code is organized in components which are loaded into domains, verified, and translated to native code. Main-stream operating systems and traditional microkernels base their protection mechanisms on MMU-provided address

space separation. Protection in JX is solely based on the type safety of the intermediate code, the Java bytecode.

Aplix Embedded Java. JBlend? meets these needs while providing a fast, compact and robust embedded software product that enables Java technology on resourceconstrained consumer devices. These reasons are whyJBlend? has been so successful.

[72]

Embedded PERC 2.2 Java-compliant environment (Newmonics).Aonix, a decades-long industry leader in real-time and safety critical tools, and pioneer in Java platform technologies, has brought together these two strengths to meet the needs of today's mission critical developers. As a participant in the Java Community Process and a key contributor to the development of standardized RTSJ profiles for hard real-time and safety critical

applications, Aonix is uniquely positioned to make this technology a reality.

simpleRTJ. A virtual machine with a small memory footprint aimed at embedded systems and real-time operating systems. Only a subset of Java is supported (e.g. no double type). The following processors are supported (according to the site): MC68302, MC68376/332, 68HC11, 68HC16, 8051, 8051XA, various ARM derivatives, H8S/2241, STi5512 (RISCset-top-box), DSP56300, and others. This is a commercial product. However, use of the VM is free for evaluation, educational and private use.

Page 23: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

23 din 41 16.05.2008 21:40

[74]

[76]

The TINI (Tiny InterNet Interface) platform is aimed at connecting devices from sensors to factory equipment to a network. The TINI virtual machine (for the TINI OS operating system) has a memory footprint of less than 40 KB. It offers only part of the runtime library: java.lang, java.io, java.net and java.util. The target chip is Dallas 8051 based iButton.

[75]

Jbed Micro Editon CLDC JVM (esmertec). The Jbed RTOS Package is a real-time capable Java Virtual Machine for embedded systems and Internet appliances. An entire application, including the device drivers, can be written in Java. Memory footprint starts at 10 KB. Runs on PowerPC 8xx, Motorola 68k family processors, ARM7TDMI, StrongArm and Coldfire. Intel and MIPS support are planned. Commercial. Demo

available for download.

Kaffe -- an open source Java implementation (Transvirtual Technologies)The GPL'd Kaffe virtual machine and its runtime library are a cleanroom implementation (no dependencies on Sun). There is a very impressive list of supported platforms: Embedded Linux, VxWorks, LynxOS, SMX, ThreadX, Linux (all distributions), DOS, Windows NT 4.0, Windows 98, Windows 2000, Windows CE, Solaris, SunOS, BSDI, FreeBSD, NetBSD, OSF/1, Unixware, HP-UX, NextStep, OpenStep. Supported processors include ix86,

Sparc, m68k, StrongARM, MIPS, Alpha, PowerPC and PARisc. Memory footprint is small, theVM can be used for embedded systems. The exact Java version is not specified, for a reference see the Kaffe Datasheet (PDF, 96 KB).KaffePC is a virtual machine for DOS, based on Kaffe.There is also a port of Kaffe to AtheOS (no AWT available).

Page 24: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

24 din 41 16.05.2008 21:40

[77]

[78]

[79]

[80]

VisualAge Micro Edition (IBM) These are runtime environments for embedded systems for Windows CE, QNX, Palm, Linux.

Waba -- an Open Source Java-like platform for small devices (Wabasoft)A subset of the Java programming language's syntax, class file format and virtual machine, Waba is designed for embedded systems. Waba programs can usually run on a Java Virtual machine, but not vice versa. The VMs are available for PalmPilot and Windows CE devices.

Wonka -- an open source embedded JVM & class library (ACUNIA)A clean-room implementation of a Java virtual machine for embedded devices, with emphasis on portability and efficiency. Available for Linux (x86 and ARM), distributed under a license similar to the GPL. The Acunia went out of the business. The link is talking about other sites for Wonka.

Google Android Mobile Phone Platform, most of the applications are developed upon Java VM with wider APIs.

Page 25: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

25 din 41 16.05.2008 21:40

[81]

[82]

[83]

Java for Lego RCX. leJOS is replacement firmware for the Lego Mindstorms RCX brick - a JVM that fits within the 32kb on the RCX. Yes, you can program a Lego robot with Java!Resources

The source for Java Technology Collabration from Java.net.

This page from java-virtual-machine.net is supposed to give an overview of Java virtual machines (JVMs), Java development kits (JDKs), Java runtime environments (JREs) and related products.

06 Multi-Core OS

Most multiprocessing systems can be classified as either symmetric multiprocessing (SMP) orasymmetric multiprocessing (AMP). AMP involves the use of interprocessor communication tocombine the efforts of multiple processors, each with its own local operating system and hardware resources. Also, AMP involves less OS overhead for each individual processor and a more traditional execution environment for applications. AMP seems like distributed system.The number of peripherals that are supported in today's multicore processors is quickly increasing. Symmetric-multiprocessing (SMP) software is expected to be quickly available to support these peripherals. Basically any OS can be ported to a SMP platform, but the developers must take care of following issues for SMP OS.

- Handling of task priority or implicit synchronization- Spinlocks and synchronization- Synchronization between tasks sharing memory- Synchronization between tasks and ISRs sharing memory- Synchronization between ISRs sharing memory

Page 26: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

26 din 41 16.05.2008 21:40

[84]

[85]

[86]

[87]

RTEMS (Real-Time Executive for Multiprocessor Systems) is a commercial grade real-time operating system designed for deeply embedded systems. It is a free open source solution that supports multi-processor systems. RTEMS is designed to support applications with the most stringent real-time requirements while being compatible with open standards.

Symbian Limited announced Symbian OS support for the ARM Symmetric Multi-processor (SMP) architecture. SMP support in future versions of Symbian OS will use multiple CPU cores to provide ;performance on demand - battery life will be improved by accessing cores only when running demanding high-end multimedia applications and powering them down when they are not in use. Symbian and ARM are working together closely on supporting Cortex-A9 MPCore multicore processor-based CPUs in Symbian OS.

The eT-Kernel Multi-Core Edition is a realtime OS for next-generation embedded systems with multicore. It is ideal for high performance embedded systems such as digital home appliances, automobile devices, and mobile devices. This realtime OS is loaded with features specific to multicore software development making the technology accessible even for first-time users.

New Express Logic ThreadX/SMP RTOS Facilitates Development on ADI's dual-core Symmetric Multi-Processing (SMP) Blackfin family.

Page 27: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

27 din 41 16.05.2008 21:40

[88]

[89]

[90]

[91]

Altera Japan, Ltd. in conjunction with A.I. Corporation, an embedded software distributor and the TOPPERS Project, anonprofit organization, announced today the immediateavailability of TOPPERS-Pro Multi/FDMP, afunction-distributed real-time operating system (RTOS) thatprovides multiprocessor support for Altera’s Nios® IIembedded processor, the world’s most widely usedconfigurable soft-core processor. Targeted at a wide varietyof applications in the digital consumer, office equipment and

automotive markets, this embedded solution addresses the performance, power consumptionand radio noise emission requirements of today’s advanced systems.

PolyCore Software touches every software aspect of a multi- core system below theapplication.

Resources

An article for multicore SMP OS development

Using an symmetric multiprocessor model to build hybrid multicore designs.

Page 28: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

28 din 41 16.05.2008 21:40

[92]

[93]

[94]

[95]

Multicore Association.

07 DSP oriented OS

DSPOS, Motorola 56800E DSPs, StarCore, BlackFin DSPs, ARM7/9, features VoIP reference design and Unicoi FusionSuite.

DSPnano, RoewBots' OS for PIC24, dsPIC30, dsPIC33. A signal processing operating system intended for small signal processors and small DSP networks. Offers an IDE, Compilers, Debuggers, nano-kernel, I/O, and DSP.

EFOS, from Vinjey, an embedded software solution and services company.

Page 29: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

29 din 41 16.05.2008 21:40

[96]

[97]

DSP/BIOS from TI provides a rich set of deterministic kernel services that enable developers to create sophisticated applications without compromising real-time deadlines. DSP/BIOS is highly scalable with multithreading configurations requiring as few as 1K words. The kernel services may be invoked through either a C function or an assembly language macro interface.

Blackfin Processor OS from ADI site. You can see a lot of well-known RTOSes have already ported to BlackfinDSP/RISC chip.

08 Middleware

What is middleware?

Middleware is the enabling technology of Enterprise application integration. It describes a piece of software that connects two or more software applications, allowing them to exchangedata. Originally middleware is a word for large scale enterprise computing application.

In embedded system, middleware is the software components running on top of operation system and offering services for applications. Embedded system is dedicated for a special prupose, therefore different embedded systems have different middleware components. Meanwhile, middleware has close relationship with the operation systems. Most of the middleware is tailor-made for specific OS.

For example, uC/OS-II is popular in embedded applications. This OS has many middleware for embedded systems, such as uC/TCP-IP, uC/FS, uC/GUI, uC/USB-device, uC/USB-host, uC/FL, uC/Modbus, uC/CAN, uC/Probe and uC/BuildingBlocks, its OS components tool.

I don't want to duplicate all middleware suites for mentioned OSes individually. I only list some important open source middleware for your reference.

GUI

Page 30: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

30 din 41 16.05.2008 21:40

[98]

[99]

[100]

[101]

Embedded Wizard (EmWi) is a PC tool for developing and prototyping platform independent Graphical User Interfaces (GUI) for embedded systems, consumer electronic devices, automotive and industry appliances.It's sophisticated and user-friendly authoring tool facilitates the design of the GUI appearance as well as the coding of theGUI behavior. It can solve almost any given 2D GUI task and enables you to develop, customize and adapt your GUI across various product platforms with minimum effort.

Meanwhile Tara Systems also offers middleware like DBS/EPG/Service Manager/Subtitle Decoder/Teletext Decoder/Close Caption/HTML 3.2 Browser for embedded visual systems.

MiniGUI is a cross-operating-system graphics user interface support system for embedded devices, and is an embedded graphics middleware. It aims to provide a compact, fast, stable, lightweight, and cross-OS GUI support system, which is especially fit for real-time embedded systems based-on Linux/uClinux, eCos, uC/OS-II, and other traditional RTOSes,such as VxWorks, ThreadX, and Nucleus.

PicoGUI is an Open Source project to create a new GUI architecture designed to be usable on systems ranging from embedded to desktops.

QT Embedded and QPE (Qt Palmtop Environment) for Palm size handheld device from Trolltech.

Page 31: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

31 din 41 16.05.2008 21:40

[102]

[103]

[104]

[105]

Microwindows/Nano-X. The Nano-X Window System is an Open Source project aimed at bringing the features of modern graphical windowing environments to smaller devices and platforms. Nano-X allows applications to be builtand tested on the Linux desktop, as well as cross-compiled for the target device. The Nano-X Window System waspreviously named Microwindows, but has been renamed dueto conflicts with Microsoft's Windows trademark.

File System

Most of the embedded File systems are ported from Linux distribution. Other file systems are tailor-made for specific RTOS.

ScalingWeb is a software development team based in Ukraine. Embedded File System (EFS) is a library that allowsyou to create virtual file system in a single file. It can be useful when you need to create really big number of small files. It will still be blazing fast even when you have millions of files. Encryption layer could be easily added if you want security.

The Prex project is an open source initiative to provide a portable real-time operating system for embedded systems. Prex is designed specifically for small memory footprint platforms. It is written mainly in C language based on traditional microkernel architecture. File system is availale for download as well.

USB

HCC embedded offers storage solution for embedded systems. From flash file system to USB desive and host.

Page 32: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

32 din 41 16.05.2008 21:40

[106]

[107]

[108]

libusb-win32 is an open-source driver library that enables Windows applications to access USB devices (underdevelopment).

PORUS, Portable USB Periperal Stack, an open source USBstack for TMS320VC5507 DSP.

TCP/IP

It is interesting to know there are two TCP/IP stacks for embedded systems available from Swedish Institute of Computer Science.

The open-source uIP TCP/IP stack provides TCP/IP connectivity to tiny embedded 8-bit microcontrollers, with maintained interoperability and RFC standards compliance. uIP was developed by Adam Dunkels of the Networked Embedded Systems group at the Swedish Institute of Computer Science but is further developed by a world-wide team of developers.

Page 33: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

33 din 41 16.05.2008 21:40

[109]

[110]

[111]

[112]

lwIP is a light-weight implementation of the TCP/IP protocol suite that was originally written by Adam Dunkels of the Swedish Institute of Computer Science but now is being actively developed by a team of developers distributed world-wide headed by Leon Woestenberg.

uC/IP (pronounced mew-kip) is a project to develop a TCP/IP protocol stack for microcontrollers. The code is based on BSD code and therefore carries the BSD licence. We do not require that you contribute changes back to us but we would sure appreciate it.

A small implementation of TCP/IP, includes FTP client. It hasbeen ported to 68K, x86, 8051.

Database System

Metakit is an efficient embedded database library with a small footprint. It fills the gap between flat-file, relational, object-oriented, and tree-structured databases, supporting relational joins, serialization, nested structures, and instant schema evolution. There is a C++ API, a Python binding called Mk4py, and a Tcl binding called Mk4tcl. You can manipulate and exchange data between any of these.

Others

Page 34: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

34 din 41 16.05.2008 21:40

[113]

[114]

[115]

[116]

ezHomeTech SoC Software Platform

Rockbox is an open source firmware for MP3 players.

Mozilla Developer Center, developer can find source for JavaScript and XUL for system scripting and UI design. JavaScript is powerful in embedded systems as well. Although most of the embedded systems have not used that feature so far.

09 Resources

This open courseware from MIT provides an overview ofrobot mechanisms, dynamics, and intelligent controls. Topicsinclude planar and spatial kinematics, and motion planning; mechanism design for manipulators and mobile robots, multi-rigid-body dynamics, 3D graphic simulation; control design, actuators, and sensors; wireless networking, task modeling, human-machine interface, and embedded software. Weekly laboratories provide experience with servo drives, real-time control, and embedded software.

Page 35: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

35 din 41 16.05.2008 21:40

[117]

The Femto OS is a very concise portable preemptiveoperating system (RTOS) for embedded devices with minimal ram and flash, up to say 16K flash, 1K ram. The main target is the AVR architecture, such as the ATtiny861/461/261 series. But the system is written in C witha separate port file.

SlideShare

[118] | View [119] | Upload your own [120]

Page 36: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

36 din 41 16.05.2008 21:40

[118] | View [122] | Upload your own [120]

Video Resources

This example shows the Femto OS without additional tasks (only idle process).

Page 37: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

37 din 41 16.05.2008 21:40

This is a simple GUI written in C without a RTOS ( WinCE, Linux, .. ). The entire GUI library isless then 32K of code. Written for the FreeScale iMXS.

Video from the European research project RUNES http://www.ist-runes.org/ [123] showing a road fire incident in 2012 where embedded wireless sensor network technology assists the rescue mission. Really nice video, you can check out the video list of the uploader, you will see some people who are really famous in open source embedded world. Such as the founders of uIP/LwIP......

10 Copyright and Legal Issues

As the popularity of GPL and other open source licenses, legal issues are always making noise along with the growing of embedded systems. To be frank, I am not familiar with this

Page 38: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

38 din 41 16.05.2008 21:40

[124]

[125]

[126]

[127]

topic. I collection some resources for your references. In case you have any questions about it, you'd better to consult a lawyer for intelligent properties.

A Legal Issues Primer for Open Source and Free Software Projects, from Software Freedom Law Center.

What License to Use? from O'Reilly book of Open Sources: Voices from the Open Source Revolution.

Why you should use a BSD-style license.

GNU GPL

Page 39: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

39 din 41 16.05.2008 21:40

[128]

[130]

Mozilla Code Licensing

[129]

BSD licese

Micrium uC/OS-II License, free for educational purpose. Not free for commercial purpose.

Trademarks

Source URL: http://dev.emcelettronica.com/embedded-os

Links:[1] http://en.wikipedia.org/wiki/Category:Embedded_systems[2] http://electronicdesign.com/HotSpot/Index.cfm?AD=1&HotSpotUrl=embedded"target="_blank[3] http://www.embedded.com/1999/9903/9903sr.htm"target="_blank[4] http://pdn.palm.com/regac/pdn/index.jsp[5] http://www.symbian.com/developer/index.html[6] http://www.cmx.com/[7] http://www.quadros.com/[8] http://www.ghs.com/products.html[9] http://www.keil.com/rtos/[10] http://www.kadak.com/html/indexamx.htm

Page 40: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

40 din 41 16.05.2008 21:40

[11] http://www.segger.com/embos.html[12] http://www.tenasys.com/products/irmx.php[13] http://www.mentor.com/products/embedded_software/nucleus_rtos/[14] http://www.microware.com/[15] http://www.enea.com/templates/Extension____12767.aspx[16] http://www.windriver.com/[17] http://www.phoenix-rtos.org/[18] http://www.qnx.com/[19] http://www.pumpkininc.com/[20] http://www.rtos.com/txtech.asp[21] http://www.mentor.com/products/[22] http://www.shift-right.com/xmk/xmk/overview.htm[23] http://www.osek-vdx.org/[24] http://www.sakamura-lab.org/TRON/[25] http://www.freertos.org/[26] http://www.micrium.com/[27] http://www.embeddedartists.com/[28] http://www.tinyos.net/[29] http://ecos.sourceware.org/[30] http://ecos.sourceware.org/hardware.html[31] http://www.ethernut.de/en/software/index.html[32] http://www.barello.net/avrx/[33] http://www.uclinux.org/[34] http://www.arm.linux.org.uk/developer/[35] http://www.timesys.com/"target="_blank[36] http://www.redhat.com/services/focus/embedded/[37] http://www.lynuxworks.com/embedded-linux/embedded-linux.php[38] http://www.mvista.com/[39] http://www.emdebian.org/[40] http://www.lineo.co.jp/eng/index.html[41] http://emknoppix.sarovar.org/[42] http://picolinux.sourceforge.net/[43] http://www.geexbox.org/en/index.html[44] http://www.lynuxworks.com/[45] https://www.rtai.org/[46] http://code.google.com/android/what-is-android.html[47] http://www.embeddedfreebsd.org/[48] http://www.netbsd.org/Misc/embed.html[49] http://freshmeat.net/projects/polybsd/[50] http://www.kernel-panic.it/openbsd/embedded/"target="_blank[51] http://developer.apple.com/macosx/[52] http://www.celinuxforum.org/[53] http://www.microsoft.com/windows/embedded/[54] http://www.microsoft.com/windows/embedded/eval/wince/default.mspx[55] http://www.microsoft.com/windows/embedded/eval/xpe/default.mspx[56] http://www.microsoft.com/windows/embedded/wepos/default.mspx[57] http://www.microsoft.com/windows/embedded/eval/vista/default.mspx[58] http://www.microsoft.com/windowsautomotive/wa5/default.mspx[59] http://www.microsoft.com/windowsautomotive/ma/default.mspx[60] http://media.ford.com/article_display.cfm?article_id=25169[61] http://www.drdos.com/[62] http://www.on-time.com/[63] http://www.jkmicro.com/downloads/downloads.html[64] http://www.ertos.com/"target="_blank[65] http://www.2net.co.uk/dos.html"target="_blank[66] http://www.jungo.com/st/win_ce.html[67] http://java.sun.com/javame/index.jsp[68] http://java.sun.com/javase/embedded/[69] https://javaos.dev.java.net/[70] http://www4.informatik.uni-erlangen.de/Projects/JX/[71] http://www.aplixcorp.com/en/products/jb_series/overview.html[72] http://www.aonix.com/perc.html"target="_blank

Page 41: Embedded Os [Linux & Co.]

http://dev.emcelettronica.com/print/book/export/html/51676

41 din 41 16.05.2008 21:40

[73] http://www.rtjcom.com[74] http://www.ibutton.com/TINI/[75] http://www.jbed.com/"target="_blank[76] http://www.kaffe.org[77] http://www-4.ibm.com/software/ad/embedded/[78] http://www.wabasoft.com/[79] http://www.javalobby.org/forums/thread.jspa?threadID=15960[80] http://code.google.com/android/intro/index.html[81] http://lejos.sourceforge.net/[82] https://embeddedjava.dev.java.net/[83] http://java-virtual-machine.net/other.html[84] http://www.rtems.com/wiki/index.php/RTEMSFeatures[85] http://www.symbian-freak.com/news/007/10/symbian_and_arm_cooperate.htm[86] http://www.esol.co.jp/english/embedded/et-kernel_multicore-edition.html[87] http://www.rtos.com/news/detail/?prid=79[88] http://www.toppers.jp/en/index.html[89] http://www.polycoresoftware.com/[90] http://www.embeddedintel.com/special_features.php?feature=240[91] http://www.embedded.com/columns/technicalinsights/173402824?_requestid=278602[92] http://www.multicore-association.org/[93] http://www.dspos.com/[94] http://www.rowebots.com/[95] http://www.vinjey.com/index.html[96] http://focus.ti.com/docs/toolsw/folders/print/dspbios.html[97] http://www.analog.com/processors/blackfin/gettingStarted/operatingSystems/index.html[98] http://www.tara-systems.de/emwi/index.html[99] http://www.minigui.org/[100] http://picogui.org/[101] http://www.trolltech.com/[102] http://microwindows.org/[103] http://www.scalingweb.com/embedded_file_system.php[104] http://prex.sourceforge.net/index.html[105] http://www.hcc-embedded.com/site.php?mid=120[106] http://libusb-win32.sourceforge.net/[107] http://porus.berlios.de/[108] http://www.sics.se/~adam/uip/index.php/Main_Page[109] http://www.sics.se/~adam/lwip/[110] http://ucip.sourceforge.net/[111] http://www.unusualresearch.com/tinytcp/tinytcp.htm[112] http://www.equi4.com/metakit/[113] http://www.ezhometech.com/software_ssp.htm[114] http://www.rockbox.org/[115] http://developer.mozilla.org/en/docs/Main_Page[116] http://ocw.mit.edu/OcwWeb/Mechanical-Engineering/2-12Fall-2005/CourseHome/index.htm[117] http://www.femtoos.org/index.html[118] http://www.slideshare.net/?src=embed[119] http://www.slideshare.net/allankliu/lecture24-multiprocessor?src=embed[120] http://www.slideshare.net/upload?src=embed[121] http://www.slideshare.net/allankliu/mp-os-survey?src=embed[122] http://www.slideshare.net/allankliu/embedded-systems-design-embedded?src=embed[123] http://www.ist-runes.org/[124] http://www.softwarefreedom.org/resources/2008/foss-primer.html[125] http://www.oreilly.com/catalog/opensources/book/brian.html[126] http://alumni.cse.ucsc.edu/~brucem/open_source_license.htm[127] http://www.gnu.org/licenses/gpl.html[128] http://www.mozilla.org/MPL/[129] http://www.freebsd.org/copyright/license.html[130] http://www.micrium.com/products/rtos/kernel/licensing.html