Welcome to the Intel® Software Dispatch Subscription Program

Embedded development - QNX or Linux?
Embedded Real Time Operating System Design: Linux and QNX gained notoriety because of the obvious potential for both as the operating systems and development platforms for Web appliances. Linux had mostly been used as a server OS and QNX mainly as an industrial embedded real time operating system (RTOS). Linux and QNX can be used for developing smaller, more capable portable devices. This paper will brief you the embedded development capabilities of Linux and QNX for real time operating system design.

by Thomas W. Burger. Intel Corp.

In the late 1990s, the Web appliance was touted as the next "big thing," a new device for an emerging market that would create a next generation of consumer IT giants. At the Consumer Electronics Show in Las Vegas, Nevada and the QNX 2000 International Technology Conference in Vancouver, British Columbia many vendors, large and small, showed off multiple visions of the future.

Intel built a Web appliance based on Linux. Microsoft partners made Web Companions based on a scaled down version of the Windows CE operating system. Many others, like 3Com's prototype and the Netpliance iOpener, were based on QNX. At that time Web appliances seemed the likely next step in consumer electronics. Simpler than PCs, they also offered far less functionality. At best they could be considered, as Ken Kalinoski, VP of development at Netpliance called it, a "Rich Client" device that required a dedicated and proprietary server to connect to. The subsequent lack of Web appliances on the shelves of Best Buy and Walmart showed that consumers did not want an appliance that could browse the Web and perform simple email tasks but could not do even simple word processing or store data. Web devices were being sold at less than cost in anticipation of service revenues that never came. Consumers also did not like the idea of being tied to a specific service provider.

Linux and QNX gained notoriety because of the obvious potential for both as the operating systems and development platforms for Web appliances. Linux had mostly been used as a server OS and QNX mainly as an industrial embedded Real Time Operating System (RTOS). To exploit this new market, many developers discovered the capabilities of Linux and QNX in developing smaller, more capable portable devices.

In hindsight, the Web appliance was an idea ahead of technology. There was the software and engineering talent available to produce these devices, but not the hardware and infrastructure to allow the functionality, versatility, and portability required to make the Web appliance the new must-have tech-toy. Advances in cell phone and PDA technology, improvements to digital cameras, lower power requirements, and greater memory capacities, far greater embedded/mobile CPU speeds, and, possibly the most important factor, 802.11b and 802.11g WiFi wireless networking has the Web appliance resurrected as a multifunction device. This combines a computer, organizer, office software suite, cell phone, camera (still and movie), pager, music player, and, of course, email system and Web browser into a single wireless unit that fits in a pocket.

Four years later, an eternity in technology terms, we are on the verge of a new "Next Big Thing." Advances in hardware and in-place wireless and service infrastructure for the already enormous PDA and Internet capable cellphone market has created a great demand for devices that can do more, are more compact and have longer battery life. This has renewed interest in embedded development platforms that can provide the requirements necessary to compete in a market that is worth billions of dollars.

This is where the design similarities end. Linus Torvalds designed Linux to run on a standard PC hardware as a generalized OS using a monolithic kernel architecture. The kernel contains almost all of the functionality of the entire OS. In contrast QNX was designed to be extremely modular and scalable. QNX is a realtime operating system based on a microkernel—small enough to be embedded on a chip but capable of running a workstation or a large networked server system.

Linux for embedded development
Designers of embedded systems have long used the Linux operating system, because of its robustness, relative compactness, versatility, low cost, and open source licensing model. Linux lets the designer leverage a large pool of developers, a rich legacy of source code, and industry-standard Portable Operating System Interface (POSIX) APIs.

The standard Linux kernel does not have realtime capabilities (predictable response times and microsecond latencies, often referred to as deterministic behavior) that many embedded systems demand such as fly-by-wire controls, ABS braking systems, continuous media, and medical devices. But Linux can be used as is in consumer devices that are not subject to deterministic issues. In order to provide for the requirements of embedded devices now being developed, where more predictable speed and timing behaviors are required, several Linux products have emerged.


If you're interested in this topic, these articles may be helpful:

Porting Unix/Linux applications to Mac OS X
Apple Inc. This guide helps developers bring applications written...
Intel® VTune™ Performance Analyzer Version 3.0 for Linux*
Identify lines of code that use excessive resources, remove performanc...
Intel® Fortran Compiler 8.1 for Linux
Deliver outstanding performance on single and multiprocessor computers...
Embedded RTOS Consolidation - Finally?
The battle lines are getting clearer these days on the embedded device...
Intel® C++ Compiler for Linux
Gain optimal performance from your Linux* applications running on the ...

Related Jobs:

Software Engineer V #761645 - MA - Boxborough - Cisco Systems, Inc.
Description Software technical lead position for next generation car...
Software Engineer #N00002 - TX - Richardson - Fujitsu Computer Systems Corporation
Software Engineer Fujitsu America, Inc. - www.fai.fujitsu.com Rich...
C/C++ Embedded Software/Firmware Engineer - IL - Glen Ellyn - SSI Embedded Systems Programming
Full-time Permanent Job Description: From written specifications, th...
Sr. Software Engineer / Developer #CA2986 - CA - Camarillo - Vitesse Semiconductor Corporation
BSCS; 7 to 10 years experience with embedded software development. Mus...
Installation Technician I #576 - MO - Monnet - Jack Henry & Associates
Position Summary: PassPort.pro Installation Technician is responsibl...
Software Development Engineer in Test #150999 - CA - Mountain View - Microsoft Corporation
If you are interested in shipping great, high quality software to make...
Data Networking Software Engineer #962 - CA - Milpitas - PalmOne, Inc.
Data Networking Software Engineer Job code: 962 Job Category: Engine...
Quality Assurance Analyst I (PassPort) #758 - MO - Monnet - Jack Henry & Associates
Position Summary: Assuring quality of the PassPort product (primaril...
Software Engineer Staff #04-031 - CA - Fremont - Mattson Technology, Inc.
Job Description : This position develops the next generation software ...
Solutions Architect/Systems Engineer (Computer Solutions) #4187 - CA - Santa Clara - Arrow Electronics, Inc.
Arrow Electronics, Inc., a Fortune 500 company (ranking: 209), is ...