Yet, there is one IT innovation that could spell trouble for open source: the internet of things (IoT). The IoT poses special new challenges that the free and open source software world has not encountered before.
Can open source programmers, licensing schemes and communities overcome those difficulties? Let’s consider.
The IoT’s New Challenges for Open Source Software
The IoT is still evolving, but it’s already clear that it poses major challenges for people who believe that software works best when source code can be freely shared. This is true for two main reasons.
1. Proprietary IoT Hardware
The first has to do with the proprietary nature of most IoT hardware, which makes it very difficult to develop open source IoT software in the same way that you write open source code for traditional computers.
While projects like Arduino have made some headway in encouraging the development of IoT hardware with open specifications, the fact remains that most IoT sensors and remote-controlled devices are based on closed, proprietary designs.
As a result, writing software that interacts with those devices is often quite challenging. Unless you can get hardware manufacturers to release details about how the devices work--which they usually have no incentive to do--you have to reverse-engineer the hardware specifications before you can write software to run on IoT hardware.
This is a fundamental new challenge for open source. To date, open source has been able to thrive because the hardware ecosystem in which virtually all open source software lived was based on open standards. You can easily write a Linux distribution that will run on almost any modern PC or server, regardless of the specific hardware manufacturer, because nearly all modern PCs and servers are built using standardized hardware, like x86 CPUs and SATA interfaces.
Although device drivers for specific hardware components, like wireless cards, have long been a source of frustration for open source programmers in some cases, by and large, proprietary hardware specifications have not prevented open source developers from writing code, or users from running it.
On the IoT, this is not the case. Although it’s possible that we’ll see the IoT consolidate around universally accepted hardware specifications in the future, for now, it’s hard to write an open source application for one IoT device that will work on another IoT device, simply because the hardware in the devices is so secretive and there is so much variation between devices.
2. Physical Device Control
The second fundamental challenge that the IoT poses for open source is lack of extensive physical access to and control over IoT devices.
What I mean is that, in most cases, the people whom you might describe as “users” of IoT devices--like drivers at intersections controlled by IoT-connected traffic lights or folks who install smart lighting systems in their homes--have limited ability to control or customize the IoT devices that they depend on.
This is a problem for open source fans because one of their chief arguments is that by making source code publicly available, you give people the ability to control and modify the software that they use. Whether or not they actually choose to take advantage of that opportunity, users of open source software are free to do so if they like, and that freedom is a big deal to many open source advocates.
This freedom does not exist with most IoT devices, for the simple fact that accessing them in order to install new software is difficult. Even if an IoT device is located in your own home and you own it, you may not have a way to plug a USB cord into it so that you can customize its kernel. And you almost certainly can’t boot it to a live CD and install your favorite Linux distribution in place of the manufacturer’s software.
In a way, this challenge is similar to the one posed to open source by the advent of cloud computing. As free software advocates like Richard Stallman have pointed out, software that is hosted in the cloud on someone else’s server denies users the ability to control that software--even if the software source code happens to be open source.
Arguably, the open source community has yet to find a good solution to the challenge posed by the cloud. Many of today’s most widely used software platforms--like Facebook and Google’s online app suite--run solely in the cloud, and users have basically zero control over them, despite the fact that open source software helps to power these platforms in many respects.
The IoT could exacerbate this problem by giving users even less control over the devices that play important roles in their lives--and, when it comes to the IoT, the stakes of control are perhaps even greater, because we’re talking not only about hardware and software that we use for computing, but also about devices that do things like control the temperature in our homes or regulate the electric grid.
Can the IoT Be Open Source?
Both of the problems described above are steep new challenges, and it remains unclear how the open source community can respond.
New open source software licenses designed for the IoT might help, but they’ll go only so far. The best and most pervasive solution will probably require getting buy-in from IoT hardware manufacturers and commercial IoT software developers to agree on open protocols and standards that anyone can use to write IoT software.
And it might even be possible to implement a universal access interface for IoT devices so that users would always have a physical means of modifying the software running on them--but getting device manufacturers to agree to that would certainly be an uphill battle because giving end users device access would not serve their interests in many cases.
To put it bluntly, the IoT poses fundamentally new challenges for the ability of open source software to fulfill its intended mission of protecting user freedom. I’m not positive there’s a good solution.