267 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			267 lines
		
	
	
		
			7.9 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .TH DEV 4
 | |
| .SH NAME
 | |
| dev \- device files in /dev
 | |
| .SH 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
 | |
| .BR read (2)
 | |
| or
 | |
| .BR write (2)
 | |
| calls, byte positions set with
 | |
| .BR lseek (2),
 | |
| or more complicated control functions performed with
 | |
| .BR ioctl(2).
 | |
| .PP
 | |
| Device files as found in
 | |
| .B /dev
 | |
| have several attributes that must be considered.  Here are two examples as
 | |
| .B "ls \-l"
 | |
| shows them:
 | |
| .PP
 | |
| .RS
 | |
| .nf
 | |
| .if t .ft C
 | |
| brw-rw-rw-  1 root     operator   2,   1 Jun 10  1995 fd1
 | |
| crw--w----  1 kjb      tty        4,   0 May 11 09:41 console
 | |
| .if t .ft P
 | |
| .fi
 | |
| .RE
 | |
| .PP
 | |
| 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.
 | |
| .PP
 | |
| Character devices are marked with a
 | |
| .B 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.
 | |
| .PP
 | |
| 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 3 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 3 file
 | |
| system.
 | |
| .PP
 | |
| The major device number (2 for
 | |
| .B fd1
 | |
| and 4 for
 | |
| .BR console )
 | |
| are used by FS to find the device driver that manages a device.  The minor
 | |
