DEV.4
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:8k
源码类别:

操作系统开发

开发平台:

C/C++

  1. .TH DEV 4
  2. .SH NAME
  3. dev - device files in /dev
  4. .SH DESCRIPTION
  5. Device files are the eyes and ears of the system.  Through the device files
  6. one has access to the disks, terminals and other parts of the machine.
  7. Single bytes or disk blocks may be transferred to or from a device with
  8. ordinary
  9. .BR read (2)
  10. or
  11. .BR write (2)
  12. calls, byte positions set with
  13. .BR lseek (2),
  14. or more complicated control functions performed with
  15. .BR ioctl(2).
  16. .PP
  17. Device files as found in
  18. .B /dev
  19. have several attributes that must be considered.  Here are two examples as
  20. .B "ls -l"
  21. shows them:
  22. .PP
  23. .RS
  24. .nf
  25. .if t .ft C
  26. brw-rw-rw-  1 root     operator   2,   1 Jun 10  1995 fd1
  27. crw--w----  1 kjb      tty        4,   0 May 11 09:41 console
  28. .if t .ft P
  29. .fi
  30. .RE
  31. .PP
  32. Most attributes are the same as for a regular file and have the same
  33. function.  The file type and the major and minor device numbers are special
  34. to devices.
  35. .PP
  36. Character devices are marked with a
  37. .B c
  38. as a file type letter.  Any I/O on a character device is sent down to the
  39. device driver without any interpretation.  This means that a process doing
  40. the I/O must know the characteristics of the device and deal with them
  41. appropriately.
  42. .PP
  43. Block devices provoke the file system server into buffering the data on
  44. those devices.  Data read or written by processes is passed through the file
  45. system block cache.  Unaligned bytes read or written are extracted or
  46. reassembled by the file server from or to whole blocks in the cache.  The
  47. file server transfers data to or from the device driver as blocks to
  48. positions at block size boundaries.  These blocks are Minix blocks of 1024
  49. bytes, disk devices usually have a 512 byte block size.  Only block devices
  50. can be mounted as part of the file system tree if they contain a Minix file
  51. system.
  52. .PP
  53. The major device number (2 for
  54. .B fd1
  55. and 4 for
  56. .BR console )
  57. are used by FS to find the device driver that manages a device.  The minor
  58. device number (1 for
  59. .B fd1
  60. and 0 for
  61. .BR console )
  62. is passed to the driver to select a device among a number of related devices
  63. that are all managed by that driver.  The device drivers are usually kernel
  64. tasks under Minix, small processes that are contained within the address
  65. space of the kernel.  The following tasks and associated devices exist:
  66. .SS "Memory (major 1)"
  67. The
  68. .BR ram ,
  69. .BR mem ,
  70. .BR kmem ,
  71. and
  72. .BR null
  73. devices are managed by the memory task.
  74. The
  75. .B ram
  76. device is a block device for a chunk of memory that is the RAM disk.  Any
  77. byte read from or written to the
  78. .B ram
  79. device is copied from or to that memory chunk.
  80. The
  81. .B mem
  82. device is a character device for the entire address space of the system, but
  83. .B kmem
  84. only for the kernel data area.  These two devices allow programs like
  85. .BR ps (1)
  86. to hunt around the system looking for interesting bits.
  87. The
  88. .B null
  89. device is a data sink.  It happily swallows any bytes written to it, and
  90. returns nothing on a read.
  91. .SS "Floppy disk (major 2)"
  92. The
  93. .BR fd0 ,
  94. .BR fd0a ,
  95. .BR fd0b ,
  96. .BR fd0c ,
  97. and
  98. .BR fd0d
  99. block devices are the first floppy disk and the four partitions that may
  100. exist on a that floppy disk.  Likewise are
  101. .BR fd1
  102. and
  103. .BR fd1[a-d]
  104. the device and partitions for the second floppy disk.  The floppy disk
  105. devices are described in detail in
  106. .BR fd (4).
  107. Partitioning in general is explained in
  108. .BR hd (4).
  109. .SS "Hard disk (major 3)"
  110. The first hard disk can be accessed by block device
  111. .BR hd0 .
  112. This device addresses the entire hard disk from the first to the last
  113. sector.  A hard disk is normally partitioned in up to four primary
  114. partitions,
  115. .BR hd1 ,
  116. .BR hd2 ,
  117. .BR hd3 ,
  118. and
  119. .BR hd4 .
  120. Each of these devices accesses a range of sectors on the
  121. .B hd0
  122. device.  It is customary to give each operating system on a disk a primary
  123. partition.  So the MS-DOS C: "drive" can be on
  124. .BR hd1 ,
  125. and Minix can be on
  126. .BR hd2 .
  127. Minix wants to have several partitions on its own, so
  128. .B hd2
  129. can be further subdivided into the subpartitions
  130. .BR hd2a ,
  131. .BR hd2b ,
  132. .BR hd2c ,
  133. and
  134. .BR hd2d .
  135. .B /dev
  136. contains devices for the first and second hard disk
  137. .RB ( hd0
  138. and
  139. .BR hd5 )
  140. their primary partitions
  141. .RB ( hd[1-46-9] )
  142. and subpartitions thereof
  143. .RB ( hd[1-46-9][a-d] ).
  144. More detail can be found in
  145. .BR hd (4).
  146. .SS "Terminals (minor 4)"
  147. The TTY driver manages the system console device, aptly named
  148. .BR console ,
  149. the serial lines,
  150. .BR tty00
  151. and
  152. .BR tty01 ,
  153. and the pseudo ttys.
  154. Through the console device one can display characters on a screen attached
  155. to a monochrome, Hercules, color, or VGA adapter.  The
  156. .BR ttyc1 ,
  157. .BR ttyc2 ,
  158. etc. devices are the so-called "virtual consoles" that share the one
  159. console display.  One can select which virtual console is to be visible on
  160. the screen and take input from the keyboard.
  161. To allow remote login the devices with minor numbers of 128 or higher offer
  162. virtual terminals.  These pseudo ttys come in tty, pty pairs that form a
  163. pipe between processes running under the tty, and a controlling process
  164. attached to the pty side.
  165. See also
  166. .BR console (4),
  167. and
  168. .BR tty (4).
  169. .SS "Anonymous TTY (major 5)"
  170. This is just one device named
  171. .BR tty
  172. that is a synonym for the controlling tty of a process.  This device is not
  173. managed by any device driver, but is handled by FS itself.  A process can
  174. get access to the terminal it is running under by using
  175. .BR /dev/tty .
  176. .SS "Line printer (major 6)"
  177. The
  178. .B lp
  179. device sends any bytes written to it to the printer.
  180. .SS "TCP/IP (major 7)"
  181. The TCP/IP task is not a kernel task, but a server like MM and FS.  It sits
  182. between FS and the DP8390 task that manages the ethernet boards.  Together
  183. they implement the TCP/IP protocol.  See also
  184. .BR ip (4).
  185. .SS "CD-ROM (major 8)"
  186. This is the CD-ROM driver for the Mitsumi proprietary CD-ROM interface.  The
  187. .BR cd0
  188. device addresses the whole CD, with extra
  189. .BR cd[1-4]
  190. and
  191. .BR cd[1-4][a-d]
  192. devices for if the CD also contains partitions with Minix file systems.
  193. .SS "SCSI disks and tapes (major 10)"
  194. The
  195. .B sd*
  196. devices are disks in the same way as the
  197. .B hd*
  198. devices.  Except that these disks are SCSI disks attached to an Adaptec
  199. 1540 controller or compatible.  The driver also manages the
  200. .B rst*
  201. and
  202. .B nrst*
  203. tape devices (rewinding or non-rewinding).  See
  204. .BR sd (4).
  205. .SS "Audio (major 13)"
  206. The
  207. .B audio
  208. device can be used to produce or record air vibrations using a Soundblaster
  209. 16 type audio card.  See
  210. .BR audio (4).
  211. .SS "Mixer (major 14)"
  212. The
  213. .B mixer
  214. device is used to control the audio driver.
  215. .SH FILES
  216. .TP 10
  217. .B /dev/*
  218. All Minix devices
  219. .SH "SEE ALSO"
  220. .BR read (2),
  221. .BR write (2),
  222. .BR lseek (2),
  223. .BR ioctl (2),
  224. .BR console (4),
  225. .BR fd (4),
  226. .BR hd (4),
  227. .BR ip (4),
  228. .BR sd (4),
  229. .BR tty (4),
  230. .BR MAKEDEV (8).
  231. .SH DIAGNOSTICS
  232. There are five prominent errors that processes accessing device files may
  233. provoke:
  234. .IP "ENODEV - No such device" 5
  235. There is no driver managing the device class this device belongs to.  Either
  236. the driver is configured out, or it is not loaded (inet).
  237. .IP "ENXIO - No such device or address"
  238. This device is not available.  Either the driver does not support it at all,
  239. or the hardware isn't available, i.e. accessing the second disk on a system
  240. with only one disk.
  241. .IP "EACCES - Permission denied"
  242. This error may cause a lot of head scratching if
  243. .B ls -l
  244. shows a device file to be writable.  The media you are trying to access is
  245. simply physically write protected!
  246. .IP "EINVAL - Invalid argument"
  247. Devices may not like reads or writes that are not block multiples, or very
  248. big transfers, etc.  The device manual page should list the limits.
  249. .IP "EIO - I/O error"
  250. This may be a real I/O error, i.e. a read or write on the device failing due
  251. to a media error.  But it may also be the result of an operation that a
  252. device can't do, or an empty tape drive, etc.
  253. .SH NOTES
  254. Some devices are not present by default.  The
  255. .BR MAKEDEV
  256. script knows how to make them.
  257. .SS "MS-DOS equivalents"
  258. The names of MS-DOS devices map to Minix devices as follows:
  259. .PP
  260. .RS
  261. .nf
  262. .ta +10n +16n
  263. A: fd0
  264. B: fd1
  265. C: hd1, sd1 (usually the first partition)
  266. D: hd6, sd1, sd6 (or an extended partition)
  267. CON console
  268. COM1 tty00 (UNIX counts from 0)
  269. LPT1 lp
  270. .fi
  271. .RE
  272. .SH AUTHOR
  273. Kees J. Bot (kjb@cs.vu.nl)