Cisco IOS Software

Cisco IOS Software has been around for quite some time. The original intention of the developers was to provide a small embedded system for limited-memory and speed-critical packet-switching routing appliances. Speed requirements within embedded systems are usually met by design simplicity and removal of unnecessary features. Cisco IOS Software has a cooperative multitasking kernel architecture featuring several processes and "resembles a loose collection of components and functions linked with the rest of IOS. Everything including the kernel runs in user mode on the CPU and has full access to systems resources."[1]

With the evolution of the Cisco hardware platforms, ASICs designs, and new bus systems, a lot of functionality has been delegated from the CPU to linecards, daughter cards, and custom chips. Cisco has also done a lot of development in the area of fast-switching strategies (Cisco Express Forwarding [CEF], silicon switching, fast switching), whereas almost everything in the IP stack of UNIX operating systems is done on a per-packet or per-frame basis with different per-flow characteristics. Cisco offers a hierarchical command-line interface similar to a UNIX shell, also based on regular expressions to some extent. It resembles an intelligent parser and several modes of operation around a kernel that at least in some aspects seems inspired by UNIX operating system design.