Linux Distributions: Considerations for IoT Projects
“Software is usually the most costly part of these endeavors,” said Daudt. As an example, he explained that smartphones are complex, so manufacturers rely on the chip vendors to manage that complexity and optimize the phone for all the different aspects of the chip. “They can’t do that and have a fast turnaround on new phones if they have to write a significant part of the software stack,” he said.
“It’s a major effort to upgrade the versions because a lot of software goes into it. That’s why hardware vendors don’t do it. They don’t want to invest more and more if it’s not the next-generation device,” Daudt said.
If the development organization decides to update the OS, those distribution choices will once again be limited to the use case. The more specialized the use case, the fewer the OS options the organization has. “If a button is the simplest device and the PC is the most advanced, depending on where you’re at will dictate the variety of choices available. A PC will be almost anything. A button will be bare metal and have some infinite loop that dispatches an event,” said Katsman.
Organizations commonly have a choice between two distributions. “Manufacturers tend to support one Yocto-based and one Debian-based distribution,” said Daudt.
He recommends choosing the distribution based on the amount of customization required. “The trade-off is how much you can use out of the box versus how much you have to modify. There’s a tipping point where one becomes more interesting than the other,” said Daudt. “Binary is easier if you don’t have to make a lot of changes, but if you have to do a lot of customization then the source-based one like Yocto becomes the better alternative.”
Ultimately, however, experts recommend that developer organizations make the operating system a consideration early on in the hardware evaluation. “Try to understand how much you’re going to have to change the software from what you get from the vendor and based on that, see which options you have within a vendor’s software offerings in terms of their software evolution and how important that is for you or not,” said Daudt. “If you think you’ll stick to 99% of what you have [from the operating system], and not support field upgrades, then all these things are moot from your perspective. If you want to send upgrades every three months to your devices over the course of four or five years, then this is an absolutely important factor for you to determine how to pick your hardware and how the vendor supports the software evolution themselves.”