growth of commercial real-time operating systems (RTOSes) has enabled the
revolution we've all enjoyed in snazzy leading-edge consumer electronics
products, informative and entertaining automotive electronics and
sophisticated, life-saving medical devices. Leading manufacturers like HP,
Casio, Sharp, Sony, Bose, Philips and Welch Allyn are enhancing our quality of
life with product after product that use modern commercial microprocessor and
Years ago, such products were less
common and often ill-fated, as the electronics industry – particularly the
software sector – tinkered with home-grown solutions and do-it-yourself (DIY) development
tools. The result was unreliable products, overdue development schedules and
costly staffing that reinvented the wheel over and over again.
Fortunately, over the last 20 years,
software development has made dramatic advances that have skyrocketed
productivity and propelled the electronics industry into a key role in everyday
life. Paramount among these advances are the tools available today for software
developers that enable them to be much more productive than in the "dark ages," during
which they routinely crafted the tools and software they used in the products
they were building. Since the early '90s, managers would be fired if they
endorsed do-it-yourself development for software or hardware that could be
purchased off-the-shelf for less cost and significantly less resource
consumption. In today's economy where development costs are under such close
scrutiny and project schedules are more and more demanding, DIY development is
even more a thing of the past.
Despite this advancement in thinking
with respect to software development tools, embedded developers continue to be
divided as far as the best way to satisfy their applications' needs for
real-time control, scheduling and interrupt management. Although commercial
RTOS products are plentiful and support dozens of microprocessors, a dialog
continues encouraging developers to do-it-yourself.
Interestingly, although the dialog
continues, commercial RTOSes have been used in the most successful and
ubiquitous electronic products. The call for developers to shun commercial
systems appears to come from a strong DIY advocacy of independent developers
who are (justifiably) proud of their work and who want to share it with the
community. Obviously, there will always be some engineers who prefer to do it themselves,
as opposed to licensing a commercial product, just because they can. Typically,
however, such engineers are not engaged in commercial product development, but are
academics, consultants or part-time RTOS hobbyists.
While DIY makes sense in an academic setting where
new paradigms are being explored and examined, it is less effective than a
commercial RTOS in leading to successful product development and production. According
to industry analysts at Embedded Market Forecasters (EMF, www.embeddedforecast.com), who have surveyed hundreds of embedded developers
for the past several years, developers using a commercial RTOS have a greater likelihood of finishing their development project on time than those using a DIY approach.
DIY proponents raise concerns
regarding commercial offerings, including that such RTOSes are too big, too
expensive and not suitable for many applications.
Are commercial RTOSes unsuitable for any applications?
RTOSes were unsuitable for any significant number of applications, we'd see DIY
RTOSes used in those applications resulting in successful products brought to
market, but we don't. Commercial RTOSes (let's include commercial Linux distributions
in this category, making it actually "non-Roll-Your-Own RTOS")
dominate most commercial electronic products developed in the last 10 years, which
proves their suitability for any application.
There's also no
denying the ubiquitous nature of the commercial RTOS as sufficient proof of its
superiority over DIY RTOS solutions. According to EMF, in 1995, only 33 percent of
applications included a commercial RTOS. Today, that number has grown to more
than 76 percent.
Do commercial RTOSes cost too much?
examined the cost of commercial vs. DIY solutions. From 2003 to present, EMF
has consistently found commercial RTOSes dominate ROI results with open-source
trailing. DIY fares even worse than open source, to the limited extent that
anyone reports using a DIY RTOS for a real project.
In the recent
white paper "Shoot-Out at the RTOS Corral," EMF shows the ROI advantages of
using certain RTOSes over others. According to the EMF survey, only 22 percent of
respondents reported using an "In-House" RTOS on their last project. Commercial
RTOSes better enable developers to meet schedule and get products to market
on time, with 60 percent of projects completed on time or ahead of schedule vs. 54 percent
among those who chose DIY.
Notably, not all commercial
RTOSes faired the same. EMF surveyed hundreds of embedded developers asking, "Was your last
project completed on-time, on-schedule, or behind-schedule?" and "What operating
system did you use?" The chart below portrays the results indicating those using
commercial operating systems completed their projects on time or ahead of
schedule more often than the industry average.
Year after year, EMF data from
2006-2009 showed developers who chose ThreadX completed their designs on
or ahead of schedule 75 percent of the time – a benchmark that analyst Jerry Krasner
believes is due to "feature glut" on the part of some RTOS vendors. In its
white paper, EMF
observes "using an RTOS that is overqualified for the application may have
a negative impact on time-to-market, design cost and product support ... because
additional capabilities, beyond what is required by the needs of the
application, make these RTOSes more complicated and harder to use." Readers
are encouraged to read the white paper.
instances, the killer for DIY and open source lies in the amount of support,
including product enhancement and ports to new microprocessors. Both these
areas require substantial investment of manpower from an in-house development
team. Commercial RTOS suppliers also invest heavily in these areas, but their
man-years are amortized across many customers, with each one bearing a small
fraction of the cost.
Are commercial RTOSes just too large?
These days, commercial
RTOSes are available in sizes as small as 2 kilobytes. Very few
applications have such an extreme size constraint, particularly when memory
costs have fallen so significantly and processors boast much faster clock
rates. As Linux developers are well aware, scaling the open source or DIY RTOS
down to this extent is a monumental task.
Today, commercial and open-source RTOSes
are available as complete products, ready-to-use and off-the-shelf, with features
and technology far beyond what even the best developer could produce in-house.
For example, in the development tools area, we now have open-source compilers
from GNU, as well as commercial products from leading vendors like ARM, IAR, Intel
and Green Hills. While the open-source GNU compilers produce good code and are
freely available, the compilers from ARM, IAR, Intel and Green Hills go far
beyond GNU with advanced optimization techniques that consistently produce
smaller code and faster execution speed.
In the operating systems area, we
see open-source examples such as Linux, as well as commercial products like Wind River's VxWorks or Express Logic's ThreadX. Again,
while Linux is useful in many products, research demonstrates the
commercial Linux offerings consistently experience development costs that are
16.1 percent less than the DIY versions. That commercial RTOSes from Intel (Wind River), Express Logic and others are found in
literally hundreds of millions of products, from cell phones and ink-jet
printers to commercial airliners and FDA-certified medical electronics, demonstrates
their ability to operate within the size constraints of a wide range of
embedded system products.
DIY development delivers great
satisfaction once the OS is finally clicking along – making all those nights
and weekends of struggles with timing and interrupts seem worth it. Such is the
plight of companies just getting started with no funding that have
no other choice until they can get the prototype running well enough to invite
the investment of a backer, who then insists they migrate into tools that
simplify their development and reduce overall labor costs. Obviously, very few developers
fall into this category.
In this day and age, the "wheel" is
a well-established technology. Even when it comes to RTOS development, there's really
no excuse for developers reinventing the wheel in light of the number of commercial RTOS offerings available in all sizes, shapes and flavors. Every
embedded system of reasonable complexity requires an RTOS, and developers know it's more efficient to spend their time designing their application than
re-inventing the RTOS wheel.
Based on trends, it appears DIY
developers are a small though enthusiastic minority and embedded
developers – those working on cell phones, cameras, defibrillators and GUI-driven
dashboards – are facing project timetables that no longer allow them to take the
risks associated with internal RTOS development.
While DIY will continue to thrive
among academics, hobbyists and unfunded enterprises, the majority of
professional developers will continue to enjoy the many benefits of commercial
software and the result will be a continued emergence of cool new electronic
gadgets and life-saving technology.
So when you hear someone ponder the possibility of writing
their own RTOS, ask them what products they use every day that use a home-grown
RTOS. Maybe, just maybe, that will give them cause to consider using a
commercial RTOS product.