Logic Supply recently partnered with RapidRollout, a Linux OS development shop specializing in interactive kiosk and digital signage applications. Founder Forest Bond stopped by to talk shop and weigh in on custom vs. desktop-oriented distributions.
Keenan Walsh: So what’s your beef with Ubuntu?
Forest Bond: [laughs] I like Ubuntu! I use it on my laptop and my work PC, and I participate with the community when I can. But ultimately distributions like Ubuntu and Fedora are designed to be used on desktop PCs, not appliances like kiosks and digital signs. Developers that are already comfortable with these distros often reach for them because they’re familiar. And I think there are problems with this approach that may not be obvious at first.
KW: Such as?
FB: Well first off, you take a performance hit. These distros offer a complete desktop environment. But all of the features that make them great for desktop use—task bars, instant messaging, calendar, network file sharing, document indexing, and such—really aren’t needed on an appliance, and we can speed things up a lot by eliminating them. They’d just consume memory and CPU cycles that would otherwise be available to the main application. And they also increase system startup time. You can strip a lot of them out and basically “gut” the desktop environment. But that’s time-consuming and requires a real understanding of the desktop internals. It’s better to use an environment that’s lightweight to begin with.
KW: What about installation? Aren’t there mass installation issues with desktop linux when you’re dealing with hundreds of appliances?
FB: Distributions do provide some tools for automating installation and configuration. Red Hat has Kickstart, and the Debian and Ubuntu installers can be preseeded. This can work well, but again it takes time and knowledge to create and manage the configuration. You can also use disk cloning tools like Clonezilla to speed up deployment. But ultimately you’ll still have configuration management issues to deal with.
KW: What do you mean?
FB: Well, we’ve all configured desktop systems before. You use control panels, installers, configuration utilities, and it’s great for personalizing your laptop or work computer. But if you’re creating an appliance, you really want to be able to keep track of all these customizations so you can manage changes. And you also want to be able to apply configuration changes to machines that are already out in the field. So you need to extract this configuration data somehow. And you can’t really do that if you’re using point-and-click configuration and disk cloning. It’s sort of like running a bakery without writing down your recipes.
KW: Got it. So do you spend much time baking then?
FB: Nah, I don’t really cook much. But I’ve seen it done before! [laughs]
KW: You talk about computers in the field, which begs a question about updates.
FB: Yeah, this can be a big problem. A lot of our customers have mentioned this. They’ll have a large deployment up and running and then suddenly the whole fleet gets knocked out and they have to get someone on-site to fix the problem. Turns out the distribution vendor sent out a software update and it wasn’t compatible with the OS customizations they had made. Distributions send these updates out regularly, and they do fix security problems and other issues. But with machines deployed to remote locations they also carry a lot of risk. So you want to be able to test the update before it goes out to the field, and you also want to have some control over which updates go out at all. So you need to come up with a different system for applying updates. If you’re using embedded Linux you’ll probably have this, but you don’t get it with desktop Linux distros.
KW: Is it about desktop vs. embedded linux then?
FB: Well, the language can be a little fuzzy. We try to avoid the term “embedded Linux” because there’s a big difference between the kind of Linux OS needed for a digital sign or kiosk and the extremely compact and real-time operating systems used in traditional embedded applications. Those kinds of embedded Linux systems are usually much more difficult to work with. You really have to be a Linux expert. At RapidRollout we’re really trying to make Linux a viable option for non-experts. So we usually say “custom Linux” instead to differentiate. And we always put it in the context of appliances. But I think there’s probably room for some improvement to this language. If you have suggestions I’m all ears!
KW: Thats what blog comments are for.