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
Processes: Threads and associated data for maintenance, protection, QoS, and routing protocols.
Kernel: Handles core system services (memory management, process scheduling).
Packet Buffers: Global memory buffers used for storing packets during forwarding.
Device Drivers: Manage network interfaces and peripherals, facilitating communication with hardware.
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.
/
/
/
/