What's the next big platform for Linux?
by Glyn Moody
Glyn Moody wonders whether the car – a currently undeveloped yet important platform with great potential – can provide the inspiration for the next generation of Linux coders.
Linux has a problem: it's running out of platforms to conquer. It's already the top operating system for smartphones and supercomputers, and is widely used in embedded and industrial systems. It's true the Year of the GNU/Linux desktop continues to be five years in the future, but the rise of tablets makes up for that in part.
That seems to suggest that there are no major, completely new areas where young Linux hackers can make their mark: instead, they seem doomed to mopping up minor problems left behind by the people who were fortunate enough to get to a platform first. To avoid disillusionment of the next generation of top coders, Linux desperately needs to colonise a major new product platform – one that is simultaneously hugely important and yet without any established digital leaders.
How about the car?
Linux has already been pecking around this area for a while in the form of Genivi, set up a few years back:
A new industry alliance, Genivi, has been launched and aims to bring open source to "In-Vehicle Infotainment". Genivi, a non-profit organisation, has been founded by car makers BMW, General Motors and Peugeot Citroën, component makers Delphi, Magneti Marelliand Visteon, CPU maker Intel and embedded systems developer Wind River. It plans to work on a Linux based, open source reference platform that can be incorporated into vehicles.
The alliance will be formally launched at CeBIT 2009 on Thursday. According to Genivi, development of the platform is "well underway"; over the past 18 months a prototype system based on Intel's Atom processor and Wind River Linux has been developed and the first "deliverable", based on the prototype is expected to be available in the summer.
Since then, Genivi has moved even closer to Linux: for example, the Linux Foundation now hosts key Genivi projects. However, Genivi was designed for IVI – "in-vehicle infotainment" (see this articles comments for recent developments). That's an important part of a vehicle's operations, but doesn't involve the fundamentals – things like the engine or braking systems – that are arguably closer to its heart. That's what made this announcement last year noteworthy:
Ford and Bug Labs, an open-source hardware and software provider that offers the tools and support needed to prototype, pilot and produce innovative networked devices, announced a joint development agreement to collaborate on a new in-car research platform named OpenXC. Based on Bug Labs’ groundbreaking Bug System, OpenXC transforms the car into a plug-and-play platform where interchangeable open-source hardware and software modules can be quickly and easily customized to perform tasks deemed previously unimaginable by developers. With OpenXC, consumers can truly create a personalized driving experience through the addition of countless add-ons. Innovations such as new visual and audio feedback interfaces, environmental sensors and safety devices can be implemented quickly by snapping Bug Labs’ hardware modules directly into Ford vehicles.
As is clear even from the press release, this is much broader in scope than Genivi. It also builds on some of the strengths of open source:
The vision for OpenXC is simple: the car becomes a docking station for Bug Labs interchangeable plug-and-play hardware and software modules programmed with only the connectivity features and services the driver wants. Functions change with the addition or deletion of modules, giving owners the freedom to continually customize their experience without breaking the bank, and at the same time, adding value to their vehicles as new technologies are introduced, purchased and “plugged” in.
This emphasises two key features of open systems: modularity and customisability. Modularity allows development to take place in parallel, through the use of independent modules that connect using established interfaces. Modularity permits easy customisability by swapping in different options.
The benefits also flow to the vehicle manufacturers:
OpenXC platform is designed to give Ford researchers and independent developers the ultimate sandbox to play in with minimal investment, where any and all ideas, concepts and theories for in-car connectivity can be shared, tested and verified. “Open innovation platforms give communities globally the power to customize and personalize their products. As an added benefit, it also frees manufacturers, like Ford, from investing in, building and deploying low-volume highly customized vehicles for specific markets – while opening up opportunities for other manufacturers to create value-added products and services for Ford vehicles,” said Bug Labs’ Semmelhack.
This, of course, is why Linux has been so successful in markets like embedded systems, where equipment manufacturers can build on the pre-existing code and make tweaks for particular uses.
At the time of OpenXC's launch last year, few details were given about how this would work in practice. But now the OpenXC site has started to reveal some specifics:
OpenXC is an API to your car – by installing a small hardware module to read and translate metrics from a car's internal network, the data becomes accessible from most Android applications using the OpenXC library. You can start making vehicle-aware applications that have better interfaces based on context, can minimize distraction while driving, are integrated with other connected services, and can offer you more insight into your car's operation.
Ford Motor Company and Bug Labs joined up to create a standard way of creating aftermarket software and hardware for vehicles. Every new car is full of computers and electronics, and there is growing interest in connecting the output from those systems to third-party applications and the web. Many companies are already offering tools to hook into the driver's interface, but for the most part they have limited availability for hobbyists and developers. What if the system was designed from the ground up to be open source and to give insight into the vehicle itself? With proper hardware isolation to ensure you can't "brick" your $20,000 investment in a car, OpenXC imagines when your car is as easy to program as your smartphone.
Today's version of OpenXC runs on a combination of the Arduino and Android platforms. It uses tools you already know and opens up thousands of possibilities.