Category Archives: Cisco Software


Daemon – Is a background, non-interactive program. It is detached from the keyboard and display of any interactive user. The word daemon for denoting a background program is from the Unix culture; it is not universal.
Difference Between Symmetric and Asymmetric Multiprocessing

Cisco IOS
Although the “IOS” name came later, the operating system dates back to the mid-1980s. Cisco IOS was developed using the C programming language and had several limitations indicative of when it was developed. For example, it did not support symmetric multiprocessing. As a result, one instruction had to be completed before another instruction could begin to be executed. Another huge architectural limitation was the use of a shared memory space. Since all processes used the same pool of memory, and a misbehaving OSPF process (as an example) could wreak havoc on other router processes.

Some router platforms did have workarounds. As an example, I used to administer a Cisco 7513 modular router. That router could be equipped with a Versatile Interface Processor (VIP) module, which allowed individual line cards to run their own instances of Cisco IOS. That provided some level of load balancing and redundancy.

NOTE: Another version of Cisco IOS you might have heard of is IOS-XE, which runs Cisco IOS on Linux. You might, as an example, find Cisco IOS-XE running on a Cisco ASR 1000 Series router. Thanks to the feature set of Linux, Cisco IOS-XE adds support for symmetric multiprocessing and separate memory spaces. However, other than its Linux underpinnings, Cisco IOS-XE is basically the same as traditional Cisco IOS. So, I didn’t give it a separate treatment in this blog article.

Cisco NX-OS
Originally named SAN-OS (where the SAN acronym stood for Storage Area Network), NX-OS offers some vast architectural improvements over traditional Cisco IOS. Although it was originally a 32-bit operating system, it has since evolved into a 64-bit OS. Unlike Cisco IOS, NX-OS doesn’t share a single memory space, and it does support symmetric multiprocessing. It also allows preemptive multitasking, which allows a high priority process to get CPU time ahead of a lower priority process.

NX-OS is built on a Linux kernel, and it natively supports the Python language for creating scripts on Cisco Nexus switches. Additionally, it has multiple high availability features, and it doesn’t load all of its features at once. Instead, you can specify which features you wish to activate. Eliminating the running of unnecessary features frees up memory and processor cycles for those features you do want. However, when it comes to configuration, there are many similarities between NX-OS and Cisco IOS.

Cisco IOS-XR
Originally designed for 64-bit operation, IOS-XR offers many of the enhancements found in NX-OS (e.g. symmetric multiprocessing, separate memory spaces, and activating only services that are needed). However, while NX-OS is built on a Linux kernel, IOS-XR is built on the QNX Neutrino Microkernel. QNX is similar to UNIX and is now owned by BlackBerry.

A feature IOS-XR offers that is not found in NX-OS is the ability to have a single instance of the operating system controlling multiple chassis. Also, since IOS-XR targets service provider environments, it offers support for interfaces such as DWDM and Packet over SONET.

While IOS-XR configuration does bear some similarity to traditional Cisco IOS, the differences are much more noticeable, as compared to the differences found in NX-OS. As one example, when you’re finished entering configuration commands, you need to commit your changes to make them take effect and before exiting configuration mode.

Cat3650#show process | i ios
8541 2842987 928420262 67 104/8192 iosd
8541 8541 1268019 850718114 0 104/8192 iosd
8541 9070 149928 62901456 0 104/8192 iosd
8541 9071 1371140 11995535 0 104/8192 iosd
8541 9072 52120 2777487 0 104/8192 iosd
8541 9073 1780 27670 0 104/8192 iosd

Show process detail process 8541 shows you all the IOS processes like routing protocols , syslog etc…