---
name: "mem"
section: "4"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd"]
url: "https://new.carta.tech/mem/4"
---

# mem(4)

memory files

## NAME

**mem**, **kmem** – memory files

## DESCRIPTION

The file */dev/mem* is an interface to the physical memory of the computer. Byte offsets in this file are interpreted as physical memory addresses. Reading and writing this file is equivalent to reading and writing memory itself. An error will be returned if an attempt is made to reference an offset outside of */dev/mem*.

Kernel virtual memory is accessed via the file */dev/kmem* in the same manner as */dev/mem*. Only kernel virtual addresses that are currently mapped to memory are allowed.

On the alpha, physical memory may be discontiguous; kernel virtual memory begins at 0xfffffc0000230000.

Even with sufficient file system permissions, these devices can only be opened when the [securelevel(7)](/securelevel/7.md) is insecure or when the *kern.allowkmem* [sysctl(2)](/sysctl/2.md) variable is set.

## FILES

- /dev/mem

  - /dev/kmem

  ## SEE ALSO

[securelevel(7)](/securelevel/7.md)

## HISTORY

The */dev/mem* file appeared in Version 1 AT&T UNIX, */dev/kmem* appeared in Version 5 AT&T UNIX.
