---
name: "io"
section: "4"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd", "openbsd"]
url: "https://new.carta.tech/io/4"
---

# io(4)

I/O privilege file

## NAME

**io** – I/O privilege file

## SYNOPSIS

**device io**

## DESCRIPTION

The special file */dev/io* is a controlled security hole that allows a process to gain I/O privileges (which are normally reserved for kernel-internal code). Any process that holds a file descriptor on */dev/io* open will get its *IOPL* bits in the flag register set, thus allowing it to perform direct I/O operations. This can be useful in order to write userland programs that handle some hardware directly. Note that even read-only access will grant the full I/O privileges.

In addition to any file access permissions on */dev/io*, the kernel enforces that only the super-user may open this device.

## FILES

- */dev/io*

  ## SEE ALSO

[i386\_get\_ioperm(2)](/i386_get_ioperm/2.md), [i386\_set\_ioperm(2)](/i386_set_ioperm/2.md), [mem(4)](/mem/4.md)

## HISTORY

The **io** file appeared in FreeBSD 1.0.
