The Unholy Union of Innovation and Stability

Cross-posted from my blog on the Yocto Project web site. Visit us there for more embedded Linux advancements.

I remember attending a conference in Taiwan one time and managed to squeeze some time in for an early morning run. Taipei is an amazing, modern city with awesome mass transit, bakeries and restaurants and very friendly people. What I found amazing though was to run down a random urban lane and suddenly see an ancient-looking temple jammed between high-rise buildings. It's one of the charming things about exploring a new place at street level.

Tien-Ho Temple, Ximending, Taipei

It's same kind of experience you might find in New York City running past St Patrick's Cathedral. A clear reminder that human communities require stability and history, even in the midst of an amazingly creative and changing metropolis. 
"Creative" and "innovative" are great words to describe why Linux has become so popular. Since people's innovations are free and freely available to all (and with a license model which ensures this remains so), Linux has attracted the best and brightest inventors and creators. To support this rate of change, the kernel is released on about an 80 day heartbeat. That means you can count on a new version coming out pretty frequently. 

However, like Taipei and Manhatten, human communities need something stable in the midst of change. This is particularly true of people trying to base products on Linux. Companies trying to sell hardware need to have something which will remain fairly constant for months and years rather than becoming obsolete.

Historically, this stability has come in the form of Linux distributions. Unlike the kernel alone, a distribution is a complete, working operating system which includes the kernel and a complete set of user space software. Many of the popular distributions for servers and desktops have long-term supported versions which provide the required stability.

The embedded world is totally different. In spite of efforts to squish embedded into the mold of servers or desktops (or cell phones for that matter), the reality is that the common distro model for Linux is not at all appropriate for embedded devices. This is why roughly 80% of embedded devices use a "roll your own" Linux. (Can you imagine running a TV with the same operating system you run on a desktop? Of course not, it's a silly idea).

And this is why we invented the Yocto Project. We believe that if most people are going to create their own roll your own distribution anyway, why not get everyone on the same page with a great build system, and common versions of the kernel and the "grep" command. That way, they can focus their innovation on things that really matter to people.

As a matter of policy, we took the approach with the Yocto Project to deliver the freshest kind of innovation leadership in Linux-based operating systems. This means we
    • Do a full release of the project's software every six months
    • Include in those releases the latest released and stable Linux kernel tool chain and user space which lines up with our six-month beat rate.
    • Make sure we lead in such innovations as btrfs and the like.
    • Monitor the health of that software continuously with our autobuilder, nightly sanity checks, weekly testing, milestone QA and monitoring the defects closely.

Since we are an open source project, we can't really hope to provide long-term support for any of our releases beyond a year. We hope our partners in the community will offer longer-term support in their product offerings.

This is why I'm so excited about LTSI. If you havn't heard of it, it's another Linux Foundation project called the Long Term Stability Initiative. In addition to the existing Linux Long Term Support (LTS) kernel, LTSI provides the stability plus innovation that embedded device makers need from Linux. It adds kernel features, SoC support and drivers back-ported from latest mainline in addition to the critical bug fixes and security fixes in LTS.

If you have been tracking the Yocto Project community at all, you will see that we're actively trying to figure out how to collaborate with the LTSI project, so we can bring the best of what that project brings to stability while maintaining the leadership and innovation people have become accustomed to.

And hopefully, this union of innovation and stability won't be an unholy one, but a happy one!
For more complete information about compiler optimizations, see our Optimization Notice.