Fundamentals 11 min read

Understanding Linux Virtual Memory: Paging, Swapping, and Management Commands

This article explains the core concepts of Linux virtual memory, including why it exists, how paging and page tables work, the role of the MMU, swap usage, common pitfalls, and practical commands for inspecting and tuning memory behavior on a Linux system.

ITPUB
ITPUB
ITPUB
Understanding Linux Virtual Memory: Paging, Swapping, and Management Commands

Background

Virtual memory provides an abstraction layer between the fast CPU and slower I/O devices, allowing multiple processes to run concurrently without memory conflicts.

Purpose of Virtual Memory

Multitasking improves CPU utilization but creates conflicts when several processes access memory simultaneously. Virtual memory gives each process its own contiguous address space, eliminating these conflicts.

Paging and Page Tables

Mapping every byte of virtual memory to a physical address would require huge tables (e.g., 32 GB for a 4 GB RAM on a 32‑bit system). The OS therefore divides memory into fixed‑size pages (typically 4 KB). The page table stores mappings from virtual pages to physical pages, reducing the table size to a few megabytes for a 4 GB system. Linux uses multi‑level page tables to further reduce memory consumption.

Address Translation and Allocation

The Memory Management Unit (MMU) translates virtual addresses to physical addresses on each memory access. If a process accesses a virtual address without a corresponding physical page, the kernel raises a page‑fault interrupt, allocates a physical page, and updates the page table.

Functions of Virtual Memory

Process Memory Management

Memory continuity: each process sees a contiguous address space, simplifying development.

Protection: page‑table entries contain permission bits for fine‑grained access control.

Data Sharing

Multiple processes can share libraries or shared‑memory regions because the OS maps the same physical pages into different virtual addresses.

Swap

When physical RAM is exhausted, Linux can move inactive pages to a swap partition on disk, giving the illusion of more memory. Swap usage can be tuned via vm.swappiness or disabled with swapoff.

Common Questions

32‑bit vs 64‑bit

A 32‑bit CPU can address up to 4 GB of memory; larger RAM is inaccessible. A 64‑bit system can address far more, but current Linux kernels typically support up to 256 GB of RAM. Running 64‑bit applications on a 32‑bit kernel is not possible.

Direct Physical Memory Access

Linux exposes hardware devices under /dev/. The physical memory can be accessed via /dev/mem by the root user.

Java Processes and Virtual Memory

Java often shows large VIRT values because the Glibc arena allocator reserves virtual address space, and each thread stack consumes 1 MB of virtual memory. The actual physical usage is reflected in the RES column.

Useful Management Commands

Viewing Memory Status

Use free, vmstat, or cat /proc/meminfo to see overall memory usage, including buffers and caches.

Inspecting a Process's Virtual Memory

Run pmap <pid> (optionally with -XX) to list the virtual memory layout of a specific process.

Modifying Memory Configuration

Adjust kernel parameters with sysctl vm.<option>=<value> or by editing files under /proc/sys/vm/.

Controlling Swap

Set vm.swappiness=0 to minimize swap usage, or disable it entirely with swapoff.

Conclusion

Virtual memory simplifies process isolation, enables memory sharing, and provides a mechanism for extending usable memory via swap. Understanding paging, page tables, the MMU, and related Linux tools is essential for performance tuning and debugging.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

LinuxVirtual MemorySwapOS fundamentalsPaging
ITPUB
Written by

ITPUB

Official ITPUB account sharing technical insights, community news, and exciting events.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.