You are currently browsing the tag archive for the ‘real-time’ tag.

Embedded systems have been around practically as long as computer systems have been around, simply by definition.  A computer system is embedded if it is designed around a single task, however complex, and engineered to those specifications as far as performance, hardware, and software are concerned.  A network-enabled HD television is an embedded system, as is an iPod, a cellular phone, or any of the myriad of computers that run a modern automobile (or of the hundreds that might run a commercial jet or spacecraft).  This is in opposition to “general purpose” computers, such as desktop or laptop PCs.  The line gets fuzzy around smartphones, servers, and other machines that are capable of multiple complex tasks, often simultaneously, yet still meet the definition of being engineered for a specific purpose.

Hair-splitting aside, embedded systems as a class of devices have a few things in common which are of great interest to computer engineers.  The most important of these is customization.  Software is a component in a larger overall system, and when the requirements of that system (and the hardware) is strictly defined, or changes during the project as often happens, the software must be able to easily change with it.  Software should not be a limiting factor in system design if at all possible.

This is where embedded Linux, and open-source in general, becomes interesting to system designers.  Linux is not only customizable, it is locally customizable.  You can operate on your own copy.  If you don’t like what it does, you can change the source code, create new components, or search (in places like, among others) the thousands of projects already created and shared by other people.   Collaboration, rather than competition, has become a tremendous positive force in embedded device engineering.

This entire idea is in direct competition with the paradigm of proprietary software.  “Closed” systems offer nothing with this level of potential customization and control.  There is a price to freedom, of course—the ramp-up cost of learning a new system, of course, and the lack of a responsible party to blame if something turns out differently from expectations.  The first is on par with (or, frankly, often easier than) the same ramp-up with proprietary systems, and the second can be mitigated by hiring someone to take the blame.  There are now several large players in the embedded Linux marketplace offering support and customization (full disclosure: I work for one), and most offer legal indemnification.  All of the commercial providers currently offer royalty-free operating systems, and in the embedded world, that cost difference can mean the difference between success and failure.

And none of the business-level decisions above even approach the quality differences.  Linux has been recognized in all embedded sectors as being equal to—or superior to—traditional proprietary embedded operating systems.  It helps to have thousands of motivatd developers working on your project for free.

Given all of this, embedded Linux has become interesting because of the cost and quality advantages it has.  But why now?  Why was embedded Linux not so popular ten years ago?

The answer is partly that the scalability of Linux was really first being explored as the kernel itself was maturing.  Ten years ago, Linux was only about 8 years old, and many capabilities simply had not yet been developed.  One was in process, though, and that is real-time support, which is key to many commercial embedded systems.  Real-time support has progressed from 1997, when the first real-time patches were being introduced, through 1999, when the first embedded Linux support company (MontaVista Software—my employer) came into existence, through sucess and regression in the early 2000s, until now.

At this point in history (early 2009), embedded Linux is on par performance-wise with most traditional real-time operating systems.  It is also far more scalable than the proprietary RTOSes, and is exploding in growth in diverse sectors, from servers to cell phones to automotive and space systems to dedicated consumer devices.  Many pundits and market analysts consider Linux in general to be the strongest sector in software engineering, period.

The fastest-growing segment in computer engineerng five years ago was servers, the machines that deliver the data.  Today, that title appears to have been taken by consumer devices, consumers of that service, and the fastest-growing in this arena are mobile internet devices (MIDs), netbooks, and smartphones.  Embedded Linux is poised as a leader in all of these niches.   Businesses have caught on, and tipping points have been reached.

In other words, embedded Linux is suddenly interesting because it is highly customizable, royalty-free, and good, and has been becoming so for a long time.   And it is getting better at a logarithmic rate.  That sure makes it interesting to me.

Want to learn more about embedded Linux?  Join us in the Meld community.

Webinars, seminars held over the Internet, are a great way to attend a very directed class on a specific subject without leaving your desk.   I love these things because they are rarely longer than an hour, and they are usually cached so you can go back and watch them anytime if you miss the original presentation, or if you want to catch something you missed.

This week, MontaVista‘s Klaas van Gend gave an excellent presentation addressing the top 5 pains in Linux system build and design.  The webinar is already archived on MontaVista’s site, along with many other interesting presentations.

Coming up from TimeSys is a 4-part series on basic embedded Linux skills (thanks to LinuxDevices for the news).

Some webinars are a little more commercial, though still informative, like Wind River‘s Mike Deliman  exploring RTOS design for space robotics from July 2008.  I have a personal interest in this one, as I worked at Wind River in 1996 and 1997, when VxWorks became the first RTOS on a different planet—a heady time for humanity, and for embedded systems as well.  RIP, Sojourner.

Also be sure to check websites after important conferences, like CELF’s Embedded Linux Conference or MontaVista’s Vision 2008.  These sites usually catalog at least the slides from most or all sessions, if not video recordings of the actual presentations.

Take advantage of these offerings.  It’s like going to college for free, or at least going to a conference for free (without the travel or the shwag and shmoozing).  And don’t forget to look for other free training materials, including documentation, white papers, and even events.  This is one way these loose “communities” feed back into the public sphere, which benefits everyone involved.

The Real-Time & Embedded Computing Conference happened this week in Santa Clara, with a panel of celebrities discussing 10 years of embedded Linux. Yours truly couldn’t make it, but luckily there was excellent reporting on this micro-conference from Device Guru Rick Lehrbaum. Thanks, Rick!

Update:  RTECC has issued a press release [PDF] about the conference.  MontaVista won an award for the best sales presence.