Sanal bellek sistemlerinde, bellek yetersizliği durumunda RAM'i geri kazanmak ve gerekirse içeriğini kalıcı depolama birimine yazmak gerekir. Dosya destekli bellek için dosyanın kendisi bu depolama birimidir. Ancak, bir işlem tarafından kullanılan değişkenleri ve veri yapılarını barındıran anonim belleğin doğal bir depolama birimi yoktur. İşte bu noktada takas (swap) alt sistemi devreye girer: anonim sayfaların kapladığı bellek başka kullanımlar için gerektiğinde bu sayfaları yazmak için bir yer sağlar. Takas işlemi, kullanılmayan veya nadiren kullanılan sayfaların daha yavaş depolamaya itilmesine olanak tanıyarak, sistemin RAM'ini o anda kullanılan veriler için kullanılabilir hale getirir.
Çekirdeğin takas alt sistemi, depolama aygıtındaki bölümler veya bir dosya sistemi içindeki sıradan dosyalar olabilen bir veya daha fazla takas dosyası kullanır. Çekirdek içinde, aktif takas dosyaları struct swap_info_struct tarafından tanımlanır, ancak genellikle basit bir tam sayı indeksi kullanılarak referans verilir. Her dosya, sayfa boyutunda yuvalara ayrılmıştır; çekirdeğin takas alanlarındaki herhangi bir yuva swp_entry_t tipi kullanılarak tanımlanabilir. Bu uzun değer iki alana ayrılmıştır: üstteki altı bit takas dosyasının indeks numarasıdır ("type" olarak adlandırılır) ve geri kalanı dosya içindeki yuva numarasıdır. Bellek yönetimi alt sistemi anonim bir sayfayı geri almaya karar verdiğinde, bir takas yuvası seçer, sayfanın içeriğini o yuvaya yazar ve ardından ilişkili takas girişini sayfa tablosu girişine kaydeder. Sayfaya bir sonraki erişim denemesi bir sayfa hatasına neden olur; çekirdek takas girişini görür, yeni bir sayfa ayırır, içeriği takas dosyasından okur ve sayfa tablosu girişini buna göre günceller.
Linux çekirdeğindeki takas sisteminin modernizasyonu, sanal bellek yönetimini daha verimli hale getirerek sistem performansını ve kararlılığını artırmayı hedefliyor.