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

操作系统开发

开发平台:

C/C++

  1. CONSOLE(4)                Minix Programmer's Manual                 CONSOLE(4)
  2. NAME
  3.      console, keyboard, log - system console
  4. DESCRIPTION
  5.      The TTY device driver manages  two  devices  related  to  the  main  user
  6.      interface,  the  system  screen and the keyboard.  These two together are
  7.      named "the Console".
  8.   The Screen
  9.      The screen of a PC can be managed by  a  Monochrome  Display  Adapter,  a
  10.      Hercules card, a Color Graphics Adapter, an Enhanced Graphics Adapter, or
  11.      a Video Graphics Array.  To the console driver these devices are seen  as
  12.      a  block  of  video  memory  into  which  characters can be written to be
  13.      displayed, an I/O register that sets  the  video  memory  origin  to  the
  14.      character that is to be displayed on the top-left position of the screen,
  15.      and an I/O register that sets the position of the hardware cursor.   Each
  16.      character  within  video  memory is a two-byte word.  The low byte is the
  17.      character code, and the high byte is the "attribute byte", a set of  bits
  18.      that   controls  the  way  the  character  is  displayed,  character  and
  19.      background colours for  a  colour  card,  or  intensity/underline/reverse
  20.      video for monochrome.
  21.      These are the characteristics of the adapters in text mode:
  22.           Adapter        Usable memory  Mono/Colour
  23.            MDA            4K             M
  24.            Hercules       4K             M
  25.            CGA            16K            C
  26.            EGA            32K            M or C
  27.            VGA            32K            M or C
  28.      MDA and Hercules are the same to the console driver, because the graphics
  29.      mode  of the Hercules is of no use to Minix.  EGA and VGA are also mostly
  30.      seen as the same in text mode.  An EGA adapter is either a monochrome  or
  31.      a  colour  device  depending on the screen attached to it.  A VGA adapter
  32.      can run in either monochrome or colour (grayscale) mode depending on  how
  33.      the Boot Monitor has initialized it.
  34.      The driver uses the video origin to avoid  copying  the  screen  contents
  35.      when scrolling up or down.  Instead, the origin is simply moved one line.
  36.      This is  named  "hardware  scrolling",  as  opposed  to  copying  memory:
  37.      "software scrolling".
  38.      The video origin is also  used  to  implement  several  virtual  consoles
  39.      inside  the  video  memory  of  the adapter.  Each virtual console gets a
  40.      segment of video memory.  The driver chooses which console to display  by
  41.      moving  the  video origin.  Note that an MDA or Hercules adapter can only
  42.      support one console.  CGA can support up to four 80x25 consoles, and  EGA
  43.      and  VGA  can  have  eight.   It is best to configure one less console to
  44.      leave some video memory free so that hardware scrolling has some space to
  45.                                                                              1
  46. CONSOLE(4)                Minix Programmer's Manual                 CONSOLE(4)
  47.      work in.
  48.      Character codes are used as indices into a display font that is stored in
  49.      the  adapter.   The  default  font  is the IBM character set, which is an
  50.      ASCII character set in the low 128 codes, and a number  of  mathematical,
  51.      greek,  silly  graphics,  and accented characters in the upper 128 codes.
  52.      This font is fixed in the MDA, Hercules and  CGA  adapters,  but  can  be
  53.      replaced by a user selected font for the EGA and VGA adapters.
  54.      A number of control characters and escape sequences  are  implemented  by
  55.      the  driver.   The  result  is  upward  compatible with the ANSI standard
  56.      terminal.  The termcap(5) type is minix.  Normal  characters  written  to
  57.      the  console  are  displayed  at  the  cursor  position and the cursor is
  58.      advanced one column to the right.  If an entire line is filled  then  the
  59.      cursor wraps to the first column of the next line when the next character
  60.      must be displayed.  The screen is scrolled up if needed to  start  a  new
  61.      line.   Some  characters  have  special effects when sent to the console.
  62.      Some even have arguments in the form of comma separated decimal  numbers.
  63.      These  numbers  default  to  the lowest possible value when omitted.  The
  64.      top-left  character  is  at  position  (1,  1).   The  following  control
  65.      characters and escape sequences are implemented by the console:
  66.      Sequence  Name                Function
  67.       ^@        Null                Ignored (padding character)
  68.       ^G        Bell                Produce a short tone from the speaker
  69.       ^H        Backspace           Move the cursor back one column,  wrapping
  70.                                     from  the  left  edge  up  one line to the
  71.                                     right edge
  72.       ^I        Horizontal Tab      Move to the next tab stop, with  each  tab
  73.                                     stop  at  columns  1, 9, 25, etc.  Wrap to
  74.                                     the next line if necessary.
  75.       ^J        Line Feed           Move one line down, scrolling  the  screen
  76.                                     up if necessary
  77.       ^K        Vertical Tab        Same as LF
  78.       ^L        Form Feed           Same as LF
  79.       ^M        Carriage Return     Move to column 1
  80.       ^[        Escape              Start of an escape sequence
  81.       ^[M       Reverse Index       Move one line  up,  scrolling  the  screen
  82.                                     down if necessary
  83.       ^[[nA     Cursor Up           Move the cursor up n lines
  84.       ^[[nB     Cursor Down         Move the cursor down n lines
  85.       ^[[nC     Cursor Forward      Move the cursor right n columns
  86.       ^[[nD     Cursor Backward     Move the cursor left n columns
  87.       ^[[m;nH   Cursor Position     Move the cursor to line m, column n
  88.       ^[[sJ     Erase in Display    Clear characters as follows:
  89.                                     s = 0: From cursor to end of screen
  90.                                     s = 1: From start of screen to cursor
  91.                                     s = 2: Entire screen
  92.       ^[[sK     Erase in Line       Clear characters as follows:
  93.                                     s = 0: From cursor to end of line
  94.                                                                              2
  95. CONSOLE(4)                Minix Programmer's Manual                 CONSOLE(4)
  96.                                     s = 1: From start of line to cursor
  97.                                     s = 2: Entire line
  98.       ^[[nL     Insert Lines        Insert n blank lines
  99.       ^[[nM     Delete Lines        Delete n lines
  100.       ^[[n@     Insert Characters   Insert n blank characters
  101.       ^[[nP     Delete Characters   Delete n characters
  102.       ^[[nm     Character Attribute Set character attribute as follows:
  103.                                     n = 0: Normal (default) attribute
  104.                                     n = 1: Bold (mono) / Yellow (colour)
  105.                                     n = 4: Underline (M) / Light green (C)
  106.                                     n = 5: Blinking (M) / Magenta (C)
  107.                                     n = 7: Reverse Video
  108.                                     n = 30: Black foreground colour
  109.                                     n = 31: Red
  110.                                     n = 32: Green
  111.                                     n = 33: Orange
  112.                                     n = 34: Blue
  113.                                     n = 35: Magenta
  114.                                     n = 36: Light blue
  115.                                     n = 37: White
  116.                                     n = 40 - 47: Same for background colour
  117.      The console device implements the following ioctl to  copy  a  font  into
  118.      font memory on EGA and VGA adapters:
  119.           ioctl(fd, TIOCSFON, u8_t font[256][32]);
  120.      Font memory consists  of  256  character  definitions  of  32  lines  per
  121.      character  and  8 pixels per line.  The first line is the topmost line of
  122.      the character.  The leftmost pixel is lit if the most significant bit  of
  123.      a  line  is  set,  etc.   The  80x25 video mode used by Minix has an 8x16
  124.      character cell, which means that only the first 16 lines of  a  character
  125.      are displayed.
  126.   The Keyboard
  127.      The keyboard produces key codes for each key that is pressed.  These keys
  128.      are  transformed  into  character  codes  or  sequences  according to the
  129.      current  keyboard  translation  table.   The  format  of  this  table  is
  130.      described in keymap(5).  The character codes can be read from the console
  131.      device unless they map to special hotkeys.  The hotkeys are as follows:
  132.      Name             Key Function
  133.       CTRL-ALT-DEL     Send an abort signal to process 1  (init).   Init  then
  134.                        halts the system
  135.       CTRL-ALT-KP-.    Likewise for keypad period
  136.       F1               Process table dump
  137.       F2               Show memory map
  138.       F3               Toggle software/hardware scrolling
  139.       F5               Show network statistics
  140.       CTRL-F7          Send a quit signal to all processes  connected  to  the
  141.                                                                              3
  142. CONSOLE(4)                Minix Programmer's Manual                 CONSOLE(4)
  143.                        console
  144.       CTRL-F8          Send an interrupt signal
  145.       CTRL-F9          Send a kill signal.  If CTRL-F8 or  CTRL-F7  don't  get
  146.                        'em,  then  this  surely  will.   These  keys  are  for
  147.                        disaster recovery.  You  would  normally  use  DEL  and
  148.                        CTRL- to send interrupt and quit signals.
  149.       ALT-F1           Select virtual console 0 (/dev/console)
  150.       ALT-F2           Select virtual console 1 (/dev/ttyc1)
  151.       ALT-F(n+1)       Select virtual console n (/dev/ttycn)
  152.       ALT-Left         Select previous virtual console
  153.       ALT-Right        Select next virtual console
  154.      The keyboard map is set with the KIOCSMAP ioctl whose precise details are
  155.      currently hidden in the loadkeys utility.
  156.   Log device
  157.      The log device can be used by processes to print debug messages onto  the
  158.      console.   The  console  is  a  terminal type device, so it is taken from
  159.      processes when a session leader exits.  This does not happen with the log
  160.      device.
  161. SEE ALSO
  162.      tty(4), loadkeys(1), keymap(5), boot(8).
  163. NOTES
  164.      Output processing turns Line Feeds into CR LF sequences.  Don't let  this
  165.      surprise  you.   Either  turn  off  output  processing  or use one of the
  166.      synonyms for LF.
  167. AUTHOR
  168.      Kees J. Bot (kjb@cs.vu.nl)
  169.                                                                              4