This material is not sponsored by, endorsed by, or affiliated with Cisco Systems, Inc., Cisco, Cisco Systems, and the Cisco Systems logo are trademarks or registered trade marks of Cisco Systems, Inc. or its affiliates. All other trademarks are trademarks of their respective owners. The list of Cisco trademarks is here
Copyright 2010, Gianrico Fichera
Last update: March 15, 2010
What is IOS-XR
IOS-XR is a Cisco operating system running in the Cisco 12000 XR, Cisco CRS and Cisco ASR carrier-class routers. This is based on the QNX neutrino RTOS microkernel. The CRS-1 (introduced in 2004) system adopt the
1.) IOS-XR is a microkernel operating system type architecture.
Operating systems can be either with a monolithic kernel or with microkernel. In the first case, the operating system processes run in the space reserved for the kernel space while the user processes run in a separate space reserved for them (user space). In microkernel only a minimal core of the operating system runs in kernel space. All other processes runs in user space. In this way, only a microkernel crash could lock the system, but this 'may' be avoided by carefully designing a limited portion of code. All other processes (such as device drivers and protocol stacks), run in user space and thus can be controlled individually. A crash of a process does not block the system. The disadvantage of microkernel is the need for a greater number of memory and processor resources. In fact, the communication between separate processes is inevitably slower than in a monolithic kernel. User space processes should make library calls to the kernel for getting hardware access, because only kernelspace processes can get hardware access directly. The QNX microkernel is very small (I read about 10KB! you can see details here)
Cisco IOS isn't a microkernel OS. Single process crash can take down whole system. All processes share the same memory space. There isn't memory isolation.
2.) IOS-XR is a pre-emptive operating system type architecture. This means that there is a scheduler, a process running in kernel space, responsible of the division of time between processes running on your system. This process use a context-switch algorithm to save the process status and restore it later. In cooperative multitasking instead is responsibility of each process to release resources for the system to make room for other processes. It is obvious that if a process is not working properly the whole system may crash and have to be restarted. IOS is a cooperative multitasking (like the first 16bit Windows operating systems ). IOS-XR is a pre-emptive multitasking operating system (such as a Unix system or Windows 2000 for example)
3.) IOS-XR use memory protection between processes. This means that a process is unable to access memory that hasn't been allocated for it.