The (Unofficial) CCNP-SP Study Guide
  • About
    • About the Author
    • About This Study Guide
  • MPLS
    • LDP
      • LDP Transport Address
      • LDP Conditional Advertisement
      • LDP Authentication
      • LDP/IGP Sync
      • LDP Session Protection
    • MPLS-TE
      • MPLS-TE Basics, Pt. 1 (TED)
      • MPLS-TE Basics, Pt.2 (RSVP)
      • MPLS-TE Basics, Pt.3 (CSPF)
      • MPLS-TE Basics, Pt.4 (Routing)
      • MPLS-TE Fast Reroute (FRR)
      • MPLS-TE with OSPF
    • Unified MPLS
    • Segment Routing
      • Introduction, Theory Pt.1
      • Introduction, Lab (OSPF) Pt.2
      • Introduction, Lab (ISIS) Pt. 3
      • Multi-Area/Level Segment Routing
      • Segment Routing using BGP
      • Migrating LDP to SR
      • LDP/SR Interworking
      • TI-LFA Pt. 1 (Theory)
      • TI-LFA Pt. 2 (Implementation)
      • TI-LFA Pt. 3 (Node and SRLG Protection)
      • SR-TE Pt. 1 (Overview)
      • SR-TE Pt. 2 (Creating an SR-TE Policy)
      • SR-TE Pt. 3 (Using a PCE)
      • SR-TE Pt. 4 (Automated Steering)
      • SR-TE Pt. 5 (On-Demand Nexthop)
      • SR-TE Pt. 6 (Flex Algo)
    • MPLS OAM
      • Classic Traceroute Behavior in MPLS Networks
      • LSP Ping
      • LSP Traceroute
  • Routing
    • BGP
      • BGP Synchronization
      • BGP Load Sharing (Multipath)
      • An Intuitive Look at Path Attributes
      • AS Path Prepending on XE and XR
      • RPL
    • BGP Security
      • BGP TTL Security, Pt. 1
      • BGP TTL Security, Pt. 2 (IOS-XE)
      • BGP TTL Security, Pt. 3 (IOS-XR)
      • BGP MD5 Authentication
      • BGP Maximum Prefixes
      • BGP RFD (Route Flap Dampening)
      • RTBH
      • Flowspec
      • BGPsec
    • L3VPN
      • An In-Depth Look at RD and RT, Pt. 1
      • An In-Depth Look at RD and RT, Pt. 2
      • An In-Depth Look at RD and RT, Pt. 3
      • An In-Depth Look at RD and RT, Pt. 4
      • Inter-AS L3VPN Pt. 1, Overview
      • Inter-AS L3VPN Pt. 2, Option A
      • Inter-AS L3VPN Pt. 3, Option B
      • Inter-AS L3VPN Pt. 4, Option C
      • CSC (Carrier Supporting Carrier)
      • PE NAT
    • OSPF
      • Type 7 to Type 5 Translation
      • OSPF Authentication
      • Troubleshooting OSPF Adjacencies
      • OSPFv3 LSA Types
      • OSPFv3 LSAs Example (Single Area)
    • ISIS
      • The Potential for Asymmetric Routing with Multi-Area ISIS
      • Interarea Routing is Distance-Vector
      • Basic ISIS - LSPDB
      • Multitopology
      • What is the role of CLNS and CLNP in ISIS?
      • Troubleshooting ISIS Adjacencies
    • IPv6 Transition
      • Overview
      • NAT64
      • 6to4
      • 6RD (IPv6 Rapid Deployment)
      • DS Lite (Dual Stack Lite)
      • MAP (Mapping of Address and Port)
      • Tunneling IPv6 Dynamic Routing Protocols over IPv4
    • Multicast
      • Introduction
      • IP and MAC Addressing
      • Tree Formation and Packet Forwarding
      • IGMP
      • PIM-DM (Dense Mode)
      • PIM-SM (Sparse Mode)
      • PIM-SM SPT Switchover
      • PIM-SM Tunnel Interfaces
      • PIM DR and the Assert Message
      • PIM-SM RP Discovery
      • PIM-BiDir
      • PIM-SSM (Source-Specific Multicast)
      • Interdomain Multicast (PIM-SM)
      • IPv6 Multicast
      • mVPN Introduction
      • mVPN Profile 0
      • mVPN Profile 1
      • Multicast Routing on IOS-XR
  • L2VPN & Ethernet
    • IOS-XE Ethernet Services
      • Service Instances
      • E-Line
      • E-LAN (VPLS)
      • E-Tree
      • E-Access
      • VPLS with BGP Autodiscovery
      • Martini/Kompella Circuits
    • EVPN
      • Introduction to EVPN
      • Learning EVPN VXLAN First
      • E-Line (EVPN VPWS)
      • E-Line (EVPN VPWS) on IOS-XR
      • E-Line (EVPN VPWS) Multi-Homed
      • E-LAN (EVPN Single-Homed)
    • Carrier Ethernet
      • 802.1ah (MAC-in-MAC)
      • 802.3ah (Ethernet OAM)
      • 802.1ag (CFM)
      • Cisco REP (Resilient Ethernet Protocol)
      • ITU G.8032 ERPS (Ethernet Ring Protection Switching)
  • Security
    • CoPP (Control Plane Policing)
    • LPTS (Local Packet Transport Services)
  • Misc
    • QoS
      • QoS Introduction (Part 1)
      • QoS Tools Overview and QoS Models (Part 2)
      • QoS Classification and Marking (Part 3)
      • QoS Queuing/Congestion Management (Part 4)
      • QoS Shaping and Policing (Part 5)
      • QoS for IPv6
      • MPLS QoS Basics
      • MPLS QoS Modes
      • MPLS TE QoS (DS-TE)
      • MPLS TE CBTS/PBTS
    • Automation and Assurance
      • NSO
      • NSO Command Cheat Sheet
      • Intro to YANG/NETCONF
      • YANG In-Depth
      • NETCONF In-Depth
      • RESTCONF
      • Model-Driven Telemetry
      • Automation Tool Comparison
      • Netflow
      • SNMP
    • Virtualization
      • NFV (Network Function Virtualization)
      • OpenStack
    • Transport
      • xPON
      • SONET/SDH
      • WDM
      • 4G and 5G RAN
    • High Availability (HA)
      • NSF/GR
      • NSR
      • NSF/NSR Whitepapers
      • BFD
      • Link Aggregation on IOS-XE
      • Link Aggregation on IOS-XR
    • IOS Software Overview
  • Labs
    • Lab Challenges
      • How to Use These Labs
      • Basic LDP
      • Advanced LDP
      • BGP Security
      • Unified MPLS
      • BGP Fundamentals
      • Ethernet Services
      • L3VPN Extranet
      • Multicast
      • Inter-area OSPF
      • ISIS
      • MPLS-TE
      • Control Plane Policing
      • QoS
