Modular IOS
From Internetworkpro
Contents |
[edit] Challenges with Existing IOS
IOS was designed back in 1987 where modern operating system principals such as protected memory and process scheduling were either immature, non-existent or infeasible for a high performance packet routing system.
Over time, IOS became an industry standard in feature completeness, look and feel. Its feature set extends from basic routing and switching commands through to call control (via CallManager express), IDS and stateful firewalling, core routing and wireless access points. Rewriting IOS across all feature sets would be a massive engineering undertaking and not cost-effective.
[edit] Major IOS Shortcomings
While IOS can be regarded as a very stable operating system, it does have a number of shortcomings:
- Run to completion - When IOS runs a process (such as OSPF) it hands control of the system over to this process. When the process has completed its task, it hands control back to IOS. This is known as run to completion. The major shortcoming of this is that if a process takes an abnormally long time, or encounters an exception, the main operating system may hang, become unresponsive or even crash.
- No protected memory - IOS processes do not have protected memory and therefore may leak in to one another. Thus, a bug in one subsystem may affect the entire stability of the system (i.e. a bug in the CDP process could crash the entire operating system)
- No patching or restarting of processes - IOS processes, due to having no memory protection or scheduling in memory, cannot be restarted or upgraded in service, meaning an image upgrade requires a reload or failover of a device
[edit] Modular IOS
Modular IOS was designed for the Catalyst 6500 and codenamed iON (IOS on Neutrino) during development. It is based on a POSIX model provided by the QNX kernel (similar to IOS-XR).
[edit] Issues Addressed in Modular IOS
Each of the above is addressed in Modular IOS.
- Run to completion is solved by using a modern multitasking kernel, which can schedule time to each individual process to run in a predefined cycle. In this case, a process can be isolated as having caused an exception and restarted without waiting
- Memory protection is implemented allowing full separation of processes
- Patching and restarting of processes is supported fully, as well as full ISSU
[edit] Availability and Feature Support
Modular IOS was available beginning with 12.2SXF and is only available for the 6500.
The goal of Modular IOS is to obtain initial feature parity with native IOS and then ultimately with CatOS.
At present, Modular IOS lacks the following major features compared to Native IOS. These are expected to be addressed in 12.2(33)SXH.

