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

Reader assumes responsibility for use of information contained herein. The author reserves the right to make changes without notice.

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  Cisco Silicon Packet Processor (SPP) developed with IBM. The CRS-3 (introduced in 2010) use the Quantum Flow processor (like cisco ASR1000/9000 series), with 40 cores and 4 threads capacity for core (40x4 packet processing at once) .

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.