add directory Minix
This commit is contained in:
236
Minix/CD-ROM-2.0/MINIX/MANUALS/CAT4/DEV.4
Normal file
236
Minix/CD-ROM-2.0/MINIX/MANUALS/CAT4/DEV.4
Normal file
@@ -0,0 +1,236 @@
|
||||
|
||||
|
||||
DEV(4) Minix Programmer's Manual DEV(4)
|
||||
|
||||
|
||||
NAME
|
||||
dev - device files in /dev
|
||||
|
||||
DESCRIPTION
|
||||
Device files are the eyes and ears of the system. Through the device
|
||||
files one has access to the disks, terminals and other parts of the
|
||||
machine. Single bytes or disk blocks may be transferred to or from a
|
||||
device with ordinary read(2) or write(2) calls, byte positions set with
|
||||
lseek(2), or more complicated control functions performed with ioctl(2).
|
||||
|
||||
Device files as found in /dev have several attributes that must be
|
||||
considered. Here are two examples as ls -l shows them:
|
||||
|
||||
brw-rw-rw- 1 root operator 2, 1 Jun 10 1995 fd1
|
||||
crw--w---- 1 kjb tty 4, 0 May 11 09:41 console
|
||||
|
||||
Most attributes are the same as for a regular file and have the same
|
||||
function. The file type and the major and minor device numbers are
|
||||
special to devices.
|
||||
|
||||
Character devices are marked with a c as a file type letter. Any I/O on
|
||||
a character device is sent down to the device driver without any
|
||||
interpretation. This means that a process doing the I/O must know the
|
||||
characteristics of the device and deal with them appropriately.
|
||||
|
||||
Block devices provoke the file system server into buffering the data on
|
||||
those devices. Data read or written by processes is passed through the
|
||||
file system block cache. Unaligned bytes read or written are extracted
|
||||
or reassembled by the file server from or to whole blocks in the cache.
|
||||
The file server transfers data to or from the device driver as blocks to
|
||||
positions at block size boundaries. These blocks are Minix blocks of
|
||||
1024 bytes, disk devices usually have a 512 byte block size. Only block
|
||||
devices can be mounted as part of the file system tree if they contain a
|
||||
Minix file system.
|
||||
|
||||
The major device number (2 for fd1 and 4 for console) are used by FS to
|
||||
find the device driver that manages a device. The minor device number (1
|
||||
for fd1 and 0 for console) is passed to the driver to select a device
|
||||
among a number of related devices that are all managed by that driver.
|
||||
The device drivers are usually kernel tasks under Minix, small processes
|
||||
that are contained within the address space of the kernel. The following
|
||||
tasks and associated devices exist:
|
||||
|
||||
Memory (major 1)
|
||||
The ram, mem, kmem, and null devices are managed by the memory task. The
|
||||
ram device is a block device for a chunk of memory that is the RAM disk.
|
||||
Any byte read from or written to the ram device is copied from or to that
|
||||
memory chunk. The mem device is a character device for the entire
|
||||
address space of the system, but kmem only for the kernel data area.
|
||||
These two devices allow programs like ps(1) to hunt around the system
|
||||
|
||||
|
||||
1
|
||||
|
||||
|
||||
|
||||
DEV(4) Minix Programmer's Manual DEV(4)
|
||||
|
||||
|
||||
looking for interesting bits. The null device is a data sink. It
|
||||
happily swallows any bytes written to it, and returns nothing on a read.
|
||||
|
||||
Floppy disk (major 2)
|
||||
The fd0, fd0a, fd0b, fd0c, and fd0d block devices are the first floppy
|
||||
disk and the four partitions that may exist on a that floppy disk.
|
||||
Likewise are fd1 and fd1[a-d] the device and partitions for the second
|
||||
floppy disk. The floppy disk devices are described in detail in fd(4).
|
||||
Partitioning in general is explained in hd(4).
|
||||
|
||||
Hard disk (major 3)
|
||||
The first hard disk can be accessed by block device hd0. This device
|
||||
addresses the entire hard disk from the first to the last sector. A hard
|
||||
disk is normally partitioned in up to four primary partitions, hd1, hd2,
|
||||
hd3, and hd4. Each of these devices accesses a range of sectors on the
|
||||
hd0 device. It is customary to give each operating system on a disk a
|
||||
primary partition. So the MS-DOS C: "drive" can be on hd1, and Minix can
|
||||
be on hd2. Minix wants to have several partitions on its own, so hd2 can
|
||||
be further subdivided into the subpartitions hd2a, hd2b, hd2c, and hd2d.
|
||||
/dev contains devices for the first and second hard disk (hd0 and hd5)
|
||||
their primary partitions (hd[1-46-9]) and subpartitions thereof
|
||||
(hd[1-46-9][a-d]). More detail can be found in hd(4).
|
||||
|
||||
Terminals (minor 4)
|
||||
The TTY driver manages the system console device, aptly named console,
|
||||
the serial lines, tty00 and tty01, and the pseudo ttys. Through the
|
||||
console device one can display characters on a screen attached to a
|
||||
monochrome, Hercules, color, or VGA adapter. The ttyc1, ttyc2, etc.
|
||||
devices are the so-called "virtual consoles" that share the one console
|
||||
display. One can select which virtual console is to be visible on the
|
||||
screen and take input from the keyboard. To allow remote login the
|
||||
devices with minor numbers of 128 or higher offer virtual terminals.
|
||||
These pseudo ttys come in tty, pty pairs that form a pipe between
|
||||
processes running under the tty, and a controlling process attached to
|
||||
the pty side. See also console(4), and tty(4).
|
||||
|
||||
Anonymous TTY (major 5)
|
||||
This is just one device named tty that is a synonym for the controlling
|
||||
tty of a process. This device is not managed by any device driver, but
|
||||
is handled by FS itself. A process can get access to the terminal it is
|
||||
running under by using /dev/tty.
|
||||
|
||||
Line printer (major 6)
|
||||
The lp device sends any bytes written to it to the printer.
|
||||
|
||||
TCP/IP (major 7)
|
||||
The TCP/IP task is not a kernel task, but a server like MM and FS. It
|
||||
sits between FS and the DP8390 task that manages the ethernet boards.
|
||||
Together they implement the TCP/IP protocol. See also ip(4).
|
||||
|
||||
|
||||
|
||||
2
|
||||
|
||||
|
||||
|
||||
DEV(4) Minix Programmer's Manual DEV(4)
|
||||
|
||||
|
||||
CD-ROM (major 8)
|
||||
This is the CD-ROM driver for the Mitsumi proprietary CD-ROM interface.
|
||||
The cd0 device addresses the whole CD, with extra cd[1-4] and
|
||||
cd[1-4][a-d] devices for if the CD also contains partitions with Minix
|
||||
file systems.
|
||||
|
||||
SCSI disks and tapes (major 10)
|
||||
The sd* devices are disks in the same way as the hd* devices. Except
|
||||
that these disks are SCSI disks attached to an Adaptec 1540 controller or
|
||||
compatible. The driver also manages the rst* and nrst* tape devices
|
||||
(rewinding or non-rewinding). See sd(4).
|
||||
|
||||
Audio (major 13)
|
||||
The audio device can be used to produce or record air vibrations using a
|
||||
Soundblaster 16 type audio card. See audio(4).
|
||||
|
||||
Mixer (major 14)
|
||||
The mixer device is used to control the audio driver.
|
||||
|
||||
FILES
|
||||
|
||||
/dev/* All Minix devices
|
||||
|
||||
SEE ALSO
|
||||
read(2), write(2), lseek(2), ioctl(2), console(4), fd(4), hd(4), ip(4),
|
||||
sd(4), tty(4), MAKEDEV(8).
|
||||
|
||||
DIAGNOSTICS
|
||||
There are five prominent errors that processes accessing device files may
|
||||
provoke:
|
||||
|
||||
ENODEV - No such device
|
||||
There is no driver managing the device class this device belongs to.
|
||||
Either the driver is configured out, or it is not loaded (inet).
|
||||
|
||||
ENXIO - No such device or address
|
||||
This device is not available. Either the driver does not support it
|
||||
at all, or the hardware isn't available, i.e. accessing the second
|
||||
disk on a system with only one disk.
|
||||
|
||||
EACCES - Permission denied
|
||||
This error may cause a lot of head scratching if ls -l shows a
|
||||
device file to be writable. The media you are trying to access is
|
||||
simply physically write protected!
|
||||
|
||||
EINVAL - Invalid argument
|
||||
Devices may not like reads or writes that are not block multiples,
|
||||
or very big transfers, etc. The device manual page should list the
|
||||
limits.
|
||||
|
||||
|
||||
|
||||
3
|
||||
|
||||
|
||||
|
||||
DEV(4) Minix Programmer's Manual DEV(4)
|
||||
|
||||
|
||||
EIO - I/O error
|
||||
This may be a real I/O error, i.e. a read or write on the device
|
||||
failing due to a media error. But it may also be the result of an
|
||||
operation that a device can't do, or an empty tape drive, etc.
|
||||
|
||||
NOTES
|
||||
Some devices are not present by default. The MAKEDEV script knows how to
|
||||
make them.
|
||||
|
||||
MS-DOS equivalents
|
||||
The names of MS-DOS devices map to Minix devices as follows:
|
||||
|
||||
A: fd0
|
||||
B: fd1
|
||||
C: hd1, sd1 (usually the first partition)
|
||||
D: hd6, sd1, sd6 (or an extended partition)
|
||||
CON console
|
||||
COM1 tty00 (UNIX counts from 0)
|
||||
LPT1 lp
|
||||
|
||||
AUTHOR
|
||||
Kees J. Bot (kjb@cs.vu.nl)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4
|
||||
|
||||
Reference in New Issue
Block a user