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


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 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.

It is typically created by:

mknod −m 660 /dev/mem c 1 1

chown root:kmem /dev/mem

The file kmem is the same as mem, except that the kernel virtual memory rather than physical memory is accessed.

It is typically created by:

mknod −m 640 /dev/kmem c 1 2

chown root:kmem /dev/kmem

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

It is typically created by:

mknod −m 660 /dev/port c 1 4

chown root:mem /dev/port




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


This page is part of release 3.52 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at−pages/.

  Copyright (c) 1993 Michael Haardt (,
    Fri Apr  2 11:32:09 MET DST 1993

This is free documentation; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.

The GNU General Public License's references to "object code"
and "executables" are to be interpreted as the output of any
document formatting or typesetting system, including
intermediate and printed output.

This manual is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public
License along with this manual; if not, see

Modified Sat Jul 24 16:59:10 1993 by Rik Faith (