Cisco classic IOS has always had a monolithic software architecture, which means that it is both downloaded and run as a single binary image where all processes share the same memory address space. Monolithic and non-modular architecture leads to no memory protection between processes, as a result software defects in classic IOS code can potentially corrupt data used by other processes. It also has a run to completion scheduler, which means that the kernel does not preempt a running process — the process must make a kernel call before other processes can be scheduled and get a chance to run.
In all variations of classic Cisco IOS, packet routing and forwarding (switching) are distinct functions. Routing and other protocols run as IOS processes and contribute to the formation of Routing Information Base (RIB). This is processed to generate the final IP forwarding table (FIB, Forwarding Information Base), which is used by the forwarding function of the router. On router platforms with software-based forwarding (e.g., Cisco 7200 or Cisco ISR G2) most traffic handling is done at interrupt level using Cisco Express Forwarding (CEF). This helps avoid process context switching that would need to be done otherwise to forward packets. Routing functions such as OSPF or BGP run at the process level. In routers with hardware-based forwarding, such as the Cisco ASR1000 (which runs IOS XE) , ASR9000 or CRS-1 or NCS series (which run IOS XR), IOS computes the FIB in software running on route processor (RP) hardware (typically x86 CPUs) and loads it into the forwarding hardware (such as an ASIC or a network processor), which performs the actual packet forwarding function.
The IOS XE is a POSIX based environment along with various open source software for the common drivers, tools and utilities needed to manage the system. In addition to the standard set of off-the-shelf drivers, IOS XE also includes a set of Cisco specific drivers and associated chassis/ platform management modules.
On top of the base operating system (Linux) and drivers , IOS XE provides a comprehensive set of infrastructure modules which define how software is installed , how processes are started and sequenced, how high-availability (HA) and software upgrades are performed. The core application that runs on top of this new infrastructure is the IOS feature set in the form of IOS daemon (IOSd). By running Cisco IOS, products reap the benefits of an extensive feature set for routing and switching platforms that has been built into IOS over last two decades.
Finally, the evolved IOS architecture is specifically designed to accommodate other applications outside of IOS blob or IOSd. These applications can be upgraded or restarted independently of IOSd. If an application does require services from IOS, it can integrate with IOS through a set of client libraries called service points. These service points generically extend IOS information and services to outside applications such that these services are not replicated or managed separately. IOS XE is not a new network “OS” per se, it is rather an incarnation of classic IOS (“ IOS”) where role of classic IOS is reduced to an application running on top of a Linux kernel. This approach also allows building routing/ switching platforms that use a variety of data plane hardware (ASICs or network processors such as Cisco’s QFP or CPP) by way of the abstraction provided between control and data planes.
Adam, Paul (2014-07-12). All-in-One CCIE V5 Written Exam Guide (Kindle Location 804). . Kindle Edition.