Latest News
|Newsletter
| AT A GLANCE |
|---|
|
| A - X of Linux | |
|---|---|
| A | Android |
| B | Broadcom and LiMo |
| C | Carrier Grade Linux |
| D | Driving automotive |
| E | Ericsson 3G |
| F | Free software embedded |
| G | Google G1 |
| H | How to migrate |
| I | Intel |
| J | Jumping on board |
| L | Luminary Micro |
| M | Mobile Linux |
| N | Nokia does battle |
| O | Open Source engineering |
| P | Power shift |
| Q | Qualcomm |
| R | RTOS versus Linux |
| S | Stallman |
| T | Tivo-isation |
| U | UK radio mapping |
| V | VirtualLogix VLX |
| W | 2 Watt green PC |
| X | Xilinx adds Linux |
|
| |
In general, open-source software is not in the public domain, and you must adhere to the rules that individual licenses set forth as a condition for use. The OSI (Open Source Initiative) maintains the complete text for more than 20 open-source-standard licenses that serve the community. As an example, Linux is licensed under the popular GNU GPL (general-public license) with detailed requirements for its use. If you modify and distribute GPL software, your modifications automatically fall under the GPL, and you must give the source code to anyone who asks for it.
Although many embedded-system developers shy away from Linux because they worry that they may have to reveal the source code to their proprietary software, your application programs and device drivers may remain private as long as they are separate and distinct from the Linux kernel and contain no GPL code. This code isolation is a constant source of anxiety among developers, especially those who develop small-footprint embedded systems in which all software links together in a single ROM image. Even with these restrictions, you can download a free copy of Linux, adapt it to your product, and sell as many copies as you want without paying royalties.
Free tools
Development tools, such as the GNU-compiler collection and the GNU debugger, support most open-source-software packages. These tools are adequate for source-code modifications but lack the bells and whistles of a commercial environment.
To provide an easy-to-use IDE (integrated-development environment) like those that come with proprietary operating systems, several tool vendors and the open-source community have integrated their offerings into the graphical, open-source Eclipse platform. The IDE simplifies tool integration and execution using a plug-in architecture that allows users to easily create custom Eclipse configurations, because everything other than a small runtime kernel is a plug-in.
To simplify the multitude of modifications and additions to the tool set, the Eclipse Foundation has combined product updates into an annual release package. This year’s release, Ganymede, features 23 projects, including new development environments for Java and JavaScript, modeling tools, a service-oriented architecture designer, runtime projects, and a new installer to coordinate updates. You can download several Ganymede package variations along with the source code from the Eclipse Foundation website.
Although standard Linux is by far the most popular open-source operating system, it may not fit some embedded-system applications. Linux is a general-purpose operating system and includes a huge code base that users must tune to the hardware and requirements of their embedded devices.
Most Linux distributions support a variety of architectures and protocols but require as a minimum a 32-bit processor, 2 Mbytes of RAM, and 1 Mbyte of ROM. To reduce these resource requirements, the Embedded Linux/Microcontroller Project developed the µClinux (microcontroller-Linux) derivative of the Linux kernel for microcontrollers without MMUs (memory-management units). The µClinux kernel supports a variety of microcontrollers, including many from ARM, MIPS, and Freescale, along with Analog Devices’ BlackFin, Intel’s i960, and Hitachi’s H8 processors.
You can find a complete list of supported processors, detailed tutorials, and source code at the µClinux website. NetBSD (Berkeley-software distribution), another open-source operating system, has gained some traction with embedded-system developers. NetBSD is a free, secure, and portable open-source version of the BSD computer operating system, a derivative of Unix. The NetBSD kernel requires a processor with an MMU and consumes resources similar to those of standard Linux. The BSD license is more liberal than that of GPL, allowing developers to retain proprietary code.
Deterministic response to real-time inputs is another important issue for embedded systems. Although the latest version includes a rewritten process-scheduler algorithm to speed task switching in multitasking applications, Linux may not be the operating system of choice for real-time projects. A better open-source, royalty-free choice for embedded applications with both limited resources and real-time requirements is the eCos (embedded configurable operating system), which RedHat software originally released.
It targets devices with a memory size of a few hundred kilobytes and runs on processors from a variety of vendors, including ARM, Hitachi, Motorola, MIPS, NEC, and PowerPC. The eCos license is a slight modification of the GPL and does not require users to release application source code. It also prevents any user from making a few small improvements, calling the result a completely new system, and releasing this system under a different license.
Mobile wars
The hottest news in the open-source-software market is the ongoing battle over portable operating systems for platforms such as smartphones and mobile Internet devices. Late in 2007, Google and more than 30 partners announced plans for the Android mobile platform, an open-source-software stack for mobile devices that includes a Linux-based operating system, middleware, and key applications. The Open Handset Alliance will manage the source code for the complete package and will release it when Version 1.0 is complete.
Taiwan’s HTC Corp is working on an Android-based handset and expects to release it in the fourth quarter of 2008. With its announcement, Google also launched the Android Developer Challenge, which will provide $10 million in awards to mobile-system applications using the Android platform. Winning applications from the already completed first phase included a range of subjects, such as communications, social networking, music, and information delivery. You can download the software-developer kit and device emulator from Google’s Android-documentation website (Figure 2).
The LiMo (Linux Mobile) Foundation provides another open-source-smartphone platform as an alternative to Android. LiMo’s goal is to supply a “truly open, hardware-independent, Linux-based operating system for mobile devices.” Although the foundation released Version 1.0 this year, it postponed the release of full multimedia and portability features until 2009. LiMo’s focus is on creating middleware for device manufacturers and publishing the APIs (application-programming interfaces) for application developers (Figure 3).
Several handset manufacturers, including Panasonic, Motorola, and NEC, have adopted the LiMo operating system. Lending support to the platform, the LiPS (Linux Phone Standards) Forum and mobile-carrier Verizon recently joined forces with LiMo. Although the LiMo Foundation touts the operating system as an open-source platform, you must be a paid member of the foundation to access the code base.
In other recent news that may rattle both the Android and LiMo camps, several large cell-phone manufacturers, including Nokia, Sony Ericsson, and Motorola, announced that they will combine their fragmented Symbian operating systems into one open-source platform. Although to date the operating system is not in wide use in the United States, there are thousands of Symbian-application developers worldwide. With AT&T, Samsung Electronics, Texas Instruments, and STMicroelectronics among its members, the Symbian Foundation promises to be a formidable competitor in the emerging open-source-mobile-system battleground.
As embedded devices continue to grow in complexity, the software-development task has become the largest element of a typical project budget. Graphical interfaces, network protocols, and data security are just a few of the new requirements that design teams can find as additions to their custom application software. A mounting number of designers are turning to royalty-free, open-source platforms with these and other features built-in. In fact, millions of lines of free-to-download software are available on the Internet to support every type of embedded-system-development project. As soon as the bulk of designers get past the collective learning curve and shape in-house expertise, open-source software could become the foundation of the embedded-system industry.
For more information
Related articles
For more on Linux and the consumer-electronics revolution, go to "Linux joins the consumer-electronics revolution."
To read more about real-time embedded Linux, visit "Embedded Linux nears real time."
By Warren Webb, Technical Editor -- EDN, 8/7/2008