Go to main content

man pages section 4: Device and Network Interfaces

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

mem(4D)

Name

mem, kmem, allkmem - physical or virtual memory access

Synopsis

/dev/mem
/dev/kmem
/dev/allkmem

Description

The file /dev/mem is a special file that provides access to the physical memory of the computer.

The file /dev/kmem is a special file that provides access to the virtual address space of the operating system kernel, excluding memory that is associated with an I/O device.

The file /dev/allkmem is a special file that provides access to the virtual address space of the operating system kernel, including memory that is associated with an I/O device. You can use any of these devices to examine and modify the system.

Byte addresses in /dev/mem are interpreted as physical memory addresses. Byte addresses in /dev/kmem and /dev/allkmem are interpreted as kernel virtual memory addresses. A reference to a non-existent location returns an error. See ERRORS for more information.

The file /dev/mem accesses physical memory; the size of the file is equal to the amount of physical memory in the computer. A 32-bit process using large file interfaces can access memory beyond 4GB using a series of read(2) and write(2) calls, a pread64() or pwrite64() call, or a combination of llseek(2) and read(2) or write(2).

Errors

EFAULT

Occurs when trying to write(2) a read-only location (allkmem), read(2) a write-only location (allkmem), or read(2) or write(2) a non-existent or unimplemented location (mem, kmem, allkmem).

EIO

Occurs when trying to read(2) or write(2) a memory location that is associated with an I/O device using the /dev/kmem special file.

ENXIO

Results from attempting to mmap(2) a non-existent physical (mem) or virtual (kmem, allkmem) memory address.

Files

/dev/mem

Provides access to the computer's physical memory.

/dev/kmem

Provides access to the virtual address space of the operating system kernel, excluding memory that is associated with an I/O device.

/dev/allkmem

Provides access to the virtual address space of the operating system kernel, including memory that is associated with an I/O device.

See Also

llseek(2), mmap(2), read(2), write(2)

Warnings

Using these devices to modify (that is, write to) the address space of a live running operating system or to modify the state of a hardware device is extremely dangerous and may result in a system panic if kernel data structures are damaged or if device state is changed.