Two of the major features that distinguish Cisco's IOS and Juniper Networks' JUNOS operating systems are their heritage and number of versions on the market. The third is their architecture.
IOS traditionally is a monolithic operating system, which means it runs as a single operation and all processes share the same memory space. Because of the latter feature, bugs in one operation can have an impact on or corrupt other processes. In addition, if a user wishes to add features or functions to the operating system, IOS has to be deactivated while a completely new version with the desired features is loaded.
JUNOS, on the other hand, was constructed as a modular operating system. The kernel is based on the open source FreeBSD operating system, and processes that run as modules on top of the kernel are segregated in exclusive, protected, memory space. Users thus can add features and functions to the version of JUNOS running on their systems without disabling the entire operating system -- a characteristic known as in-service software upgrades that also enhances uptime and availability.
"The major difference is operational," says Jeff Doyle, president of IP consultancy Jeff Doyle and Associates, who has worked with both operating systems. "The reality is, IOS is pretty old. [JUNOS] was architecturally designed differently. It's more modern and modular, meaning bug fixes are easier and functional failures tend to be not as impactual as they are with as IOS."
The goal of Cisco's new IOS variants -- IOS XR, IOS XE and NX-OS -- is to overcome the monolithic limitations of the traditional IOS while addressing critical needs for increased uptime and availability in the service-provider core and edge, and enterprise data center, respectively. All these operating systems are modular, in that IOS services run as modules on top of a Linux-based kernel (in IOS XE and NX-OS), or as a third-party Portable-Operating-System-Interface (POSIX)-based real-time kernel (in IOS XR).
"[These are] absolutely the step in the right direction" for Cisco, Doyle says. "Anything that gets them to a more modular architecture gets them more reliability. Cisco is very aware of the liabilities of IOS just in terms of being a monolithic architecture. I think you'll see that die out," he says.
The new operating systems' architecture is intended to remove from the kernel all processes that are absolutely not required to run in it. Instead they are executed as modular processes, like the way a computer runs applications.
In this way, the Linux-, POSIX- and FreeBSD-based kernels help facilitate modularity, high availability and service virtualization. FreeBSD, however, is a "complete" operating system in which device drivers, utilities and shell are included in the same source-code stream as the kernel. The Linux kernel, utilities and applications are developed separately.
As for the processes themselves -- establishing VPNs and security, assigning QoS, constructing MPLS label-switched paths, routing IP protocols, supporting multicast, and establishing IP addressing, among others -- IOS and JUNOS are virtually identical. They both support industry standards specified for these tasks while going beyond the standards with proprietary techniques for their own equipment.
"In terms of features, there is decent parity there," Doyle says. "That's all just based on standards. You're not going to find that much difference between the two."