Le fichier IOS proprement dit, dont la taille atteint plusieurs méga-octets, est stocké dans une zone de mémoire semi-permanente appelée Flash. La figure illustre une carte CompactFlash. La mémoire Flash assure un stockage non volatil. En d'autres termes, cette mémoire conserve son contenu lorsque le périphérique n'est plus sous tension. Bien que le contenu de la mémoire Flash ne soit pas perdu en cas de perte d'alimentation, il peut être modifié ou remplacé si nécessaire. Cela permet de mettre à niveau l'IOS ou de disposer de nouvelles fonctionnalités sans remplacer le matériel. En outre, la mémoire Flash peut être utilisée pour stocker plusieurs versions du logiciel IOS simultanément.
Dans de nombreux périphériques Cisco, l'IOS est copié de la mémoire Flash vers la mémoire vive lorsque le périphérique est mis sous tension. L'IOS s'exécute alors depuis la mémoire vive lorsque le périphérique fonctionne. La mémoire vive a de nombreuses utilités, notamment le stockage des données utilisées par le périphérique pour prendre en charge les fonctions réseau. L'exécution de l'IOS sur la mémoire vive augmente les performances du périphérique. Cependant, la mémoire vive est considérée comme de la mémoire volatile car les données sont perdues en cas de cycle d'alimentation. Le terme « cycle d'alimentation » fait référence à la mise hors tension (accidentelle ou non) puis sous tension d'un périphérique.
Les quantités de mémoire Flash et de mémoire vive requises varient selon la version de l'IOS. Dans le cadre de la maintenance et de la planification réseau, il est important de déterminer les exigences relatives à la mémoire Flash et à la mémoire vive pour chaque périphérique, notamment les quantités maximales de mémoire Flash et de mémoire vive. Il est possible que les nouvelles versions d'IOS requièrent plus de mémoire vive et de mémoire Flash que la quantité disponible sur les périphériques.