DEV.4
上传用户:jnzhq888
上传日期:2007-01-18
资源大小:51694k
文件大小:9k
源码类别:

操作系统开发

开发平台:

WINDOWS

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