Powered by GitBook
On this page
  • IOS
  • IOS-XE
  • IOS-XR
  • Further Reading
  1. Misc

IOS Software Overview

The operating system that runs on Cisco hardware is called IOS (Internetwork Operating System). In general an OS is responsible for low-level processes on a device such as access to hardware, management of memory, communication between processes, and process scheduling.

Memory management is a defining characteristic of an operating system. A monolithic operating system is one in which all processes share the same memory space. There is no fault tolerance between processes. One process can experience a memory leak and starve all memory on the entire device. While a monolithic OS sounds like a poor way to design an OS, there are some benefits. In a monolithic OS, CPU utilization can be improved due to the immediate access to memory. The OS in this case can run directly on the hardware. So using a monolithic OS can be useful when the system is simple and the codebase is small.

In contrast, a kernal-based OS uses a separate kernal process to manage memory and other resources. The kernal allows processes to have separate memory spaces. This means that a memory leak in one process does not impact the memory space of other processes. Processes can be restarted individually without affecting the entire system. In a microkernel OS, only the essential core services run in the kernal, and all other processes run in their own memory space.

IOS

This is the classic IOS software which runs on end-of-life hardware you may be familiar with, including switches such as the 2960 and 3750, and routers such as the 2951 and 3845. This is a monolithic OS - all processes run in the same memory space.