| device number (1 for
 | |
| .B fd1
 | |
| and 0 for
 | |
| .BR 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 3, small processes that are contained within the address
 | |
| space of the kernel.  The following tasks and associated devices exist:
 | |
| .SS "Memory (major 1)"
 | |
| The
 | |
| .BR ram ,
 | |
| .BR mem ,
 | |
| .BR kmem ,
 | |
| and
 | |
| .BR null
 | |
| devices are managed by the memory task.
 | |
| The
 | |
| .B ram
 | |
| device is a block device for a chunk of memory that is the RAM disk.  Any
 | |
| byte read from or written to the
 | |
| .B ram
 | |
| device is copied from or to that memory chunk.
 | |
| The
 | |
| .B mem
 | |
| device is a character device for the entire address space of the system, but
 | |
| .B kmem
 | |
| only for the kernel data area.  These two devices allow programs like
 | |
| .BR ps (1)
 | |
| to hunt around the system looking for interesting bits.
 | |
| The
 | |
| .B null
 | |
| device is a data sink.  It happily swallows any bytes written to it, and
 | |
| returns nothing on a read.
 | |
| .SS "Floppy disk (major 2)"
 | |
| The
 | |
| .BR fd0 ,
 | |
| .BR fd0p0 ,
 | |
| .BR fd0p1 ,
 | |
| .BR fd0p2 ,
 | |
| and
 | |
| .BR fd0p3
 | |
| block devices are the first floppy disk and the four partitions that may
 | |
| exist on a that floppy disk.  Likewise are
 | |
| .BR fd1
 | |
| and
 | |
| .BR fd1p[0\-3]
 | |
| the device and partitions for the second floppy disk.  The floppy disk
 | |
| devices are described in detail in
 | |
| .BR fd (4).
 | |
| Partitioning in general is explained in
 | |
| .BR controller (4).
 | |
| .SS "Controller 0 (major 3)"
 | |
| The first hard disk on controller 0 can be accessed by block device
 | |
| .BR c0d0 .
 | |
| 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,
 | |
| .BR c0d0p0 ,
 | |
| .BR c0d0p1 ,
 | |
| .BR c0d0p2 ,
 | |
| and
 | |
| .BR c0d0p3 .
 | |
| Each of these devices accesses a range of sectors on the
 | |
| .B c0d0
 | |
| device.  It is customary to give each operating system on a disk a primary
 | |
| partition.  So the Windows C: "drive" can be on
 | |
| .BR c0d0p0 ,
 | |
| and MINIX 3 can be on
 | |
| .BR c0d0p1 .
 | |
| MINIX 3 wants to have several partitions on its own, so
 | |
| .B c0d0p1
 | |
| can be further subdivided into the subpartitions
 | |
| .BR c0d0p1s0 ,
 | |
| .BR c0d0p1s1 ,
 | |
| .BR c0d0p1s2 ,
 | |
| and
 | |
| .BR c0d0p1s3 .
 | |
| .B /dev
 | |
| contains devices for the first and second hard disk
 | |
| .RB ( c0d0
 | |
| and
 | |
| .BR c0d1 ),
 | |
| their primary partitions
 | |
| .RB ( c0d[01]p[0\-3] )
 | |
| and subpartitions thereof
 | |
| .RB ( c0d[01]p[0\-3]s[0\-3] ).
 | |
| More detail can be found in
 | |
| .BR controller (4).
 | |
| .SS "Terminals (minor 4)"
 | |
| The TTY driver manages the system console device, aptly named
 | |
| .BR console ,
 | |
| the serial lines,
 | |
| .BR tty00
 | |
| and
 | |
| .BR 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
 | |
| .BR ttyc1 ,
 | |
| .BR 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
 | |
| .BR console (4),
 | |
| and
 | |
| .BR tty (4).
 | |
| .SS "Anonymous TTY (major 5)"
 | |
| This is just one device named
 | |
| .BR 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
 | |
| .BR /dev/tty .
 | |
| .SS "Line printer (major 6)"
 | |
| The
 | |
| .B lp
 | |
| device sends any bytes written to it to the printer.
 | |
| .SS "TCP/IP (major 7)"
 | |
| The TCP/IP task is not a kernel task, but a server like PM and VFS.  It sits
 | |
| between VFS and the DP8390 task that manages the ethernet boards.  Together
 | |
| they implement the TCP/IP protocol.  See also
 | |
| .BR ip (4).
 | |
| .SS "Controller 1 (major 8)"
 | |
| Like controller 0 (major 3), but managing a second controller with devices
 | |
| .BR /dev/c1* .
 | |
| .SS "Controller 2 (major 10)"
 | |
| Like controller 0.
 | |
| .SS "Controller 3 (major 12)"
 | |
| Like controller 0.
 | |
| .SS "Audio (major 13)"
 | |
| The
 | |
| .B audio
 | |
| device can be used to produce or record air vibrations using a Soundblaster
 | |
| 16 type audio card.  See
 | |
| .BR audio (4).
 | |
| .SS "Mixer (major 14)"
 | |
| The
 | |
| .B mixer
 | |
| device is used to control the audio driver.
 | |
| .SS "uds (major 18)"
 | |
| The
 | |
| .B uds
 | |
| device is used to implement unix domain sockets.
 | |
| .SH FILES
 | |
| .TP 10
 | |
| .B /dev/*
 | |
| All MINIX 3 devices
 | |
| .SH "SEE ALSO"
 | |
| .BR read (2),
 | |
| .BR write (2),
 | |
| .BR lseek (2),
 | |
| .BR ioctl (2),
 | |
| .BR console (4),
 | |
| .BR fd (4),
 | |
| .BR controller (4),
 | |
| .BR ip (4),
 | |
| .BR uds (4),
 | |
| .BR tty (4),
 | |
| .BR MAKEDEV (8).
 | |
| .SH DIAGNOSTICS
 | |
| There are five prominent errors that processes accessing device files may
 | |
| provoke:
 | |
| .IP "ENODEV \- No such device" 5
 | |
| There is no driver managing the device class this device belongs to.  Either
 | |
| the driver is configured out, or it is not loaded (inet).
 | |
| .IP "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.
 | |
| .IP "EACCES \- Permission denied"
 | |
| This error may cause a lot of head scratching if
 | |
| .B ls \-l
 | |
| shows a device file to be writable.  The media you are trying to access is
 | |
| simply physically write protected!
 | |
| .IP "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.
 | |
| .IP "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.
 | |
| .SH NOTES
 | |
| Some devices are not present by default.  The
 | |
| .BR MAKEDEV
 | |
| script knows how to make them.
 | |
| .SS "MS-DOS/Windows equivalents"
 | |
| The names of MS-DOS/Windows devices probably map to MINIX 3 devices as follows:
 | |
| .PP
 | |
| .RS
 | |
| .nf
 | |
| .ta +\w'COM1mmm'u +\w'c0d1, c0d2, c0d3mmm'u
 | |
| A:	fd0
 | |
| B:	fd1
 | |
| C:	c0d0p0	(usually the first partition)
 | |
| D:	c0d1p0, c0d2p0	(if it's another disk)
 | |
| D:	c0d0p1s0	(if it's an extended partition)
 | |
| D:	c0d1, c0d2, c0d3	(if it's a CD-ROM)
 | |
| CON	console
 | |
| COM1	tty00	(UNIX counts from 0)
 | |
| LPT1	lp
 | |
| .fi
 | |
| .RE
 | |
| .SH AUTHOR
 | |
| Kees J. Bot (kjb@cs.vu.nl)
 | 
