CISCO IOS Architecture and Functionality

Application of Operating Systems in Telecommunications

  • Instructor: Prof. Dr. Pero Latkoski


Key Goals of the Lecture

  • Understanding CISCO IOS architecture.

  • Exploring IOS characteristics.

  • Analyzing the structure of CISCO routers and switches.

  • Utilizing a simulator for practical knowledge.

  • Performing basic configuration tasks.


Introduction to Operating Systems in Telecommunications

  • There is a need for specialized operating systems apart from general-purpose ones.

  • Example: CISCO IOS (Internetwork Operating System).

    • Installed on various devices enabling telecommunications networks, including:

      • Routers

      • Switches

      • Firewalls, IDS/IPS, VPNs

  • IOS includes fundamental components akin to general-purpose operating systems but tailored for its specific functional goals.

  • Initially designed as a small embedded system for CISCO routers.

    • Not originally considered as an operating system but merely as operating software.

    • Now comprises essential and specialized functions of an OS, such as network security and Quality of Service (QoS) implementations.

  • Functional Enhancements:

    • Features have expanded, yet the core architecture remains similar for efficiency and resource optimization.

    • Aims for rapid packet switching (e.g., 25μs per packet).

    • Opts out of complex control measures to maximize performance.

      • Memory protection among threads is absent to conserve CPU resources.


CISCO IOS Architecture

Major Components
  1. Processes: Threads and associated data for maintenance, protection, QoS, and routing protocols.

  2. Kernel: Handles core system services (memory management, process scheduling).

  3. Packet Buffers: Global memory buffers used for storing packets during forwarding.

  4. Device Drivers: Manage network interfaces and peripherals, facilitating communication with hardware.

  5. Fast Switching Software: Optimized functions specifically for packet switching tasks.


Memory Organization

  • Memory Mapping: IOS maps physical memory into a single flat virtual address space without full virtual memory implementation.

    • Excludes mechanisms like memory paging/swapping.

  • Memory Regions: Partitioned into areas corresponding to physical memory types:

    • SRAM (Static RAM): For packet storage.

    • DRAM (Dynamic RAM): For software and data.

Memory Region Classes
  • Local IoMem: For normal data structures, typically DRAM.

  • Fast IoMem: Fast memory (SRAM) for critical tasks.

  • PCI and Flash Memory: For device interfaces and IOS images.

    • Flash memory allows OS upgrades without hardware changes.


IOS Processes

  • Resemble threads in other operating systems, ensuring each process has one thread.

  • Each process has allocated memory with its own stack; however, lacks virtual memory protection leading to shared memory access risks.

  • Execution Model: Uses a priority-based run-to-completion model.

    • Non-preemptive: Processes run until completion.

    • Benefits: Reduced CPU overhead and lower programming complexity; minimizes data corruption risks.

Process Lifecycle
  • States:

    • Create -> Modify -> Execute -> Idle -> Ready -> Terminate.

  • Priority Levels:

    • Critical: Essential system processes.

    • High: Responsive processes (e.g., packet handling).

    • Medium: Standard processes.

    • Low: Background tasks.


Management of Packet Buffers

  • Uses the store-and-forward principle.

  • Packets are stored in buffers until they can be forwarded.

  • The Buffer Pool Manager component handles manipulation of buffer sets:

    • Buffers can be dynamic or static.

    • Public Buffers: For processing incoming and outgoing packets.

Statistics on Buffer Pools
  • Describes usage including total counts, minimum thresholds, and created counts:

    • eg. Total Buffers: 20, Permanent Buffers: 16, Failures: 1 due to memory constraints.


IOS Device Drivers

  • Aim to abstract hardware for programs.

  • Drivers enable interaction between hardware components and the OS.

  • Types of drivers include:

    • Control Drivers: Responsible for monitoring device statuses.

    • Data Drivers: Handle data flow and switching tasks.


General Notes on IOS

  • Monolithic architecture exposes all functions; bugs in one part can affect others.

  • Limited preemptive multitasking leads to competitive OS development.

  • CISCO’s response includes IOS XR with modularity and memory protection.

  • IOS XE: Built on Linux, separates OS functions from the IOS kernel, offering enhanced architecture while retaining command compatibility.


Router Composition and Access Methods

  • Memory Components:

    • ROM: Permanent memory for system checks and basic IOS.

    • Flash Memory: Contains IOS copies, allowing software upgrades without hardware replacement.

    • NVRAM: Non-volatile storage for startup configuration files.

    • RAM: Active memory for caching and running configurations.

  • Methods for accessing CLI include Console, AUX, Telnet, and SSH (which encrypts data).


Boot-Up Process

  • Starts with the Power-On Self-Test (checks hardware).

  • Executes Bootstrap Program from ROM to locate IOS in Flash or other sources based on NVRAM settings.

  • Loads configurations step-by-step; if absent, offers an initial configuration dialog.


Configuration Files

  • Startup Configuration File: Stored in NVRAM for IOS startup.

  • Running Configuration File: Active configuration in RAM that must be saved to maintain changes after reboots.

/

/

/

/