I have spoken in recent weeks about the Yocto Project with several people who have a clue (and maybe even a few who don't). What seems universal is that the people who are deeply involved with Linux development for traditional embedded devices really understand why we're doing the project, and many even appreciate what we're trying to do, to help the embedded developer be more successful with embedded Linux.
But not everyone gets it.
It seems like people who are not familiar with embedded development are often the ones who are surprised that we would put such effort into a cross-architecture embedded Linux OS infrastructure such as Yocto. After all, it seems like there are plenty of great Linux-based embedded projects out there such as Android or MeeGo. Why do we need yet another one?
Usually at this point, I talk about my heart attack.
Suppose I were to drop to the floor just now with sudden chest pains. After calling the doctor, somebody runs up with a portable defibulator to deliver the shock of life and restart my heart.
The good news is that this defib is running Linux! (OK, well your average portable defibulator is probably not running anything like Linux. Let's not spoil the story with too much reality). With a Linux-based OS, it should be highly reliable, right? But which Linux did the developer choose?
Nearly all of these popular systems desire to have some kind of compatibility with applications. In fact, this is a major goal of efforts like Android and MeeGo and the like - they want to create an application development ecosystem where developers can independently create software and have a good assurance that it will run on many different devices.
In fact, application compatibility across OS instances is such a powerful requirement that it has been a strong operating system design requirement ever since I got into the OS game back in the 1980s.
For Linux, this means that you need to ensure that a core set of packages are either present or loadable to ensure compatibility.
But let's get back to the heart-attack victim here (me!). Even though I am delighted that my heart will be restarted, I might not care less if the OS running on the defib provides a media playback stack or a 3D graphics driver or even a browser. I really don't care to download new apps or get security patches from the web or worry that someone will try to hack into my system. In fact, I really don't care if I can download and run arbitrary apps because, as I said, I just want to have a quick, reliable boot with a rational storage footprint.
So this means having a reliable, stable way to build truly embedded systems with no concerns about app compatibility is a major win - heart attack or no.
[And no, I am very grateful that I have not suffered from heart disease, although one of my grandfathers had terrible chest pains and angina attacks. I don't want to ever make light of someone suffering from this because I know it's terrible. And I hope and believe that the Yocto Project will someday help in saving someone's life!]