Cisco Internetwork Operating System (IOS) has been around since a little after the inception of Cisco Systems as a company. In 1984, Len and Sandy Bosack from Stanford University founded Cisco Systems with a small commercial gateway server. The first Cisco router that I touched was an Advanced Gateway Server (AGS), which was the first marketed product of the company. After this came the Mid-Range Gateway Server (MGS), the Compact Gateway Server (CGS) and later the Integrated Gateway Server (IGS) and AGS+.
The first version of IOS that I touched was 8.2(7). The operating system was based on a Unix-based system and was designed as a monolithic operating system, meaning that processes are stacked and interrelated. Later Cisco IOS releases 9.21 through 11.2 represent engineering efforts to redesign Cisco IOS into modular components or subsystems. The Cisco IOS evolution to port-ready status indicates that Cisco IOS 11.3 and later can be more easily ported to new platforms. This is about when IOS-based switches was introduced, which changed the meaning of IOS — from routers to a user interface for routers and switches. Thirty years of IOS is a good run, but it’s time to move on. IOS is still running on a lot of Cisco product (as well as IOS XR, NexusOS and others), but can it be better?
Cisco IOS XE, the future?
What sets IOS XE apart from the others and what I think could be the future for Cisco routers and switches (outside the core and datacenter)? IOS XE represents the continuing evolution of Cisco’s IOS operating system. IOS XE is architected for routers, switches and appliances, leveraging the years of functionality that is provided by IOS, while adding new functionality and benefits from a Portable Operating System Interface (POSIX) environment. IOS XE retains the exact same look and feel of IOS, while providing enhanced future-proofing and improved functionality. In IOS XE, IOS 15.0 runs as a single daemon within a modern Linux operating system. Additional system functions now run as additional, separate processes in the host OS environment. The operation, support and management of IOS XE does not require retraining from classic IOS. IOSd within the IOS XE environment supports multiple threads and multi-core CPUs.
Like NxOS and IOS XR, there is separation of control plane and the data plane for additional stability. IOS XE accomplishes Control Plane/Data Plane separation through the introduction of the Forwarding and Feature Manager (FFM) and its standard interface to the Forwarding Engine Driver (FED). FFM provides a set of APIs to Control Plane processes. In turn, the FFM programs the Data Plane via the FED and maintains forwarding state for the system. The FED is the instantiation of the hardware driver for the Data Plane and is provided by the platform.
There is almost no change in the different feature configurations, making the migration and user experience consistent with IOS. If you know how to operate IOS today, you already know how to operate IOS XE. The only minor difference in the CLI, and some outputs, is due to the customization that reflects the process-oriented approach of IOS XE, and the ability to use a multi-core CPU.
IOS XE Evolution
For the majority of its life span, IOS XE has only been available on the Cisco Aggregation Services Routers (ASR) 1000 series. Then we’ve been seeing a slight addition to the hardware platforms that run IOS XE — the ASR 900, and then the Catalyst 4500. Recently the Cloud Services Routers (CSR) 1000v was released as a virtual router that can be used by an enterprise to extend their WAN to a provider cloud. The latest addition to the platforms supported by IOS XE is the latest version of the Cisco Integrated Services Routers (ISR), the ISR4000 series. The ISRs have traditionally been IOS-based routers, but with the switch to IOS XE, it makes it clear to me that IOS XE is the future of Cisco routers outside of the core and the datacenter.
So, the operating system looks and feels like that of IOS, something that a lot of engineers are very comfortable with, but is built as a multitasking, modular operating system for performance and stability … all with no learning curve.