Have you ever noticed how small the IOS file is on an IOS device? On the 2960 running in my lab, the 152-2.E6 software file is a mere 21.3 MB. On a monolithic OS, the entire system image is held in memory.

IOS-XE

IOS-XE is kernal-based, running IOSd (IOS daemon) ontop of a Linux kernal.

I’ve seen this called “a combination of a linux kernal and monolithic application (IOSd)” which can be a bit confusing. This makes it sounds as if IOS-XE is simply a kernal with a single process. IOSd is a single daemon but it is able to parition functions into separate processes, which are isolated and memory-protected. IOSd is the main process, running as an application on the Linux kernal. The IOS subsystems run as separate processes.

The fact that IOS-XE runs on Linux allows for the ability to run different applications, such as wireshark and containers, tangent to the IOSd. IOS-XE even allows for a guest linux shell, allowing you to access a bash shell from the CLI.

CSR1000v(config)#iox
CSR1000v(config)#int vpg0
CSR1000v(config)#int virtualportGroup 0
CSR1000v(config-if)#ip add 192.168.1.1 255.255.255.0
CSR1000v(config-if)#exit
CSR1000v(config)#app-hosting appid guestshell
CSR1000v(config-app-hosting)#vnic gateway1 virtualportgroup 0 guest-interface 0 guest-ipaddress 192.168.1.2 netmask 255.255.255.0 gateway 192.168.1.1 name-server 8.8.8.8 
CSR1000v(config-app-hosting)#end
CSR1000v#guestshell enable
Interface will be selected if configured in app-hosting
Please wait for completion
guestshell activated successfully
Current state is: ACTIVATED
guestshell started successfully
Current state is: RUNNING
Guestshell enabled successfully

CSR1000v#
CSR1000v#guestshell
[guestshell@guestshell ~]$ 
[guestshell@guestshell ~]$ pwd
/home/guestshell
  • Example of enabling guestshell in CSR1000v

IOS-XE runs on modern switches and routers, such as the Catalyst 3650/3850, and 9300/9400/9500, as well as the Cisco ISR and ASR line such as the ISR 4300/4400 and ASR 1000 series.

IOS-XE inherits the IOS CLI, so if you are dropped into the CLI of each, you probably won’t be able to tell the difference unless you issue a “show version.”

IOS-XR

IOS-XR is a microkernel OS which runs ontop of QNX in the 32-bit version of IOS-XR, and Yocto Linux in the 64-bit version of IOS-XR. QNX is a Unix-like operating system.

The 32-bit version is called “classic IOS XR” and runs on older hardware such as the 12000 series, CRS series (Carrier Routing System, not to be confused with CSR Cloud Services Router), and ASR 9000 series. The 64-bit version runs on the NCS series and new ASR 9x00 series.

IOS-XR shares very little with older IOS trains, and was built from the ground up. This is one reason for the different CLI syntax. IOS-XR is highly distributed, with each process individually restartable. For example, BGP may be one process, RIB another, and ISIS another. Each runs in its own memory space.

IOS-XR places some processes directly on the line cards, for example ARP, BFD, and FIB. IOS-XR has RPs (route processors) which allow for fault tolerance. Processes can be distributed among the multiple RPs on the system.

Package management is modular. Features such as multicast and MPLS can be installed in separate packages, allowing these features to be enabled and disabled while the router is in service. The 32-bit version uses PIE-based software packages, while the 64-bit version uses RPM packages that you may be familiar with in Linux. PIE stands for Package Installation Envelope.

Further Reading

Cisco IOS XR Fundamentals, Ch. 1

PreviousLink Aggregation on IOS-XRNextLab Challenges

Last updated 2 years ago

https://meelaz.medium.com/using-cows-to-explain-the-differences-of-the-cisco-operating-systems-876d14145827
https://en.wikipedia.org/wiki/Cisco_IOS_XE
https://networklessons.com/cisco/ccie-routing-switching-written/introduction-cisco-ios-xe
https://www.packetcoders.io/what-are-the-key-differences-between-cisco-ios-and-ios-xe/
https://en.wikipedia.org/wiki/Cisco_IOS_XR