DEV.4
上传用户:jnzhq888
上传日期:2007-01-18
资源大小:51694k
文件大小:9k
- 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