Linux supporte la mémoire virtuelle, c'est à dire l'utilisation d'un disque comme extension de la RAM de telle sorte que la taille effective de la mémoire utilisable s'accroît d'autant. Le noyau écrira le contenu d'un bloc mémoire inutilisé sur le disque dur, ainsi la mémoire vive peut être utilisée pour autre chose. Quand ce contenu est à nouveau nécessaire, il est relu en mémoire. Tout ceci se déroule de façon transparente pour l'utilisateur ; les programmes s'exécutant sous Linux voient seulement toute la mémoire disponible et ne remarquent pas que des parties de celle-ci se trouvent sur le disque de temps à autre. Bien sûr, lire et écrire sur le disque dur est plus lent (de l'ordre de mille fois plus lent) qu'en utilisant la mémoire réelle et donc les programmes ne s'exécutent pas aussi vite. La partie du disque dur utilisée comme mémoire virtuelle est appelée espace de swap.
Linux peut utiliser soit un fichier normal du système de fichiers, soit une partition séparée pour l'espace de swap. Une partition de swap est plus rapide, mais il est plus facile de changer la taille d'un fichier de swap (il n'y a pas besoin de repartitionner tout le disque dur et de tout réinstaller). Lorsque l'on sait combien d'espace de swap est nécessaire, on choisit une partition de swap, mais si l'on n'est pas sûr on peut d'abord utiliser un fichier de swap, utiliser pendant un certain temps le système pour évaluer la taille nécessaire de cet espace, puis créer une partition de swap lorsqu'on est sûr de cette taille.
On doit aussi savoir que Linux permet d'utiliser plusieurs partitions et/ou fichiers de swap en même temps. Ceci signifie que si, occasionnellement, on a besoin d'une taille inhabituelle d'espace de swap, on peut alors mettre temporairement en place un fichier de swap supplémentaire plutôt que de réserver en permanence la totalité de cet espace.
Une remarque sur la terminologie des systèmes d'exploitation : en Informatique, on distingue habituellement le << swapping >> (écriture de l'ensemble d'un processus dans un espace de swap), et le << paging >> (écriture de parties de tailles fixes, de quelques kilo-octets). Le paging est normalement plus efficace et c'est pourquoi Linux l'utilise, mais la plupart des documents utilisent le terme de << swap >> alors qu'il ne s'agit que de << paging >>4.1