CE Linux Forum Developers putting Linux on consumer devices aren't weirdos mining a niche, according to the Intel man who last year volunteered to help maintain embedded Linux.
David Woodhouse told the CE Linux Forum on Tuesday embedded Linux is the computing mainstream thanks to the ubiquity of Linux on millions of media players, PDAs, mobile phones, internet tablets, TVs, and VCRs.
The problem is perception: embedded Linux on devices is seen as niche as Linux hasn't broken through to big-iron servers and the desktop.
Woodhouse, a Red-Hat veteran now with Intel's Open-Source Technology Centre, encouraged developers to change that perception and the way they engage with the wider Linux kernel community and adopters like TV and netbook makers. This will help ensure the benefits of embedded Linux don't simply get ignored and that work becomes applicable to a wide audience.
"Linux runs everywhere," said Woodhouse - who built Journalling Flash File System 2 and who last May took over as co-maintainer of embedded Linux.
"It's on everything except big iron servers and desktops. It's a loosely defined term, embedded. We are talking about the majority of Linux devices that exist. This is not a niche, this is not something specialized, this is the mainstream," he told the San Francisco, California event.
Plenty of good ideas are coming out of embedded Linux and are finding their way into the main Linux kernel or they have general applicability - even on those big-iron servers, Woodhouse said. Advances are being driven by the challenges of working on devices, such as limited battery life, screen size or small amounts of memory.
Work in embedded that's made it into the mainstream include tickless computing, a pre-emptive kernel, power management, suspend to RAM, and the use of solid-state drives.
"There are plenty of success stories and we need to build on those. We need to combat this perception that we are this weird group that go off and do their own thing," he said.
The challenge is for developers to think in broad terms, when it comes to building Linux code. Woodhouse recommended a number of steps in building code and relations with the community, meaning up-stream adopters like those working on the Linux kernel and TV makers.
"When you need to add something, step back and think about how much you want this and how we can do it and phrase our requirements that make them interesting to other people," he said. "Find a reason why other people should care about what you are doing - publish early code early and often, let people see what you are doing...put patches up there."
Woodhouse, whose employer Intel is lobbying netbook and device manufacturers to adopt Moblin, encouraged developers to work with those upstream maintainers. That means taking feedback and responding politely if they ask you to do something you don't think you should be doing.
Developers should also "stay close to the upstream," Woodhouse said. That means working with the main kernel and avoiding "evil hacks" - changes to your code for your own silicon that won't work for somebody else, or that won't work if and when the Linux kernel changes or your device is updated.
Summing up his view on embedded Linux early on, Woodhouse said he hoped he could render himself obsolete as changes in embedded Linux find their way into the main kernel.
Responding to Woodhouse, chip and hardware manufactures were singled out by audience members as needing to step up and do more to help build embedded Linux.
During a post Woodhouse-keynote Q&A, one audience members said that low-level chip-architecture makers like ARM and MIPS who are present on a lot of embedded systems are not participating enough in the development of embedded Linux. It was also noted that their rival x86 makers tend to shape the output of the work on the Linux kernel. The issue is ARM and MIPS have already done a lot of hard work solving known problems.
Another audience member pointed the challenge of trying to get Linux to run on the sheer proliferation of mobile hardware architectures. He said there should be a "couple of revs" of the Linux kernel incorporating ideas from ARM and others to make it generic. ®