668 lines
14 KiB
HTML
668 lines
14 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>The /dev directory</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
|
|
REL="HOME"
|
|
TITLE="Linux System Administrators Guide"
|
|
HREF="index.html"><LINK
|
|
REL="UP"
|
|
TITLE="Overview of the Directory Tree"
|
|
HREF="dir-tree-overview.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="The /etc directory"
|
|
HREF="etc-fs.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="The /usr filesystem."
|
|
HREF="usr-fs.html"></HEAD
|
|
><BODY
|
|
CLASS="SECT1"
|
|
BGCOLOR="#FFFFFF"
|
|
TEXT="#000000"
|
|
LINK="#0000FF"
|
|
VLINK="#840084"
|
|
ALINK="#0000FF"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>Linux System Administrators Guide: </TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="etc-fs.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
>Chapter 3. Overview of the Directory Tree</TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="usr-fs.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><DIV
|
|
CLASS="SECT1"
|
|
><H1
|
|
CLASS="SECT1"
|
|
><A
|
|
NAME="DEV-FS"
|
|
></A
|
|
>3.4. The <TT
|
|
CLASS="FILENAME"
|
|
>/dev</TT
|
|
> directory</H1
|
|
><P
|
|
>The <TT
|
|
CLASS="FILENAME"
|
|
>/dev</TT
|
|
> directory contains
|
|
the special device files for all the devices.
|
|
The device files are created during
|
|
installation, and later with the <B
|
|
CLASS="COMMAND"
|
|
>/dev/MAKEDEV</B
|
|
>
|
|
script. The <B
|
|
CLASS="COMMAND"
|
|
>/dev/MAKEDEV.local</B
|
|
> is a script
|
|
written by the system administrator that creates local-only device
|
|
files or links (i.e. those that are not part of the standard
|
|
<B
|
|
CLASS="COMMAND"
|
|
>MAKEDEV</B
|
|
>, such as device files for some
|
|
non-standard device driver).</P
|
|
><P
|
|
>This list which follows is by no means exhaustive or as
|
|
detailed as it could be. Many of these device files will need
|
|
support compiled into your kernel for the hardware. Read the kernel
|
|
documentation to find details of any particular device.</P
|
|
><P
|
|
>If you think there are other devices which should be included
|
|
here but aren't then let me know. I will try to include them in the
|
|
next revision.</P
|
|
><DIV
|
|
CLASS="GLOSSLIST"
|
|
><DL
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/dsp</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Digital Signal Processor. Basically this forms
|
|
the interface between software which produces sound and your
|
|
soundcard. It is a character device on major node 14 and minor
|
|
3.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/fd0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The first floppy drive. If you are lucky enough
|
|
to have several drives then they will be numbered sequentially.
|
|
It is a character device on major node 2 and minor
|
|
0.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/fb0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The first framebuffer device. A framebuffer is
|
|
an abstraction layer between software and graphics hardware.
|
|
This means that applications do not need to know about what kind
|
|
of hardware you have but merely how to communicate with the
|
|
framebuffer driver's API (Application Programming Interface)
|
|
which is well defined and standardized. The framebuffer is a
|
|
character device and is on major node 29 and minor
|
|
0.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/hda</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/hda</TT
|
|
> is the master IDE
|
|
drive on the primary IDE controller.
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/hdb</TT
|
|
> the slave drive on the
|
|
primary controller. <TT
|
|
CLASS="FILENAME"
|
|
>/dev/hdc</TT
|
|
>
|
|
, and <TT
|
|
CLASS="FILENAME"
|
|
>/dev/hdd</TT
|
|
>
|
|
are the master and slave devices
|
|
on the secondary controller respectively. Each disk is divided
|
|
into partitions. Partitions 1-4 are primary partitions and
|
|
partitions 5 and above are logical partitions inside extended
|
|
partitions. Therefore the device file which references each
|
|
partition is made up of several parts. For example
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/hdc9</TT
|
|
> references partition 9 (a logical
|
|
partition inside an extended partition type) on the master IDE
|
|
drive on the secondary IDE controller. The major and minor node
|
|
numbers are somewhat complex. For the first IDE controller all
|
|
partitions are block devices on major node 3. The master drive
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>hda</TT
|
|
> is at minor 0 and the
|
|
slave drive <TT
|
|
CLASS="FILENAME"
|
|
>hdb</TT
|
|
> is at minor 64. For
|
|
each partition inside the drive add the partition number to the minor
|
|
minor node number for the drive. For example
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/hdb5</TT
|
|
> is major 3, minor 69 (64 + 5 =
|
|
69). Drives on the secondary interface are handled the same way,
|
|
but with major node 22.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/ht0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The first IDE tape drive. Subsequent drives are
|
|
numbered <TT
|
|
CLASS="FILENAME"
|
|
>ht1</TT
|
|
> etc. They are character
|
|
devices on major node 37 and start at minor node 0 for
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>ht0</TT
|
|
> 1 for <TT
|
|
CLASS="FILENAME"
|
|
>ht1</TT
|
|
>
|
|
etc.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/js0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The first analogue joystick. Subsequent joysticks
|
|
are numbered <TT
|
|
CLASS="FILENAME"
|
|
>js1</TT
|
|
>, <TT
|
|
CLASS="FILENAME"
|
|
>js2</TT
|
|
>
|
|
etc. Digital joysticks are called <TT
|
|
CLASS="FILENAME"
|
|
>djs0</TT
|
|
>,
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>djs1</TT
|
|
> and so on. They are character devices
|
|
on major node 15. The analogue joysticks start at minor node 0
|
|
and go up to 127 (more than enough for even the most fanatic
|
|
gamer). Digital joysticks start at minor node
|
|
128.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/lp0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The first parallel printer device. Subsequent
|
|
printers are numbered <TT
|
|
CLASS="FILENAME"
|
|
>lp1</TT
|
|
>,
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>lp2</TT
|
|
> etc. They are character devices on
|
|
major mode 6 and minor nodes starting at 0 and numbered
|
|
sequentially.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/loop0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The first loopback device. Loopback devices are
|
|
used for mounting filesystems which are not located on other
|
|
block devices such as disks. For example if you wish to mount
|
|
an iso9660 CD ROM image without burning it to CD then you need
|
|
to use a loopback device to do so. This is usually transparent
|
|
to the user and is handled by the <B
|
|
CLASS="COMMAND"
|
|
>mount</B
|
|
>
|
|
|
|
command. Refer to the manual pages for <B
|
|
CLASS="COMMAND"
|
|
>mount</B
|
|
>
|
|
and <B
|
|
CLASS="COMMAND"
|
|
>losetup</B
|
|
>.
|
|
The loopback devices are block
|
|
devices on major node 7 and with minor nodes starting at 0 and
|
|
numbered sequentially.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/md0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>First metadisk group. Metadisks are related to
|
|
RAID (Redundant Array of Independent Disks) devices. Please
|
|
refer to the most current RAID HOWTO at the LDP for more details.
|
|
This can be found at
|
|
<A
|
|
HREF="http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html"
|
|
TARGET="_top"
|
|
> http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html</A
|
|
>.
|
|
Metadisk devices are block devices on major node 9 with minor
|
|
nodes starting at 0 and numbered
|
|
sequentially.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/mixer</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>This is part of the OSS (Open Sound System)
|
|
driver. Refer to the OSS documentation at <A
|
|
HREF="http://www.opensound.com"
|
|
TARGET="_top"
|
|
>http://www.opensound.com</A
|
|
>
|
|
for more details. It is a character device on major node 14,
|
|
minor node 0.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/null</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The bit bucket. A black hole where you can send
|
|
data for it never to be seen again. Anything sent to
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/null</TT
|
|
> will disappear. This can be
|
|
useful if, for example, you wish to run a command but not have
|
|
any feedback appear on the terminal. It is a character device
|
|
on major node 1 and minor node 3.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/psaux</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The PS/2 mouse port. This is a character device
|
|
on major node 10, minor node 1.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/pda</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Parallel port IDE disks. These are named
|
|
similarly to disks on the internal IDE controllers
|
|
(<TT
|
|
CLASS="FILENAME"
|
|
>/dev/hd*</TT
|
|
>). They are block devices on major
|
|
node 45. Minor nodes need slightly more explanation here. The
|
|
first device is <TT
|
|
CLASS="FILENAME"
|
|
>/dev/pda</TT
|
|
> and it is on minor
|
|
node 0. Partitions on this device are found by adding the
|
|
partition number to the minor number for the device. Each
|
|
device is limited to 15 partitions each rather than 63 (the
|
|
limit for internal IDE disks). <TT
|
|
CLASS="FILENAME"
|
|
>/dev/pdb</TT
|
|
>
|
|
|
|
minor nodes start at 16, <TT
|
|
CLASS="FILENAME"
|
|
>/dev/pdc</TT
|
|
>
|
|
|
|
at 32 and <TT
|
|
CLASS="FILENAME"
|
|
>/dev/pdd</TT
|
|
> at 48. So for example the
|
|
minor node number for <TT
|
|
CLASS="FILENAME"
|
|
>/dev/pdc6</TT
|
|
> would be 38 (32 +
|
|
6 = 38). This scheme limits you to 4 parallel disks of 15
|
|
partitions each.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/pcd0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Parallel port CD ROM drives. These are numbered
|
|
from 0 onwards. All are block devices on major node 46.
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/pcd0</TT
|
|
> is on minor node 0 with
|
|
subsequent drives being on minor nodes 1, 2, 3
|
|
etc.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/pt0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>Parallel port tape devices. Tapes do not have
|
|
partitions so these are just numbered sequentially. They are
|
|
character devices on major node 96. The minor node numbers
|
|
start from 0 for <TT
|
|
CLASS="FILENAME"
|
|
>/dev/pt0</TT
|
|
>, 1 for
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/pt1</TT
|
|
>, and so on.
|
|
</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/parport0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The raw parallel ports. Most devices which are
|
|
attached to parallel ports have their own drivers. This is a
|
|
device to access the port directly. It is a character device on
|
|
major node 99 with minor node 0. Subsequent devices after the
|
|
first are numbered sequentially incrementing the minor
|
|
node.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/random</TT
|
|
> or
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/urandom</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>These are kernel random number generators.
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/random</TT
|
|
> is a non-deterministic
|
|
generator which means that the value of the next number cannot
|
|
be guessed from the preceding ones. It uses the entropy of the
|
|
system hardware to generate numbers. When it has no more
|
|
entropy to use then it must wait until it has collected more
|
|
before it will allow any more numbers to be read from it.
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/urandom</TT
|
|
> works similarly. Initially it
|
|
also uses the entropy of the system hardware, but when there is
|
|
no more entropy to use it will continue to return numbers using
|
|
a pseudo random number generating formula. This is considered
|
|
to be less secure for vital purposes such as cryptographic key
|
|
pair generation. If security is your overriding concern then
|
|
use <TT
|
|
CLASS="FILENAME"
|
|
>/dev/random</TT
|
|
>, if speed is more important
|
|
then <TT
|
|
CLASS="FILENAME"
|
|
>/dev/urandom</TT
|
|
> works fine. They are
|
|
character devices on major node 1 with minor nodes 8 for
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/random</TT
|
|
> and 9 for
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/urandom</TT
|
|
>.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/sda</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The first SCSI drive on the first SCSI bus.
|
|
The following drives are named similar to IDE drives.
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/sdb</TT
|
|
> is the second SCSI drive,
|
|
<TT
|
|
CLASS="FILENAME"
|
|
>/dev/sdc</TT
|
|
> is the third SCSI drive, and so
|
|
forth.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/ttyS0</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>The first serial port. Many times this it the port used
|
|
to connect an external modem to your system.</P
|
|
></DD
|
|
><DT
|
|
><B
|
|
><TT
|
|
CLASS="FILENAME"
|
|
>/dev/zero</TT
|
|
></B
|
|
></DT
|
|
><DD
|
|
><P
|
|
>This is a simple way of getting many 0s. Every
|
|
time you read from this device it will return 0. This can be
|
|
useful sometimes, for example when you want a file of fixed
|
|
length but don't really care what it contains. It is a
|
|
character device on major node 1 and minor node
|
|
5.</P
|
|
></DD
|
|
></DL
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="etc-fs.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="usr-fs.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>The <TT
|
|
CLASS="FILENAME"
|
|
>/etc</TT
|
|
> directory</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="dir-tree-overview.html"
|
|
ACCESSKEY="U"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>The <TT
|
|
CLASS="FILENAME"
|
|
>/usr</TT
|
|
> filesystem.</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |