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."
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.