mem, kmem, port — system memory, kernel memory and system ports

Description

/dev/mem is a character device file that is an image of the main memory of the computer. It may be used, for example, to examine (and even patch) the system.

Byte addresses in /dev/mem are interpreted as physical memory addresses. References to nonexistent locations cause errors to be returned.

Examining and patching is likely to lead to unexpected results when read-only or write-only bits are present.

Since Linux 2.6.26, and depending on the architecture, the CONFIG_STRICT_DEVMEM kernel configuration option limits the areas which can be accessed through this file. For example: on x86, RAM access is not allowed but accessing memory-mapped PCI regions is.

It is typically created by:

mknod -m 660 /dev/mem c 1 1
chown root:kmem /dev/mem

The file /dev/kmem is the same as /dev/mem, except that the kernel virtual memory rather than physical memory is accessed. Since Linux 2.6.26, this file is available only if the CONFIG_DEVKMEM kernel configuration option is enabled.

It is typically created by:

mknod -m 640 /dev/kmem c 1 2
chown root:kmem /dev/kmem

/dev/port is similar to /dev/mem, but the I/O ports are accessed.

It is typically created by:

mknod -m 660 /dev/port c 1 4
chown root:kmem /dev/port

Files

/dev/mem
/dev/kmem
/dev/port

See Also

chown(1), mknod(1), ioperm(2)

Colophon

This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Referenced By

biosdecode(8), dmidecode(8), inb(1), ownership(8), pg_top(1), vpddecode(8), xload(1).

The man pages kmem(4) and port(4) are aliases of mem(4).

2015-01-02 Linux Programmer's Manual