The IOS file itself is several megabytes in size and is stored in a semi-permanent memory area called flash. The figure shows a compact flash card. Flash memory provides non-volatile storage. This means that the contents of the memory are not lost when the device loses power. Although the contents of flash are not lost during a loss of power, they can be changed or overwritten if needed. This allows the IOS to be upgraded to a newer version or to have new features added without replacing hardware. Additionally, flash can be used to store multiple versions of IOS software at the same time.

In many Cisco devices, the IOS is copied from flash into random access memory (RAM) when the device is powered on. The IOS then runs from RAM when the device is operating. RAM has many functions including storing data that is used by the device to support network operations. Running the IOS in RAM increases performance of the device, however, RAM is considered volatile memory because data is lost during a power cycle. A power cycle is when a device is purposely or accidently powered off and then powered back on.

The quantity of flash memory and RAM memory required for a given IOS varies dramatically. For the purposes of network maintenance and planning, it is important to determine the flash and RAM requirements for each device, including the maximum flash and RAM configurations. It is possible that the requirements of the newest versions of IOS could demand more RAM and flash than can be installed on some devices.