The Navy’s Standardization Problem

Using open source software, the US Navy was able to standardize the shipboard systems on its new destroyers, reducing the complexity of the ship’s systems and their reliance on proprietary real-time software. Wall Street now uses this same technology to execute orders predictably, without relying on vendor-specific hardware and software.

Every ship in the Navy is a floating data center. Computers run the ship, handle navigation, and track inventory. There are mail servers, databases, and everything else you would expect in a corporate data center. Unlike a corporation, though, the Navy also has weapons systems and radars. These systems are unique, since they must perform in a very predictable way: when you pull a trigger, you can’t wait for the computer to send an email. It has to happen right away. This determinism in a computer system is called “real-time” performance.

The Navy has already saved millions by moving to industry-standard computers and commercially available software. This real-time requirement flew in the face of this: the software is very expensive, and often very proprietary. Frequently, real-time systems require specialized hardware and specialized software, which was also expensive. These new systems also meant special training for the operators. So this meant two sets of infrastructure: one to regular applications, one to run the real-time applications. This was expensive and inefficient, especially since a Navy ship is so constrained by the lack of space. It would be much easier to have the regular computers handling the real-time work.

The solution was to bring the real-time capability to the open source Linux operating system.

So the Navy and a coalition of vendors worked to provide a real-time version of Linux that was 100% compatible with the regular Linux. This meant that the hardware, operations and maintenance would be identical for a real-time workload and a regular workload.

Over the course of two years, this team brought the real-time improvements that they’d made into the mainstream Linux project. They did this to ensure that no one company is responsible for the maintenance of these changes. As the Linux kernel evolved, supporting new hardware and new features, the real-time system would gain these improvements as well. Not surprisingly, some of the improvements the Navy made were useful to everyone, not just real-time users.

Wall Street, for example, has a similar requirement for real-time systems. When someone enters an order, the financial services companies need to execute that order in a predictable amount of time — not unlike the Navy’s weapons systems. They shared the Navy’s problem: reliance on expensive, proprietary software that locked them to a single vendor and required new training for their systems administrators. Fortunately, they were able to take the same software the Navy developed, and apply it to their trading systems. Now they spend less on hardware and training, and have a broad set of hardware and software available on a real-time platform.

The open source process helps people work together. It makes good ideas available to everyone, so everyone can improve them. The US Navy could never have anticipated that Wall Street would find its real-time work useful, but now there is a broad community of users, hardware vendors and developers who are all working together to solve a common problem. That’s the power of open source software.