EMBEDDED DESIGN YOCTO PROJECT
“The developer’s
journey when
first using open
source software
often starts
with a positive
experience.
However,
the realities
of product
development
don’t disappear.”
Yocto Project
tackles Linux design
incompatibilities
they need in order to settle on using
the Yocto Project.
Based on this initial experience
tasks can be allocated and a team
put together. The estimate is it will
require one person on the OS build,
two developers on the User Interface,
one on connectivity middleware, one
more on data analysis algorithms and
two on testing and usability.
From this project team it is clear
that the majority of the effort is
focused on what makes this product
different, while the one thing that
doesn’t differentiate it – the OS –
receives the least resources.
Reality Bytes
This scenario describes perfectly
what the Yocto Project is intended
to provide, a fast route to product
development. What isn’t clear from
this initial experience is what the
Yocto Project isn’t intended to
provide, and that is mitigating your
risk of long-term stability.
Looking purely at support costs,
based on salaries, maintaining the
product for an extended period of time
etc, the costs can be high. Experience
suggests that when it comes to Linux
projects in the embedded and IoT
markets, the cost of maintenance sets
in at 5x the initial cost of development
over a five year period of time. In
fact, with tens of millions of lines
of code in the Yocto Project, and
many developers working on it, it is
inevitable that bugs will be introduced
and fixed, making it a constantly
changing platform. This means the
cost of maintenance can rapidly
overtake the cost of development.
If the kernel has been modified,
which is often the case with an
embedded system, then the patches
issued to fix generic issues may or
may not fix the issues with a branched
kernel. This compounds the support
issue and contributes to the escalating
cost of development and support. In
addition, if the product needs to be
certified for its end market, changing
the kernel or any part of the software
may invalidate that certification,
meaning it becomes even more
difficult to keep patching.
Another important point to
consider is the legal requirement to
supply licenses for any software that
is shipped. This would fall on the
shoulders of the development team or
team leader and would cover any and
all middleware. In a well supported
project like Linux there is a huge
library of middleware solutions to
choose from, but not all will be viable
for international markets and may be
subject to trade embargoes.
But the cost of support can quickly
escalate and that is even before the
product has shipped.
For embedded applications, choosing
a supported enterprise Linux
distribution can come with vendor
tie-in. If the distribution is oriented
towards an Enterprise environment it
is probable that any changes made
to the distribution will likely void the
support package. Similarly, choosing
a distribution that has been ported
to a reference design could very well
shackle your project to the same
processor, which removes choice at a
hardware level.
While the Yocto Project is a popular
choice for embedded development,
any product development comes
with obligations. For manufacturers
targeting the industrial and medical
sectors, products will need to be
supported for between five and ten
years after shipping, as a minimum.
Wind River is a founding contributor
to the Yocto Project, its Wind River
Linux Yocto Project-compatible product
is technically indistinguishable from
the Yocto Project yet comes with full
support that can be applied at any
point in the design process. Changes
to the kernel will not invalidate this
support, and there is never a need
to upgrade, because keeping a Wind
River Linux subscription maintains a
version of your specific distribution
and there is effectively no vendor
tie-in. It is on these points that
commercial Linux distributions are
really differentiated. In addition, every
Wind River Linux build comes with its
own Openchain Compliance Envelop,
making it much simpler to regulate its
distribution.
The developer’s journey when first
using open source software often
starts with a positive experience.
However, the realities of product
development do not disappear when
choosing an open source platform.
As discussed here, challenges can
actually increase. Choosing a robust
commercial Linux partner can make
the difference between having a good
developer experience or a bad one,
between a project that fails and one
that thrives.
www.newelectronics.co.uk 10 September 2019 33
/www.newelectronics.co.uk