shithub: 9intro

ref: 87288afa5ac476efb3ef1ed40df658427339f13e
dir: /index.ms/

View raw version
.c 1
.LG
.B "Index"
.NS
.2C
.SH
  
.LP
.br

.br
, 121,  
.br
386,  152
.br
5c,  85
.br
5l,  85
.br
9P,  54, 140, 295
.br
   file,  297
.br
   implementation,  305
.br
   library,  302
.br
   message handler,  304
.br
   request,  296, 305
.br
   security,  328
.br
   server,  296
.br
\f(CW$#*\fP,  159
.br
\f(CW$*\fP,  159
.br
\f(CW/\fP,  140, 147
.br
   ] command,  166
.br
\f(CW_main\fP,  43
.br
\f(CW5c\fP,  20, 319
.br
\f(CW5l\fP,  20
.br
\f(CW8c\fP,  20
.br
\f(CW8l\fP,  20
.br
   flag \f(CW-o\fP,  20
.br
\f(CW8.out\fP,  20
.br
   partition,  293
.br
\f(CW9fs\fP,  120, 122
.br
   \f(CWrc\fP script,  142, 144
.br
   messages,  296
.br
\f(CW9P2000\fP,  297
.br
\f(CW9PANY\fP,  331
.br
\f(CW9PSK1\fP,  331
.br
\f(CW$\fP address,  173
.br
\f(CW!\fP command,  168
.br
\f(CW&&\fP command,  169
.br
\f(CW||\fP command,  169
.br
\f(CW#/\fP device driver,  147
.br
\f(CW#|\fP device driver,  199
.br
, file descriptor redirection,  88
.br
\f(CW#\fP file names,  147
.br
, making calls,  123
.br
\f(CW--\fP, option,  32
.br
\f(CW*\fP pattern,  64
.br
\f(CW?\fP pattern,  65
.br
, Qid,  298
.SH
 A
.LP
.br
a process, killing,  45
.br
\f(CWabort\fP,  43
.br
absolute paths,  13
.br
abstract data types,  1
.br
abstraction,  1\(en2
.br
acceleration, hardware,  270\(en271
.br
accept connection,  128
.br
\f(CWaccept\fP,  128
.br
access
.br
   authorized,  326
.br
   checking for,  59
.br
\f(CWaccess\fP,  59, 82
.br
Access control,  329
.br
access
.br
   control list,  17
.br
   control lists,  329
.br
   sequential,  52
.br
   time,  315
.br
   time, file,  60
.br
access mode
.br
   \f(CWAEXEC\fP,  59, 82
.br
   \f(CWAEXIST\fP,  59
.br
   \f(CWAREAD\fP,  59
.br
   \f(CWAWRITE\fP,  59
.br
account,  4, 18, 329, 342
.br
   new,  342
.br
   open,  4
.br
   student,  194
.br
\f(CWacid\fP,  42, 45, 240, 323
.br
   command, \f(CWlstk\fP,  43
.br
   command, \f(CWstk\fP,  43
.br
   \f(CWthreads\fP function,  240
.br
ACL,  \f2see\fP access control list
.br
acme commands,  7
.br
\f(CWacme\fP,  6, 144
.br
   pipe command,  101
.br
   plumbing,  113
.br
acquiring window,  274
.br
adding
.br
   key,  336
.br
   partitions,  294
.br
address
.br
   construction,  124
.br
   EOF,  173
.br
   file,  114
.br
   local,  124
.br
   network,  118, 120\(en121
.br
   pair,  173
.br
   space, virtual,  29
.br
   text,  172
.br
address, \f(CW$\fP,  173
.br
\f(CW/adm/keys\fP,  342
.br
\f(CW/adm/users\fP,  197
.br
\f(CWaecho.c\fP,  33
.br
\f(CWAEXEC\fP access mode,  59, 82
.br
\f(CWAEXIST\fP access mode,  59
.br
\f(CWafd\fP,  329, 335
.br
\f(CWafter.c\fP,  78
.br
agent, authentication,  331
.br
airport
.br
   application,  216, 247
.br
   panels,  215, 247
.br
alarm
.br
   cancel,  107
.br
   process,  106
.br
\f(CWalarm\fP,  106
.br
\f(CWalarm.c\fP,  107
.br
allocation, image,  279
.br
\f(CWallocimage\fP,  279
.br
\f(CWAlt\fP,  257
.br
alternate window,  288
.br
alternative channel operation,  257
.br
\f(CWalts\fP,  257
.br
\f(CWamount\fP,  151, 333
.br
\f(CWamount_getkey\fP,  336
.br
\f(CWamount.c\fP,  334
.br
\f(CWaname\fP,  150
.br
and, logical,  169
.br
announce,  126
.br
   port,  126
.br
\f(CWannounce\fP,  126
.br
\f(CWapid\fP,  85, 103
.br
append
.br
   only,  56
.br
   redirection,  93
.br
application, airport,  216, 247
.br
architecture,  85
.br
   independent,  59
.br
archive,  143, 175
.br
   compressed,  176
.br
   extraction,  176
.br
   file,  65
.br
   tape,  175
.br
\f(CWAREAD\fP access mode,  59
.br
\f(CWARGBEGIN\fP,  33
.br
\f(CWARGEND\fP,  33
.br
\f(CWARGF\fP,  33
.br
\f(CWargs\fP \f(CWrc\fP script,  167
.br
argument,  10
.br
   command,  9\(en10
.br
   option,  33
.br
   script,  159
.br
   thread,  239
.br
   vector,  80
.br
arguments
.br
   program,  31
.br
   script,  87, 167
.br
\f(CWargv\fP,  31, 39, 80
.br
\f(CWargv0\fP,  33, 80
.br
arithmetic
.br
   expression,  86, 161
.br
   language,  162
.br
arm,  20
.br
array initializer,  164
.br
arrow keys,  263
.br
ASCII,  265
.br
\f(CWassert\fP,  90
.br
asynchronous communication,  102, 104
.br
\f(CWatnotify\fP,  104, 259
.br
atomic,  79
.br
   instruction,  207
.br
atomic \f(CWwrite\fP,  79
.br
attach,  297, 308
.br
   specifier,  143, 287
.br
attribute, plumb message,  115
.br
attributes
.br
   file,  59
.br
   plumb message,  114
.br
audio CD,  200
.br
\f(CWauth\fP library,  333
.br
\f(CWauth_chuid\fP,  341
.br
\f(CWauth_freeAI\fP,  334
.br
\f(CWauth_login\fP,  341
.br
\f(CWauth_proxy\fP,  333
.br
\f(CWauth9p\fP,  337
.br
\f(CWauthdestroy\fP,  337
.br
authentication,  329, 342
.br
   agent,  331
.br
   domain,  331
.br
   domains,  330
.br
   file,  329, 336
.br
   file descriptor,  151
.br
   handling,  336
.br
   information,  334
.br
   mount,  151
.br
   protocol,  330
.br
   server,  342
.br
   servers,  330
.br
\f(CWAuthInfo\fP,  341
.br
\f(CWAuthinfo\fP,  334
.br
authorization,  327
.br
authorized access,  326
.br
\f(CWauthread\fP,  337
.br
\f(CWauthsrv\fP,  330, 342
.br
\f(CWauthwrite\fP,  337
.br
automatic
.br
   layout,  291
.br
   partitioning,  295
.br
\f(CWaux/listen\fP,  131
.br
\f(CWaux/vga\fP,  271
.br
average process,  194
.br
\f(CWAwait\fP,  40
.br
\f(CWawait\fP,  84
.br
AWK,  189
.br
AWK command, \f(CWnext\fP,  195
.br
\f(CWawk\fP flag \f(CW-F\fP,  196
.br
AWK
.br
   pattern,  191
.br
   program,  195
.br
   statement,  190
.br
   variables,  190
.br
AWK script, \f(CWlist\fP,  195
.br
\f(CWAWRITE\fP access mode,  59
.br
axis,  280
.SH
 B
.LP
.br
background,  163
.br
   command,  84, 89
.br
backing store,  277
.br
backslash,  39, 179
.br
backspace,  263
.br
backward-compatibility,  2
.br
base
.br
   input,  162
.br
   output,  162
.br
\f(CWbc\fP,  162, 171
.br
\f(CWbcp.c\fP,  66
.br
become \f(CWnone\fP,  340
.br
\f(CWbefore.c\fP,  78
.br
\f(CWBEGIN\fP pattern,  193
.br
\f(CWBflush\fP,  69
.br
bidirectional pipe,  96
.br
\f(CW/bin\fP,  38, 151
.br
\f(CWBIN\fP,  321
.br
binary,  85
.br
   file,  20\(en21, 23, 27, 151
.br
\f(CWbind\fP,  142, 144, 150
.br
   flag \f(CW-a\fP,  148
.br
   flag \f(CW-b\fP,  148
.br
   flag \f(CW-c\fP,  150
.br
binding,  142
.br
\f(CWBinit\fP,  70
.br
\f(CWbio\fP,  68
.br
\f(CWBiobuf\fP,  68
.br
   file descriptor,  70
.br
   flushing,  69
.br
   termination,  69
.br
\f(CWbiocat.c\fP,  70
.br
\f(CWbiocp.c\fP,  68
.br
\f(CWbio.h\fP,  68
.br
BIOS,  270
.br
birth, process,  31
.br
\f(CWblack\fP,  273
.br
\f(CWblack.c\fP,  272
.br
blank
.br
   CD,  200
.br
   screen,  271
.br
\f(CWblank\fP,  275
.br
\f(CWBlinelen\fP,  70
.br
block, file,  67
.br
blocked,  41
.br
   process,  97
.br
   state,  207
.br
board, file descriptor,  107
.br
boldface,  210
.br
\f(CW/boot\fP,  328
.br
boot,  107, 131
.br
   program,  132
.br
\f(CWboot\fP,  132, 328
.br
booting,  3, 152, 328
.br
\f(CWBopen\fP,  68
.br
bottom window,  290
.br
boundaries, write,  96, 120
.br
bounded buffer,  225, 231
.br
\f(CWbox.c\fP,  153
.br
branch, multiway,  168
.br
\f(CWBrdline\fP,  70, 247
.br
\f(CWBrdstr\fP,  70, 247
.br
\f(CWBread\fP,  69
.br
broadcast,  247
.br
\f(CWbroke\fP,  95
.br
\f(CWBroken\fP,  95, 192
.br
broken,  41
.br
   pipe,  97
.br
   process, kill,  95
.br
\f(CWbroken\fP,  44
.br
bss segment,  30, 45
.br
\f(CWBterm\fP,  69
.br
buffer,  67
.br
   bounded,  225, 231
.br
   flushing,  71
.br
   shared,  225
.br
buffered I/O,  66, 68, 247
.br
buffering, channel,  244
.br
building things,  318
.br
builtin command,  139
.br
burn, CD,  200
.br
busy waiting,  41, 110, 213
.br
button, mouse,  5
.br
button-1, mouse,  268, 280
.br
button2, mouse,  268
.br
button-3, mouse,  113
.br
\f(CWBwrite\fP,  69
.SH
 C
.LP
.br
C declaration,  164
.br
\f(CW#c\fP device driver,  152, 262
.br
C
.br
   language,  19
.br
   library,  60
.br
   program,  19
.br
calculator,  86
.br
call
.br
   error, system,  35, 59, 81
.br
   receiving,  128
.br
   remote procedure,  23
.br
   system,  22\(en23, 40, 72
.br
calls , making,  123
.br
cancel, alarm,  107
.br
capabilities,  340
.br
capability device,  340
.br
carriage return,  121
.br
carriage-return character,  16
.br
case
.br
   conversion,  163
.br
   insensitive,  185
.br
\f(CWcase\fP,  168
.br
\f(CWcat\fP,  15, 50, 66, 70
.br
\f(CW$CC\fP,  320
.br
\f(CW#c/cons\fP,  262
.br
\f(CWcd\fP,  13
.br
CD
.br
   audio,  200
.br
   blank,  200
.br
   burn,  200
.br
   copy,  201
.br
   file system,  200
.br
   write,  175
.br
\f(CWcdcopy\fP \f(CWrc\fP script,  201
.br
\f(CWcdfs\fP,  200
.br
\f(CWcdtmp\fP \f(CWrc\fP script,  86
.br
\f(CWcecho.c\fP,  130
.br
\f(CWChan\fP,  54, 77, 109, 140\(en141, 298
.br
chan, image,  279
.br
\f(CWchancreate\fP,  243
.br
\f(CWCHANEND\fP,  257
.br
\f(CWchanfree\fP,  243
.br
change
.br
   current directory,  13
.br
   identity,  340\(en341
.br
   permissions,  18
.br
   uid,  341
.br
\f(CWchangeuser\fP,  342
.br
channel,  54, 242, 277
.br
   buffering,  244
.br
   communication,  242
.br
   event,  112
.br
   mouse event,  269
.br
   operation, alternative,  257
.br
   operation, simultaneous,  257
.br
   unbuffered,  245
.br
channel
.br
   \f(CWprint\fP,  257
.br
   \f(CWWaitmsg\fP,  258
.br
\f(CWchanprint\fP,  257
.br
\f(CWCHANRCV\fP,  257
.br
\f(CWCHANSEND\fP,  257
.br
character
.br
   carriage-return,  16
.br
   control,  16
.br
   echo,  264
.br
   escape,  10, 39, 179
.br
   line-feed,  16
.br
   new-line,  16
.br
   range,  178
.br
   range pattern,  65
.br
   set,  178
.br
\f(CWchartorune\fP,  266
.br
\f(CWchatty9p\fP,  305
.br
\f(CWchdir\fP,  36
.br
check, permission,  329
.br
checking
.br
   for access,  59
.br
   program,  323
.br
\f(CWchgrp\fP,  62
.br
\f(CWchgrp.c\fP,  63
.br
child
.br
   dissociated,  139
.br
   process,  72, 76\(en77, 86, 134, 138
.br
   process, independent,  139
.br
   process, pipe to,  98
.br
   process, wait for,  99
.br
\f(CWchild.c\fP,  76
.br
children, wait for,  82
.br
\f(CWchmod\fP,  18, 56, 60
.br
   flag \f(CW+a\fP,  56
.br
click,  280
.br
   to type,  8
.br
client,  126, 296
.br
   connection,  129
.br
   uid,  335
.br
clients,  3
.br
clip,  274
.br
clone, fid,  311
.br
\f(CWclone\fP file,  119
.br
close, connection,  130
.br
\f(CWclose\fP,  51, 66, 100
.br
closed pipe,  98
.br
\f(CWclosedisplay\fP,  272
.br
\f(CWclosekeyboard\fP,  285
.br
\f(CWclosemouse\fP,  270, 276
.br
\f(CWcmp\fP,  102, 186
.br
\f(CWcnt.c\fP,  211
.br
code
.br
   generation,  164
.br
   unicode,  266
.br
collection, garbage,  309
.br
color,  279
.br
combining commands,  158
.br
command,  3, 23, 38, 72, 158
.br
   argument,  9\(en10
.br
   background,  84, 89
.br
   builtin,  139
.br
   compound,  10, 94, 163, 177
.br
   conditional,  166
.br
   diagnostic,  11
.br
   execution, remote,  132
.br
   flag,  9
.br
   interpreter,  23
.br
   invocation syntax,  35
.br
   line,  4, 23, 37, 85, 88, 101, 169, 172
.br
   option,  9
.br
   substitution,  101, 166
.br
   typing a,  9
.br
command
.br
   \f(CW!\fP,  168
.br
   \f(CW&&\fP,  169
.br
   \f(CW||\fP,  169
.br
   \f(CW \fP,  166
.br
   \f(CWacme\fP pipe,  101
.br
   \f(CWcpu\fP,  132
.br
   \f(CWfile\fP,  168
.br
   \f(CWfor\fP,  164
.br
   \f(CWif\fP,  166
.br
   \f(CWlisten\fP,  131
.br
   \f(CWlstk\fP \f(CWacid\fP,  43
.br
   \f(CWplumb\fP,  114
.br
   \f(CWread\fP,  85
.br
   \f(CWrfork\fP,  139, 161
.br
   \f(CWstk\fP \f(CWacid\fP,  43
.br
   \f(CWtime\fP,  172
.br
   \f(CWwindow\fP,  152
.br
commands
.br
   acme,  7
.br
   combining,  158
.br
   executing,  5
.br
commands, \f(CWrio\fP,  5
.br
comment
.br
   character, shell,  20
.br
   ignore,  195
.br
   shell,  86
.br
communication
.br
   asynchronous,  102, 104
.br
   channel,  242
.br
   multiway,  251
.br
   process,  95, 242
.br
   synchronous,  102
.br
comparation, file,  186
.br
compare
.br
   file,  102
.br
   operator,  166
.br
compilation, kernel,  170
.br
compiler,  20, 27
.br
   flags,  20
.br
   regular expression,  181
.br
compose,  263
.br
compound command,  10, 94, 163, 177
.br
compound \f(CWsed\fP command,  174
.br
compressed archive,  176
.br
computer
.br
   laptop,  326
.br
   network,  118
.br
computing, distributed,  131, 154
.br
concatenation
.br
   distributive,  160
.br
   list,  159
.br
   operator,  159
.br
concurrent
.br
   processes,  27
.br
   programming,  79, 204
.br
   server,  129
.br
   updates,  207
.br
condition,  168
.br
   race,  79, 204
.br
   variables,  225
.br
conditional
.br
   command,  166
.br
   construct,  168
.br
   execution,  166
.br
   pipe,  169
.br
conditionals, \f(CWrc\fP,  168
.br
connection,  119
.br
   accept,  128
.br
   client,  129
.br
   close,  130
.br
   draw,  271
.br
   hangup,  120
.br
   information, network,  124
.br
   network,  118\(en119, 123, 140
.br
   server,  122
.br
connection \f(CWctl\fP file,  124
.br
\f(CWconninfo.c\fP,  125
.br
console,  50, 103, 287
.br
   device,  152, 262
.br
   echo,  264
.br
   fossil,  107
.br
   multiplexing,  287
.br
   read,  263
.br
   reader,  216
.br
   virtual,  265
.br
   write,  263
.br
construct, conditional,  168
.br
construction, address,  124
.br
content, file,  15
.br
contention, lock,  221
.br
context,  40
.br
   match,  180
.br
   switch,  40, 207, 235, 237
.br
context \f(CWdiff\fP,  187
.br
control
.br
   Access,  329
.br
   character,  16
.br
   flow,  134\(en135, 235
.br
   flow of,  40
.br
   list, access,  17
.br
   lists, access,  329
.br
control-d,  50, 89
.br
control-u,  263
.br
conventions, Qid,  309
.br
conversion
.br
   case,  163
.br
   rune,  267
.br
cooked mode,  263
.br
coordinate
.br
   mouse,  268
.br
   translation,  274
.br
coordinates, window,  273
.br
copy
.br
   CD,  201
.br
   directory,  175
.br
   file,  11, 66
.br
   image,  274
.br
\f(CWcopy\fP \f(CWrc\fP script,  138
.br
count, word,  88, 94
.br
counter
.br
   program,  27
.br
   shared,  204, 235
.br
counting, reference,  309
.br
\f(CWcp\fP,  11, 15, 66
.br
\f(CWcpu\fP,  154
.br
   command,  132
.br
CPU
.br
   server,  154, 340
.br
   servers,  131
.br
   time,  111
.br
   type,  152
.br
\f(CWcpu\fP variable,  132
.br
\f(CW$cputype\fP,  152
.br
\f(CWcreate\fP,  57, 91, 93, 109, 299
.br
\f(CWcreate.c\fP,  58
.br
creation
.br
   directory,  58, 300
.br
   file,  57, 67
.br
   network port,  126
.br
   pipe,  100
.br
   process,  72\(en73, 134, 248
.br
   window,  287
.br
critical region,  208, 210
.br
\f(CWcron\fP,  340
.br
cross-compiler,  20
.br
\f(CWcsquery\fP,  122
.br
\f(CWctl\fP,  45
.br
   file,  271
.br
   file, connection,  124
.br
   file, network,  119
.br
   file, process,  45
.br
current
.br
   directory,  13, 26, 51
.br
   directory, change,  13
.br
   directory, print,  13
.br
   window,  290
.SH
 D
.LP
.br
\f(CW#d\fP device driver,  152
.br
\f(CWd2h\fP \f(CWrc\fP script,  163
.br
data,  15
.br
   meaning of,  17
.br
   processing,  194
.br
   processing,  158
.br
   segment,  30, 45
.br
   types, abstract,  1
.br
   user,  311
.br
\f(CWdata\fP file,  271
.br
   network,  119
.br
\f(CW#|/data1\fP,  199
.br
database, network,  122
.br
datagram,  119
.br
\f(CWdate\fP,  8\(en9, 88
.br
\f(CWdd\fP,  66
.br
deadlock,  101, 232
.br
death, process,  31
.br
debug protection,  332
.br
debugger,  42, 240
.br
debugging,  36, 38, 42, 158, 322
.br
   file server,  305
.br
   remote,  155
.br
   thread,  240
.br
declaration, C,  164
.br
\f(CWdecref\fP,  310
.br
definition, function,  183
.br
\f(CWDel\fP,  7
.br
\f(CWDelete\fP,  5, 105, 136, 263, 288
.br
delete text,  173
.br
deleting partitions,  294
.br
deletion, file,  58
.br
delimiter, field,  196
.br
delimiters, message,  96, 120
.br
delivering, message,  113
.br
demand paging,  30
.br
dependencies, file,  318
.br
DES,  343
.br
description, disk,  292
.br
descriptor
.br
   authentication file,  151
.br
   board, file,  107
.br
   duplicate file,  90
.br
   file,  48, 51, 77, 89
.br
   group, file,  135
.br
   image,  279
.br
   post, file,  108, 140
.br
   process group, file,  134
.br
   redirection , file,  88
.br
   table, file,  48, 134
.br
descriptor, \f(CWBiobuf\fP file,  70
.br
\f(CWdestroyfid\fP,  312, 337
.br
\f(CW/dev\fP,  154, 262
.br
\f(CW/dev/cons\fP,  50, 92, 262, 287
.br
\f(CW/dev/consctl\fP,  287
.br
\f(CW/dev/cursor\fP,  287
.br
\f(CW/dev/draw\fP,  154, 271
.br
\f(CW/dev/drivers\fP,  147
.br
\f(CW/dev/hostdomain\fP,  330
.br
\f(CW/dev/hostowner\fP,  327
.br
device,  93
.br
   capability,  340
.br
   console,  152, 262
.br
   draw,  271
.br
   driver,  24, 147
.br
   driver, storage,  156
.br
   hardware,  24
.br
   mouse,  267
.br
   network,  118
.br
   path,  147
.br
   pipe,  199
.br
   root,  147
.br
   storage,  292
.br
   to device,  66
.br
   vga,  270
.br
device driver
.br
   \f(CW#/\fP,  147
.br
   \f(CW#|\fP,  199
.br
   \f(CW#c\fP,  152, 262
.br
   \f(CW#d\fP,  152
.br
   \f(CW#e\fP,  45, 147
.br
   \f(CW#i\fP,  271
.br
   \f(CW#m\fP,  267
.br
   \f(CW#p\fP,  44, 142, 148
.br
   \f(CW#S\fP,  156, 292
.br
   \f(CW#s\fP,  107
.br
   \f(CW#v\fP,  270
.br
devices, graphic,  270
.br
\f(CW/dev/kmesg\fP,  263
.br
\f(CW/dev/kprint\fP,  263
.br
\f(CW/dev/label\fP,  272, 289
.br
\f(CW/dev/mouse\fP,  154, 267, 287
.br
\f(CW/dev/mousectl\fP,  267
.br
\f(CW/dev/null\fP,  85, 152, 166
.br
\f(CW/dev/screen\fP,  46
.br
\f(CW/dev/sysname\fP,  327
.br
/dev/text,  289
.br
\f(CW/dev/text\fP,  46
.br
\f(CW/dev/time\fP,  44, 60, 152
.br
\f(CW/dev/user\fP,  328
.br
\f(CW/dev/window\fP,  46
.br
\f(CW/dev/winid\fP,  289
.br
\f(CW/dev/winname\fP,  274, 289
.br
\f(CW/dev/wsys\fP,  289
.br
\f(CW/dev/zero\fP,  67
.br
diagnostic,  92
.br
   command,  11
.br
diagnostics, script,  186
.br
\f(CWdial\fP,  124
.br
dialing,  123
.br
\f(CWdiehard\fP,  76
.br
\f(CWdiff\fP,  186
.br
   context,  187
.br
   flag \f(CW-n\fP,  187
.br
differences, file,  186
.br
\f(CWDir\fP,  60\(en61, 298
.br
directory,  4, 12
.br
   change current,  13
.br
   copy,  175
.br
   creation,  58, 300
.br
   current,  13, 26, 51
.br
   dot,  13
.br
   dot-dot,  13
.br
   empty,  59
.br
   entry,  59, 298
.br
   home,  4, 13, 37, 152
.br
   line,  119, 127, 271
.br
   list,  63
.br
   permissions,  18
.br
   print current,  13
.br
   read,  61
.br
   reads,  315
.br
   root,  13, 134
.br
   working,  134
.br
\f(CWdirfstat\fP,  61
.br
\f(CWdirfwstat\fP,  63
.br
\f(CWdirgen\fP,  315
.br
\f(CWdirread\fP,  61
.br
\f(CWdirread9p\fP,  315
.br
\f(CWdirstat\fP,  60, 62, 298
.br
\f(CWdirwstat\fP,  62
.br
discard, output,  94
.br
discipline, line,  263
.br
disk,  292
.br
   description,  292
.br
   file,  292
.br
   initialization,  295
.br
   local,  295
.br
   partitioning,  295
.br
   space,  56
.br
   storage,  292
.br
   usage,  175, 182
.br
\f(CWDisplay\fP,  272, 279
.br
display, file,  15
.br
\f(CWdisplay\fP,  272
.br
dissociated child,  139
.br
distributed
.br
   computing,  131, 154
.br
   system,  118
.br
distributive concatenation,  160
.br
DMA,  292
.br
\f(CWdma\fP,  292
.br
DMA, setting up,  292
.br
\f(CWDMDIR\fP,  58, 300
.br
DNS,  121
.br
\f(CWdoctype\fP,  322
.br
document viewer,  114
.br
domain, authentication,  331
.br
domains, authentication,  330
.br
dot directory,  13
.br
dot-dot directory,  13
.br
down,  308
.br
\f(CWdown\fP,  230
.br
draw
.br
   connection,  271
.br
   device,  271
.br
   operation flush,  274
.br
   string,  285
.br
\f(CWdraw\fP,  273
.br
drawing
.br
   functions,  285
.br
   graphics,  273
.br
   slider,  278
.br
   text,  285
.br
drive unit,  293
.br
driver
.br
   device,  24, 147
.br
   storage device,  156
.br
driver
.br
   \f(CW#/\fP device,  147
.br
   \f(CW#c\fP device,  152, 262
.br
   \f(CW#d\fP device,  152
.br
   \f(CW#e\fP device,  45, 147
.br
   \f(CW#i\fP device,  271
.br
   \f(CW#m\fP device,  267
.br
   \f(CW#p\fP device,  44, 142, 148
.br
   \f(CW#S\fP device,  156, 292
.br
   \f(CW#v\fP device,  270
.br
dst,  114
.br
\f(CWdu\fP,  175, 182
.br
dump
.br
   file,  65
.br
   file hexadecimal,  15
.br
   file system,  143
.br
   message,  338
.br
   stack,  212
.br
   thread stack,  242
.br
\f(CWdup\fP,  90\(en91, 108
.br
   in \f(CWrc\fP,  93
.br
duplicate file descriptor,  90
.br
duplicates, remove,  183
.br
\f(CWDx\fP,  280
.br
\f(CWDy\fP,  280
.br
\f(CWDYellow\fP,  279
.SH
 E
.LP
.br
\f(CW#e\fP device driver,  45, 147
.br
\f(CWEARGF\fP,  34
.br
echo
.br
   character,  264
.br
   console,  264
.br
   server,  108
.br
   server, network,  129
.br
   service, TCP,  131
.br
\f(CWecho\fP,  31, 64
.br
   flag \f(CW-n\fP,  31
.br
\f(CWecho.c\fP,  31, 39
.br
\f(CWedata\fP,  29
.br
\f(CWedit\fP plumb port,  113
.br
editing,  5
.br
   text,  171
.br
editor, stream,  172
.br
\f(CWedits.c\fP,  115
.br
efficiency,  110, 172
.br
elapsed time,  67
.br
element, picture,  268
.br
emalloc9p,  309
.br
empty
.br
   directory,  59
.br
   list,  161
.br
encrypt,  343
.br
end of
.br
   file,  16, 97
.br
   line,  178
.br
   pipe,  199
.br
   text,  178
.br
\f(CWend\fP,  29
.br
\f(CWEND\fP pattern,  193
.br
entering the system,  2
.br
entry
.br
   directory,  59, 298
.br
   point, program,  31
.br
\f(CW/env\fP,  138
.br
   file system,  45
.br
\f(CWenv.c\fP,  39
.br
environment
.br
   group,  138
.br
   process,  72
.br
   process group,  134
.br
   variable,  44\(en45, 64, 81, 134, 138, 158
.br
Environment variables,  134
.br
environment variables,  37
.br
EOF,  16
.br
   address,  173
.br
epoch,  44
.br
erealloc9p,  309
.br
\f(CWerr.c\fP,  36
.br
\f(CWerrfun\fP,  272
.br
error,  41
.br
   redirection, standard,  166
.br
   standard,  49\(en50, 92
.br
   string,  36, 59, 83
.br
   system call,  35, 59, 81
.br
\f(CW+Errors\fP,  \f2see\fP acme
.br
\f(CWEscape\fP,  263
.br
escape
.br
   character,  10, 39, 179
.br
   key,  263
.br
\f(CWetext\fP,  29
.br
\f(CWether0\fP,  118
.br
ethernet,  118
.br
\f(CWetticker.c\fP,  255
.br
event,  110, 112
.br
   channel,  112
.br
   channel, mouse,  269
.br
   mouse,  267
.br
   processing, mouse,  276
.br
   resize,  275\(en276
.br
everything is a file,  44
.br
evil,  326
.br
exception,  41, 104
.br
exclusion, mutual,  209\(en210, 231
.br
exclusive open,  267
.br
\f(CWexec\fP,  72, 80\(en81
.br
   header,  85
.br
\f(CWexecl\fP,  72, 80, 90, 100
.br
\f(CWexecl.c\fP,  80
.br
executable,  85
.br
   file,  18
.br
executing commands,  5
.br
execution
.br
   conditional,  166
.br
   independent,  26, 75
.br
   parallel,  26
.br
   process,  205
.br
   program,  24, 72, 80, 258
.br
   pseudo-parallel,  27
.br
   remote,  154
.br
   remote command,  132
.br
\f(CWExit\fP,  7
.br
exit status,  35, 38, 42, 82, 166
.br
\f(CWexits\fP,  21, 35, 73, 82, 218, 236
.br
expansion, variable,  64
.br
export, file system,  155
.br
\f(CWexportfs\fP,  155
.br
expression
.br
   arithmetic,  86, 161
.br
   compiler, regular,  181
.br
   inner,  179
.br
   regular,  114, 178
.br
extraction, archive,  176
.SH
 F
.LP
.br
\f(CWfaces\fP,  110
.br
\f(CWfactotum\fP,  331, 343
.br
fault,  42
.br
\f(CWfauth\fP,  329
.br
\f(CWFcall\fP,  306
.br
\f(CWfd\fP file, process,  51
.br
\f(CW/fd\fP file system,  89, 152
.br
\f(CWfdisk\fP,  294
.br
\f(CWfhello.c\fP,  53
.br
\f(CWFid\fP,  307
.br
fid
.br
   clone,  311
.br
   new,  299
.br
fids,  297
.br
field delimiter,  196
.br
fields, line,  190
.br
file,  7, 44
.br
   9P,  297
.br
   access time,  60
.br
   address,  114
.br
   archive,  65
.br
   attributes,  59
.br
   authentication,  329, 336
.br
   binary,  20\(en21, 23, 27, 151
.br
   block,  67
.br
   comparation,  186
.br
   compare,  102
.br
   content,  15
.br
   copy,  11, 66
.br
   creation,  57, 67
.br
   deletion,  58
.br
   dependencies,  318
.br
   descriptor,  48, 51, 77, 89
.br
   descriptor, authentication,  151
.br
   descriptor board,  107
.br
   descriptor, duplicate,  90
.br
   descriptor group,  135
.br
   descriptor post,  108, 140, 296
.br
   descriptor process group,  134
.br
   descriptor redirection ,  88
.br
   descriptor table,  48, 134
.br
   differences,  186
.br
   disk,  292
.br
   display,  15
.br
   dump,  65
.br
   executable,  18
.br
   font,  286
.br
   group,  60
.br
   head,  172
.br
   here,  102
.br
   hexadecimal dump,  15
.br
   identifier,  297
.br
   include,  173
.br
   interface,  44, 158
.br
   length,  60
.br
   list,  63
.br
   mode,  60
.br
   modification time,  60
.br
   mounted,  141
.br
   move,  14
.br
   name,  12, 50, 60, 64, 134, 139
.br
   name patterns,  64
.br
   object,  21
.br
   offset,  52, 54
.br
   owner,  60
.br
   ownership,  17
.br
   permissions,  17
.br
   Qid,  298
.br
   read, robust,  105
.br
   remove,  11, 312
.br
   rename,  14, 174
.br
   searching,  64
.br
   server,  3, 22, 54, 107, 109, 140, 199, 292
.br
   server debugging,  305
.br
   server mount,  298
.br
   server program,  143, 292
.br
   server root directory,  297
.br
   size,  10
.br
   system,  147, 199
.br
   system, CD,  200
.br
   system dump,  143
.br
   system export,  155
.br
   system mount,  140
.br
   system protocol,  140, 295
.br
   system, ram,  201
.br
   system, remote,  154
.br
   system, semaphore,  301
.br
   system snapshot,  143
.br
   system, terminal,  154
.br
   temporary,  189
.br
   tree,  12, 134, 139\(en140
.br
   version,  298
.br
   who last modified,  14
.br
   with holes,  56
.br
file
.br
   \f(CWclone\fP,  119
.br
   \f(CWctl\fP,  271
.br
   \f(CWdata\fP,  271
.br
   descriptor, \f(CWBiobuf\fP,  70
.br
   \f(CWlocal\fP,  120
.br
   names, \f(CW#\fP,  147
.br
   \f(CWnamespace\fP,  180
.br
   network \f(CWdata\fP,  119
.br
   \f(CWpatterns\fP,  185
.br
   process \f(CWctl\fP,  45
.br
   process \f(CWfd\fP,  51
.br
   process \f(CWmem\fP,  45
.br
   process \f(CWnote\fP,  103, 105
.br
   process \f(CWnotepg\fP,  103, 105
.br
   process \f(CWns\fP,  142
.br
   \f(CWremote\fP,  120
.br
   \f(CWrpc\fP,  332
.br
   system, \f(CW/env\fP,  45
.br
   system, \f(CW/fd\fP,  89, 152
.br
   system, \f(CW/mnt/plumb\fP,  113
.br
   system, \f(CW/net\fP,  118
.br
   system, \f(CW/proc\fP,  44, 103, 142
.br
   system, \f(CWrio\fP,  153, 287
.br
   system, \f(CW/srv\fP,  107
.br
\f(CWfile\fP
.br
   command,  168
.br
   \f(CWrc\fP script,  168
.br
files
.br
   header,  20
.br
   move,  175
.br
   temporary,  40
.br
   text,  158
.br
   using,  9
.br
\f(CWfill.c\fP,  97
.br
firewall,  156
.br
flag, command,  9
.br
flag
.br
   \f(CW-a\fP, \f(CWbind\fP,  148
.br
   \f(CW+a\fP, \f(CWchmod\fP,  56
.br
   \f(CW-b\fP, \f(CWbind\fP,  148
.br
   \f(CW-c\fP, \f(CWbind\fP,  150
.br
   \f(CW-c\fP, \f(CWrc\fP,  100
.br
   \f(CW-d\fP, \f(CWls\fP,  14
.br
   \f(CW-d\fP, \f(CWtest\fP,  169
.br
   \f(CW-d\fP, \f(CWtr\fP,  164
.br
   \f(CW-e\fP, \f(CWgrep\fP,  185
.br
   \f(CW-e\fP, \f(CWsed\fP,  172
.br
   \f(CW-e\fP, \f(CWtest\fP,  169
.br
   \f(CW-F\fP, \f(CWawk\fP,  196
.br
   \f(CW-f\fP, \f(CWgrep\fP,  185
.br
   \f(CW-f\fP, \f(CWrm\fP,  12
.br
   \f(CW-i\fP, \f(CWgrep\fP,  185
.br
   \f(CW-l\fP, \f(CWls\fP,  28
.br
   \f(CW-m\fP, \f(CWls\fP,  14
.br
   \f(CW-n\fP, \f(CWdiff\fP,  187
.br
   \f(CW-n\fP, \f(CWecho\fP,  31
.br
   \f(CW-n\fP, \f(CWgrep\fP,  185
.br
   \f(CW-n\fP, \f(CWnetstat\fP,  122
.br
   \f(CW-n\fP, \f(CWnm\fP,  29
.br
   \f(CW-n\fP, \f(CWsed\fP,  173
.br
   \f(CW-n\fP, \f(CWsort\fP,  182
.br
   \f(CW-o\fP, \f(CW8l\fP,  20
.br
   \f(CW-older\fP, \f(CWtest\fP,  170
.br
   \f(CW-r\fP, \f(CWrm\fP,  59
.br
   \f(CW-r\fP, \f(CWsort\fP,  182
.br
   \f(CW-r\fP, \f(CWtelnet\fP,  121
.br
   \f(CW-s\fP, \f(CWgrep\fP,  197
.br
   \f(CW-s\fP, \f(CWls\fP,  10
.br
   \f(CW-u\fP, \f(CWsort\fP,  184
.br
   \f(CW-w\fP, \f(CWwc\fP,  94
.br
flags,  10
.br
   compiler,  20
.br
flow
.br
   control,  134\(en135, 235
.br
   of control,  26, 40
.br
flush, draw operation,  274
.br
flushimage,  274
.br
flushing, buffer,  71
.br
flushing, \f(CWBiobuf\fP,  69
.br
\f(CWfmtinstall\fP,  270
.br
\f(CWfn\fP,  183
.br
focus,  103
.br
   input,  290
.br
\f(CW$font\fP,  286
.br
\f(CWFont\fP,  286
.br
font,  272, 286
.br
   file,  286
.br
\f(CWfor\fP command,  164
.br
fork, resource,  134
.br
\f(CWfork\fP,  72\(en73, 75, 77, 81, 100, 134, 139
.br
   return value,  72
.br
format
.br
   install,  270
.br
   network,  59, 61
.br
format, \f(CWP\fP,  270
.br
formatted,  295
.br
   output,  48
.br
fossil console,  107
.br
\f(CWfossil\fP,  107, 143, 196, 295
.br
\f(CWfree\fP,  61
.br
\f(CWfreenetconninfo\fP,  125
.br
frozen process,  101
.br
\f(CWfs\fP partition,  293
.br
\f(CWfstat\fP,  61
.br
full-duplex,  96
.br
function
.br
   definition,  183
.br
   library,  22
.br
   shell,  183
.br
function, \f(CWacid\fP \f(CWthreads\fP,  240
.br
functions, drawing,  285
.br
\f(CWfwstat\fP,  63
.SH
 G
.LP
.br
garbage collection,  309
.br
generation, code,  164
.br
\f(CWGet\fP,  7
.br
\f(CWget\fP,  226
.br
\f(CWgetenv\fP,  39, 46, 134, 159
.br
\f(CWgetnetconninfo\fP,  124
.br
\f(CWgetpid\fP,  40
.br
\f(CWgetuser\fP,  153
.br
\f(CWgetwindow\fP,  274, 289
.br
\f(CWgid\fP,  60
.br
global
.br
   substitution,  174
.br
   variable,  28, 204
.br
\f(CWglobal.c\fP,  28
.br
globbing,  64, 168, 178
.br
God,  92
.br
good luck,  207, 343
.br
graphic
.br
   devices,  270
.br
   slider,  274
.br
graphics,  272
.br
   drawing,  273
.br
   initialization,  272
.br
   mode,  270
.br
greek letter,  266
.br
\f(CWgrep\fP,  94, 142, 158, 178
.br
   flag \f(CW-e\fP,  185
.br
   flag \f(CW-f\fP,  185
.br
   flag \f(CW-i\fP,  185
.br
   flag \f(CW-n\fP,  185
.br
   flag \f(CW-s\fP,  197
.br
   silent,  197
.br
group,  17
.br
   environment,  138
.br
   environment process,  134
.br
   file,  60
.br
   file descriptor,  135
.br
   file descriptor process,  134
.br
   id,  60
.br
   note,  134, 136
.br
   note process,  134
.br
   process,  37, 102\(en103
.br
   rendezvous,  134\(en135
.br
\f(CWgzip\fP,  176
.SH
 H
.LP
.br
\f(CWh2d\fP \f(CWrc\fP script,  164
.br
handler, note,  104\(en105
.br
handling authentication,  336
.br
hangup, connection,  120
.br
\f(CWhangup\fP note,  103, 189, 198
.br
hardware,  24
.br
   acceleration,  270\(en271
.br
   device,  24
.br
   interrupt,  24
.br
head, file,  172
.br
header files,  20
.br
header, \f(CWexec\fP,  85
.br
height, rectangle,  280
.br
\f(CWhello\fP \f(CWrc\fP script,  85
.br
help,  8
.br
here file,  102
.br
hexadecimal,  162
.br
   dump, file,  15
.br
\f(CWHFILES\fP,  321
.br
\f(CWHide\fP,  5
.br
hide, window,  290
.br
\f(CWhoc\fP,  86
.br
   option \f(CW-e\fP,  162
.br
hold mode,  263
.br
holes, file with,  56
.br
\f(CW$home\fP,  81, 152
.br
home directory,  4, 13, 37, 152
.br
\f(CWhostdomain\fP,  330
.br
\f(CWhostowner\fP,  330
.br
HTTP,  120
.SH
 I
.LP
.br
\f(CW#i\fP device driver,  271
.br
id
.br
   group,  60
.br
   modification user,  60
.br
   process,  39
.br
   thread,  238
.br
   user,  60
.br
Identification,  327
.br
identifier,  180
.br
   file,  297
.br
   thread,  238
.br
   unique,  298
.br
identity,  329
.br
   change,  340\(en341
.br
\f(CWif\fP
.br
   command,  166
.br
   \f(CWnot\fP,  166
.br
\f(CWifcall\fP,  306
.br
ignore comment,  195
.br
\f(CWImage\fP,  273
.br
image,  272
.br
   allocation,  279
.br
   chan,  279
.br
   copy,  274
.br
   descriptor,  279
.br
   memory,  28
.br
   replicated,  279
.br
   screen,  46
.br
   window,  46
.br
implementation, 9P,  305
.br
implicit rule,  321
.br
import,  154
.br
in octal, permissions,  19
.br
in
.br
   pipes, \f(CWrc\fP,  95
.br
   \f(CWrc\fP, \f(CWdup\fP,  93
.br
include file,  173
.br
includes, standard,  20
.br
\f(CWincref\fP,  310
.br
indent, text,  180
.br
independent
.br
   architecture,  59
.br
   child process,  139
.br
   execution,  26, 75
.br
indexing, list,  159
.br
information
.br
   authentication,  334
.br
   network connection,  124
.br
inheritance,  92
.br
\f(CWinit\fP,  152
.br
\f(CWinitdraw\fP,  272
.br
initialization
.br
   disk,  295
.br
   graphics,  272
.br
   keyboard,  281
.br
   mouse,  269
.br
initializer, array,  164
.br
\f(CWinitkeyboard\fP,  281
.br
\f(CWinitmouse\fP,  269
.br
inner expression,  179
.br
input
.br
   and output redirection,  93
.br
   base,  162
.br
   focus,  290
.br
   keyboard,  281
.br
   mouse,  267
.br
   record,  195
.br
   redirection,  89
.br
   standard,  49\(en50, 89\(en90
.br
\f(CWinquiry\fP,  292
.br
insensitive, case,  185
.br
install, format,  270
.br
install, \f(CWmk\fP,  322
.br
installation, stand-alone,  295
.br
instruction
.br
   atomic,  207
.br
   order,  208
.br
instruction, \f(CWtas\fP,  210
.br
integrity,  326
.br
Intel,  20
.br
interface, file,  44, 158
.br
interleaving,  205
.br
internet
.br
   probe,  167
.br
   protocol,  118
.br
interpreted program,  85
.br
interpreter,  85
.br
   command,  23
.br
interrupt,  102, 207
.br
   hardware,  24
.br
   process,  103
.br
   program,  265
.br
   software,  23
.br
\f(CWinterrupt\fP note,  103, 105, 136, 189, 198, 288
.br
\f(CWintfork.c\fP,  75
.br
into, logging,  4
.br
invocation syntax, command,  35
.br
I/O,  48
.br
   buffered,  66, 68, 247
.br
   redirection,  88
.br
   thread,  247
.br
   user,  262
.br
IP,  118
.br
\f(CWip/ping\fP,  123, 167
.br
\f(CWiredir.c\fP,  90
.br
is a file, everything,  44
.SH
 K
.LP
.br
Ken Thompson,  20, 265
.br
kernel,  1, 23, 40, 140, 235, 328
.br
   compilation,  170
.br
key,  342
.br
   adding,  336
.br
   escape,  263
.br
   reading,  336
.br
\f(CWkey\fP,  331
.br
keyboard,  266
.br
   initialization,  281
.br
   input,  281
.br
   library,  281
.br
\f(CWKeyboardctl\fP,  281
.br
\f(CWkeyboardthread\fP,  284
.br
\f(CWkeyfs\fP,  342
.br
keys,  331
.br
   arrow,  263
.br
\f(CWkfs\fP,  295
.br
kill
.br
   broken process,  95
.br
   process,  104
.br
\f(CWkill\fP,  45, 192
.br
killing a process,  45
.SH
 L
.LP
.br
label, window,  272, 289
.br
language
.br
   arithmetic,  162
.br
   C,  19
.br
   programming,  158
.br
laptop computer,  326
.br
layout
.br
   automatic,  291
.br
   screen,  291
.br
\f(CWlc\fP,  \f2see\fP \f(CWls\fP
.br
\f(CWlc\fP,  63
.br
\f(CW$LD\fP,  320
.br
leak, memory,  323
.br
\f(CWleak\fP,  323
.br
least privilege principle,  339
.br
leaving the system,  5
.br
length
.br
   file,  60
.br
   line,  70
.br
   variable,  159
.br
letter, greek,  266
.br
\f(CWlib9p\fP,  302
.br
   memory allocation,  309
.br
\f(CWlibc.h\fP,  20, 60
.br
\f(CW/lib/namespace\fP,  153, 180, 339
.br
\f(CW/lib/ndb/auth\fP,  340
.br
libraries,  1
.br
library,  20, 118
.br
   9P,  302
.br
   C,  60
.br
   function,  22
.br
   keyboard,  281
.br
   mouse,  268
.br
   thread,  235
.br
library
.br
   \f(CWauth\fP,  333
.br
   \f(CWplumb\fP,  114
.br
   \f(CWwindow\fP,  289
.br
line
.br
   command,  4, 23, 37, 85, 88, 101, 169, 172
.br
   directory,  119, 127, 271
.br
   discipline,  263
.br
   end of,  178
.br
   fields,  190
.br
   length,  70
.br
   new,  53
.br
   number,  185
.br
   read,  70
.br
   start of,  178
.br
line-feed character,  16
.br
lines
.br
   print,  173
.br
   unique,  183
.br
linker,  27
.br
list
.br
   access control,  17
.br
   concatenation,  159
.br
   directory,  63
.br
   empty,  161
.br
   file,  63
.br
   indexing,  159
.br
   null,  161
.br
   process,  88
.br
\f(CWlist\fP AWK script,  195
.br
\f(CWlist2grades\fP \f(CWrc\fP script,  198
.br
\f(CWlist2usr\fP,  196
.br
listen,  129
.br
\f(CWlisten\fP,  127, 129
.br
   command,  131
.br
\f(CWlisten1\fP,  132
.br
\f(CWlisten.c\fP,  127
.br
lists, access control,  329
.br
lists, \f(CWrc\fP,  158
.br
load
.br
   machine,  88
.br
   system,  111
.br
loaded program,  27
.br
loader,  20, 29
.br
   program,  28
.br
loading
.br
   on demand,  30
.br
   program,  72
.br
\f(CWLocal\fP,  144
.br
local
.br
   address,  124
.br
   disk,  295
.br
   storage,  326
.br
\f(CWlocal\fP file,  120
.br
\f(CWlocaltime\fP,  255
.br
\f(CWLock\fP,  209
.br
lock,  207, 209
.br
   contention,  221
.br
   queueing,  214
.br
   resource,  209
.br
   spin,  213
.br
\f(CWlock\fP,  209
.br
\f(CWlock.c\fP,  209
.br
locks, read/write,  219
.br
logging into,  4
.br
logical
.br
   and,  169
.br
   or,  169
.br
login,  4
.br
\f(CWlogin\fP,  341
.br
loging out,  4\(en5
.br
logout,  4\(en5
.br
\f(CWlookman\fP,  9, 161
.br
loop, server,  304
.br
loop, \f(CWrc\fP,  164
.br
\f(CWlp\fP,  46
.br
\f(CWlr\fP,  183
.br
\f(CWlrusers\fP,  184
.br
\f(CWls\fP,  9, 60, 63
.br
   flag \f(CW-d\fP,  14
.br
   flag \f(CW-l\fP,  28
.br
   flag \f(CW-m\fP,  14
.br
   flag \f(CW-s\fP,  10
.br
\f(CWlsdot.c\fP,  62
.br
\f(CWlstk\fP \f(CWacid\fP command,  43
.br
luck, good,  207
.SH
 M
.LP
.br
\f(CW#m\fP device driver,  267
.br
machine
.br
   load,  88
.br
   owner,  327
.br
   services,  131
.br
   stand-alone,  326
.br
   start script,  132
.br
   virtual,  2
.br
machines,  326
.br
\f(CWMAFTER\fP mount flag,  150
.br
magic,  2
.br
mail,  118
.br
   server,  132
.br
\f(CWmail\fP,  98, 110, 170
.br
\f(CWmain\fP,  31, 43, 72
.br
\f(CWmain/active\fP,  143
.br
\f(CWmake\fP,  318
.br
making calls ,  123
.br
malicious person,  326
.br
\f(CWmalloc\fP,  30, 60, 323
.br
\f(CWman\fP,  8
.br
manager, resource,  2
.br
manual,  8
.br
   page,  114
.br
   search,  161
.br
\f(CWmask\fP,  273\(en274
.br
match
.br
   context,  180
.br
   string,  166, 168
.br
   sub-expression,  179
.br
\f(CWmatch.c\fP,  181
.br
matching,  64
.br
   text,  178
.br
maximum,  193
.br
\f(CWMBEFORE\fP mount flag,  150
.br
\f(CWMCREATE\fP mount flag,  150
.br
meaning
.br
   of, data,  17
.br
   of program,  205
.br
measurement, performance,  172
.br
\f(CWmem\fP file, process,  45
.br
memory
.br
   image,  28
.br
   leak,  323
.br
   private,  332
.br
   process,  40, 74
.br
   segment,  30, 42, 45
.br
   segment, virtual,  134
.br
   shared,  204, 304
.br
   usage,  193
.br
   virtual,  29\(en30, 40
.br
memory allocation, \f(CWlib9p\fP,  309
.br
menu, \f(CWrio\fP,  5, 290
.br
message
.br
   attribute, plumb,  115
.br
   attributes, plumb,  114
.br
   delimiters,  96, 120
.br
   delivering,  113
.br
   dump,  338
.br
   handler, 9P,  304
.br
   plumb,  113
.br
   reader,  216
.br
   receive, plumb,  115
.br
   size,  297
.br
   tag,  297
.br
   type,  296
.br
messages, \f(CW9P\fP,  296
.br
metadata,  59
.br
meta-protocol,  335
.br
meta-rule,  321
.br
\f(CWmk\fP,  318
.br
   install,  322
.br
   predefined variables,  320
.br
   rules,  318
.br
   targets,  318
.br
   variables,  319
.br
\f(CWmkdir\fP,  14
.br
\f(CWmkfile\fP,  318, 323
.br
\f(CWmkone\fP,  321
.br
\f(CW/mnt/plumb\fP file system,  113
.br
\f(CW/mnt/sem\fP,  302
.br
\f(CW/mnt/term\fP,  154
.br
\f(CW/mnt/wsys\fP,  288
.br
mode
.br
   cooked,  263
.br
   file,  60
.br
   graphics,  270
.br
   hold,  263
.br
   octal,  19
.br
   open,  50
.br
   privileged,  2, 23
.br
   raw,  263
.br
   scroll,  290
.br
   text,  270
.br
mode, \f(CWAEXEC\fP access,  82
.br
modification
.br
   time,  315
.br
   time, file,  60
.br
   user id,  60
.br
\f(CW$monitor\fP,  271
.br
monitor,  225, 270
.br
mount
.br
   authentication,  151
.br
   file server,  298
.br
   file system,  140
.br
   point,  141, 147, 149
.br
   specifier,  143, 150
.br
   table,  140\(en141
.br
   union,  148
.br
mount flag
.br
   \f(CWMAFTER\fP,  150
.br
   \f(CWMBEFORE\fP,  150
.br
   \f(CWMCREATE\fP,  150
.br
   \f(CWMREPL\fP,  150
.br
\f(CWmount\fP,  140, 150, 329
.br
mounted file,  141
.br
\f(CWMouse\fP,  269
.br
mouse
.br
   button,  5
.br
   button-1,  268, 280
.br
   button2,  268
.br
   button-3,  113
.br
   coordinate,  268
.br
   device,  267
.br
   event,  267
.br
   event channel,  269
.br
   event processing,  276
.br
   initialization,  269
.br
   input,  267
.br
   library,  268
.br
   position,  268
.br
\f(CWMousectl\fP,  269
.br
\f(CWmousethread\fP,  276
.br
\f(CWMove\fP,  5
.br
move
.br
   file,  14
.br
   files,  175
.br
\f(CWMREPL\fP mount flag,  150
.br
MS Word viewer,  114
.br
\f(CWmtime\fP,  60
.br
MT-Safe,  258
.br
multiple reader,  219
.br
multiplexing
.br
   console,  287
.br
   resource,  2
.br
multiprogramming,  41
.br
multiway
.br
   branch,  168
.br
   communication,  251
.br
mutex,  231, 316
.br
mutual exclusion,  209\(en210, 231
.br
\f(CWmv\fP,  14
.SH
 N
.LP
.br
name
.br
   file,  12, 50, 60, 64, 134, 139
.br
   patterns, file,  64
.br
   process,  39
.br
   program,  80
.br
   resolution,  139\(en140
.br
   service,  140
.br
   service,  120\(en121, 126
.br
   space,  134, 139\(en140, 150
.br
   space, new,  151
.br
   space, standard,  153
.br
   system,  38, 152
.br
   thread,  238
.br
   translation,  121
.br
   user,  4, 38, 152, 328
.br
   window,  274
.br
names, \f(CW#\fP file,  147
.br
namespace, new,  339
.br
\f(CWnamespace\fP file,  180
.br
ndata,  114
.br
\f(CWndb\fP,  122
.br
\f(CWndb/cs\fP,  122
.br
\f(CWndb/csquery\fP,  122
.br
\f(CW/n/dump\fP,  65
.br
negation,  168
.br
\f(CW/net\fP file system,  118
.br
\f(CWNetConnInfo\fP,  125
.br
\f(CWnetecho.c\fP,  129
.br
\f(CW/net/ipifc\fP,  118
.br
\f(CWnetmkaddr\fP,  124
.br
\f(CWnetstat\fP,  122, 127
.br
   flag \f(CW-n\fP,  122
.br
network
.br
   address,  118, 120\(en121
.br
   computer,  118
.br
   connection,  118\(en119, 123, 140
.br
   connection information,  124
.br
   database,  122
.br
   device,  118
.br
   echo server,  129
.br
   format,  59, 61
.br
   port,  118
.br
   port creation,  126
.br
   protocol,  121
.br
   services,  118, 131
.br
   status,  122
.br
network
.br
   \f(CWctl\fP file,  119
.br
   \f(CWdata\fP file,  119
.br
\f(CWNew\fP,  5
.br
new
.br
   account,  342
.br
   fid,  299
.br
   line,  53
.br
   name space,  151
.br
   namespace,  339
.br
   process,  135
.br
   user,  329, 342
.br
   window,  5, 288
.br
newline,  263
.br
new-line character,  16
.br
\f(CWnewns\fP,  151, 339
.br
\f(CWnewuser\fP,  5
.br
\f(CWnext\fP AWK command,  195
.br
\f(CWnm\fP,  21
.br
   flag \f(CW-n\fP,  29
.br
no attach,  153
.br
\f(CWnone\fP,  339
.br
   become,  340
.br
non-linear pipe,  102, 184
.br
\f(CWnoswap\fP,  332
.br
\f(CWnot\fP, \f(CWif\fP,  166
.br
note
.br
   group,  134, 136
.br
   handler,  104\(en105
.br
   handler, shell,  189
.br
   post,  103
.br
   process group,  134
.br
note
.br
   handler, \f(CWrc\fP,  198
.br
   \f(CWhangup\fP,  103, 189, 198
.br
   \f(CWinterrupt\fP,  103, 105, 136, 189, 198, 288
.br
\f(CWnote\fP file, process,  103, 105
.br
\f(CWnotepg\fP file, process,  103, 105
.br
\f(CWnoterfork.c\fP,  137
.br
notes,  102, 259
.br
\f(CW/NOTICE\fP,  53
.br
\f(CWnread.c\fP,  57
.br
\f(CWns\fP,  143
.br
   file, process,  142
.br
null
.br
   list,  161
.br
   pointer,  45
.br
   variable,  161
.br
number
.br
   line,  185
.br
   port,  119, 121
.br
   version,  216
.br
NVRAM,  342
.br
nvram,  342
.br
\f(CWnwname\fP,  299
.SH
 O
.LP
.br
\f(CW$O\fP,  320
.br
object file,  21
.br
\f(CW$objtype\fP,  321
.br
octal
.br
   mode,  19
.br
   permissions,  60
.br
of
.br
   control, flow,  40
.br
   file, end,  16, 97
.br
   identity, proof,  329
.br
\f(CWofcall\fP,  306
.br
offset,  15, 52
.br
   file,  52, 54
.br
   shared,  79
.br
\f(CWOFILES\fP,  321
.br
on
.br
   demand, loading,  30
.br
   single sign,  343
.br
\f(CWonefork.c\fP,  73
.br
only, append,  56
.br
open
.br
   account,  4
.br
   exclusive,  267
.br
   mode,  50
.br
   plumb port,  115
.br
open
.br
   flag, \f(CWORCLOSE\fP,  105
.br
   mode, \f(CWOREAD\fP,  51
.br
   mode, \f(CWOTRUNC\fP,  55
.br
   mode, \f(CWOWRITE\fP,  51, 54
.br
\f(CWopen\fP,  50, 53, 57, 66, 139
.br
\f(CWopenfont\fP,  286
.br
operating system,  1
.br
operation
.br
   alternative channel,  257
.br
   permitted,  329
.br
   simultaneous channel,  257
.br
operator
.br
   compare,  166
.br
   concatenation,  159
.br
option,  10
.br
   argument,  33
.br
   command,  9
.br
option
.br
   \f(CW--\fP,  32
.br
   \f(CW-e\fP, \f(CWhoc\fP,  162
.br
optional string,  178
.br
or, logical,  169
.br
\f(CWORCLOSE\fP open flag,  105
.br
order, instruction,  208
.br
\f(CWOREAD\fP open mode,  51
.br
origin, screen,  274
.br
\f(CWOTRUNC\fP open mode,  55
.br
out, loging,  4\(en5
.br
output
.br
   base,  162
.br
   discard,  94
.br
   formatted,  48
.br
   redirection,  88
.br
   redirection, standard,  92
.br
   standard,  49\(en50
.br
   verbose,  176
.br
overlap, window,  290
.br
owner
.br
   file,  60
.br
   machine,  327
.br
ownership, file,  17
.br
\f(CWOWRITE\fP open mode,  51, 54
.SH
 P
.LP
.br
\f(CW#p\fP device driver,  44, 142, 148
.br
\f(CWP\fP format,  270
.br
page, manual,  114
.br
\f(CWpage\fP,  114, 323
.br
paging, demand,  30
.br
pair, address,  173
.br
panel process,  216
.br
panels, airport,  215, 247
.br
parallel,  27
.br
   execution,  26
.br
parent process,  72, 77, 134
.br
parsing,  170
.br
partition,  292
.br
partition
.br
   \f(CW9fat\fP,  293
.br
   \f(CWfs\fP,  293
.br
   \f(CWplan9\fP,  293
.br
partitioning
.br
   automatic,  295
.br
   disk,  295
.br
partitions,  293
.br
   adding,  294
.br
   deleting,  294
.br
\f(CWpasswd\fP,  342
.br
password,  326, 331
.br
\f(CW$path\fP,  38
.br
path,  12, 50, 134, 139
.br
   device,  147
.br
   relative,  31
.br
\f(CWpath\fP,  46
.br
   Qid,  298
.br
   variable,  151
.br
paths
.br
   absolute,  13
.br
   relative,  13
.br
pattern,  169
.br
   AWK,  191
.br
   character range,  65
.br
pattern
.br
   \f(CW*\fP,  64
.br
   \f(CW?\fP,  65
.br
   \f(CWBEGIN\fP,  193
.br
   \f(CWEND\fP,  193
.br
patterns, file name,  64
.br
\f(CWpatterns\fP file,  185
.br
\f(CWpc.c\fP,  229
.br
performance,  67
.br
   measurement,  172
.br
permission check,  329
.br
permissions,  60
.br
   change,  18
.br
   directory,  18
.br
   file,  17
.br
   in octal,  19
.br
   octal,  60
.br
permitted operation,  329
.br
person, malicious,  326
.br
\f(CWPfmt\fP,  270
.br
picture element,  268
.br
\f(CW$pid\fP,  39, 51
.br
\f(CWPID\fP,  238
.br
pid,  39
.br
   shell,  39
.br
   window,  288
.br
\f(CWpid.c\fP,  40
.br
Pike, Rob,  6, 265
.br
\f(CWping\fP,  123, 167
.br
ping-pong,  244
.br
pipe,  94, 96, 102, 109, 113, 119, 163, 226
.br
   bidirectional,  96
.br
   broken,  97
.br
   closed,  98
.br
   conditional,  169
.br
   creation,  100
.br
   device,  199
.br
   end of,  199
.br
   non-linear,  102, 184
.br
   to child process,  98
.br
pipe command, \f(CWacme\fP,  101
.br
\f(CWpipe\fP,  96
.br
\f(CWpipe.c\fP,  96
.br
\f(CWpipeto\fP,  100
.br
\f(CWpipeto.c\fP,  98
.br
pixel,  268
.br
\f(CWplan9\fP partition,  293
.br
plumb
.br
   message,  113
.br
   message attribute,  115
.br
   message attributes,  114
.br
   message receive,  115
.br
   port open,  115
.br
plumb port, \f(CWedit\fP,  113
.br
\f(CWplumb\fP,  116
.br
   command,  114
.br
   library,  114
.br
\f(CWPlumbattr\fP,  115
.br
plumber port,  113
.br
plumber
.br
   \f(CWrules\fP,  113
.br
   \f(CWsend\fP,  113
.br
\f(CWplumber\fP,  113, 146
.br
plumbing,  113, 146
.br
plumbing, \f(CWacme\fP,  113
.br
\f(CWplumbing\fP,  113, 146
.br
\f(CWPlumbmsg\fP,  115
.br
\f(CWplumbopen\fP,  115
.br
\f(CWplumbrecv\fP,  115
.br
\f(CWplumbsend\fP,  116
.br
\f(CWplumbsendtext\fP,  116
.br
\f(CWPoint\fP,  269
.br
point
.br
   mount,  141, 147, 149
.br
   program entry,  31
.br
   to type,  8
.br
pointer, null,  45
.br
\f(CWpollb.c\fP,  111
.br
\f(CWpoll.c\fP,  111
.br
polling,  110, 112, 223
.br
\f(CWpong.c\fP,  245
.br
port,  113
.br
   announce,  126
.br
   creation, network,  126
.br
   network,  118
.br
   number,  119, 121
.br
   plumber,  113
.br
position, mouse,  268
.br
post
.br
   file descriptor,  108, 140, 296
.br
   note,  103
.br
\f(CWpostmountsrv\fP,  303
.br
PostScript viewer,  114
.br
practice, programming,  36
.br
\f(CWpragma\fP,  20
.br
\f(CWPread\fP,  40
.br
predefined variables, \f(CWmk\fP,  320
.br
preemptive scheduling,  41
.br
\f(CWprep\fP,  294
.br
\f(CW$prereq\fP,  320
.br
principle, least privilege,  339
.br
print
.br
   current directory,  13
.br
   lines,  173
.br
\f(CWprint\fP,  21, 36
.br
   channel,  257
.br
privacy,  17
.br
private memory,  332
.br
privilege principle, least,  339
.br
privileged mode,  2, 23
.br
probe, internet,  167
.br
\f(CW/proc\fP file system,  44, 103, 142
.br
\f(CWproccreate\fP,  248
.br
procedure call, remote,  23
.br
process,  26, 40, 44, 72, 235
.br
   alarm,  106
.br
   average,  194
.br
   birth,  31
.br
   blocked,  97
.br
   child,  72, 76\(en77, 86, 134, 138
.br
   communication,  95, 242
.br
   creation,  72\(en73, 134, 248
.br
   death,  31
.br
   environment,  72
.br
   execution,  205
.br
   frozen,  101
.br
   group,  37, 102\(en103
.br
   group, environment,  134
.br
   group, file descriptor,  134
.br
   group, note,  134
.br
   id,  39
.br
   independent child,  139
.br
   interrupt,  103
.br
   kill,  104
.br
   kill broken,  95
.br
   list,  88
.br
   memory,  40, 74
.br
   name,  39
.br
   new,  135
.br
   panel,  216
.br
   parent,  72, 77, 134
.br
   resource,  134
.br
   runaway,  76
.br
   server,  303, 326
.br
   stack,  212, 236
.br
   state,  39\(en40, 111
.br
   structure,  250
.br
   synchronization,  218
.br
   termination,  35, 73, 139, 218
.br
   time,  83
.br
process
.br
   \f(CWctl\fP file,  45
.br
   \f(CWfd\fP file,  51
.br
   \f(CWmem\fP file,  45
.br
   \f(CWnote\fP file,  103, 105
.br
   \f(CWnotepg\fP file,  103, 105
.br
   \f(CWns\fP file,  142
.br
processes, concurrent,  27
.br
processing
.br
   data,  158
.br
   data,  194
.br
   mouse event,  276
.br
   read,  313
.br
   stat,  316
.br
   walk,  317
.br
   write,  314
.br
\f(CWprocexec\fP,  258
.br
\f(CWprocexecl\fP,  258
.br
producer/consumer,  225, 232
.br
profile,  132
.br
\f(CWprofile\fP,  5, 113
.br
program
.br
   arguments,  31
.br
   AWK,  195
.br
   boot,  132
.br
   C,  19
.br
   checking,  323
.br
   counter,  27
.br
   entry point,  31
.br
   execution,  24, 72, 80, 258
.br
   file server,  143, 292
.br
   interpreted,  85
.br
   interrupt,  265
.br
   loaded,  27
.br
   loader,  28
.br
   loading,  72
.br
   meaning of,  205
.br
   name,  80
.br
   running,  26
.br
   shell,  158
.br
   source,  42
.br
   symbols,  21
.br
   termination,  230, 248
.br
   text,  21
.br
programming
.br
   concurrent,  79, 204
.br
   language,  158
.br
   practice,  36
.br
prompt,  3
.br
proof of identity,  329
.br
protection, debug,  332
.br
protocol,  118
.br
   authentication,  330
.br
   file system,  140, 295
.br
   internet,  118
.br
   network,  121
.br
   telnet,  121
.br
   transport,  119
.br
providing services,  126
.br
\f(CWps\fP,  40, 45, 88, 95
.br
pseudo-parallel execution,  27
.br
\f(CWPt\fP,  279
.br
\f(CWPut\fP,  7
.br
\f(CWput\fP,  226
.br
\f(CWputenv\fP,  39
.br
\f(CWpwd\fP,  13, 37
.br
\f(CWPwrite\fP,  97
.br
PXE,  3
.SH
 Q
.LP
.br
\f(CWqcnt.c\fP,  215
.br
QID,  60
.br
Qid
.br
   ,  298
.br
   conventions,  309
.br
   file,  298
.br
Qid
.br
   \f(CWpath\fP,  298
.br
   \f(CWtype\fP,  298
.br
qids,  298
.br
\f(CWQLock\fP,  214, 219
.br
\f(CWqlock\fP,  214, 219, 226
.br
\f(CWQTAPPEND\fP,  298
.br
\f(CWQTAUTH\fP,  336
.br
\f(CWQTDIR\fP,  298, 311
.br
\f(CWQTEXCL\fP,  298
.br
quantum,  40
.br
queue,  310
.br
queueing lock,  214
.br
\f(CWqunlock\fP,  214
.br
quoting,  38, 65, 162
.SH
 R
.LP
.br
\f(CWr\fP,  36
.br
\f(CWrabbits.c\fP,  77
.br
race condition,  79, 204
.br
ram file system,  201
.br
\f(CWramfs\fP,  201, 296
.br
range
.br
   character,  178
.br
   pattern, character,  65
.br
\f(CWRattach\fP,  297
.br
\f(CWRauth\fP,  329
.br
raw mode,  263
.br
\f(CWraw.c\fP,  264
.br
\f(CWrawoff\fP,  263
.br
\f(CWrawon\fP,  263, 281
.br
\f(CWrc\fP,  4
.br
   conditionals,  168
.br
   flag \f(CW-c\fP,  100
.br
   in pipes,  95
.br
   lists,  158
.br
   loop,  164
.br
   note handler,  198
.br
   script,  161
.br
   script, \f(CW9fs\fP,  142, 144
.br
   script, \f(CWargs\fP,  167
.br
   script, \f(CWcdcopy\fP,  201
.br
   script, \f(CWcopy\fP,  138
.br
   script, \f(CWd2h\fP,  163
.br
   script, \f(CWfile\fP,  168
.br
   script, \f(CWh2d\fP,  164
.br
   script, \f(CWlist2grades\fP,  198
.br
   script, \f(CWwhen\fP,  170\(en171
.br
   using,  158
.br
\f(CW/rc/bin/service\fP,  131
.br
\f(CWrcecho\fP \f(CWrc\fP script,  87
.br
\f(CWrcinr.c\fP,  208
.br
\f(CWRclunk\fP,  299
.br
read
.br
   console,  263
.br
   directory,  61
.br
   line,  70
.br
   processing,  313
.br
   robust file,  105
.br
   simultaneous,  262
.br
   string,  70
.br
\f(CWread\fP,  49\(en50, 66, 68\(en69, 105
.br
   command,  85
.br
\f(CWreadbuf\fP,  313
.br
\f(CWread.c\fP,  49\(en50
.br
reader
.br
   console,  216
.br
   message,  216
.br
   multiple,  219
.br
reading, key,  336
.br
\f(CWreadn\fP,  105
.br
reads, directory,  315
.br
\f(CWreadstr\fP,  313
.br
read/write locks,  219
.br
\f(CWReady\fP,  111, 235
.br
ready,  41
.br
receive, plumb message,  115
.br
receiving, call,  128
.br
record
.br
   input,  195
.br
   skip,  195
.br
\f(CWRect\fP,  279
.br
\f(CWRectangle\fP,  273
.br
rectangle
.br
   height,  280
.br
   width,  280
.br
rectangle, \f(CWscreen\fP,  273
.br
\f(CWrecv\fP,  242, 269
.br
\f(CWrecvp\fP,  247
.br
\f(CWrecvul\fP,  247
.br
redirection
.br
   file descriptor,  88
.br
   append,  93
.br
   input,  89
.br
   input and output,  93
.br
   I/O,  88
.br
   output,  88
.br
   standard error,  166
.br
   standard output,  92
.br
\f(CWRef\fP,  310
.br
reference counting,  309
.br
\f(CWRefnone\fP,  277
.br
\f(CWregcomp\fP,  181
.br
\f(CWregexp\fP,  181
.br
region, critical,  208, 210
.br
registers,  75
.br
registry,  107
.br
regression testing,  323
.br
regular expression,  114, 178
.br
   compiler,  181
.br
relative
.br
   path,  31
.br
   paths,  13
.br
relying,  333
.br
remote
.br
   command execution,  132
.br
   debugging,  155
.br
   execution,  154
.br
   file system,  154
.br
   procedure call,  23
.br
\f(CWremote\fP file,  120
.br
remove
.br
   duplicates,  183
.br
   file,  11, 312
.br
\f(CWremove\fP,  58
.br
rename, file,  14, 174
.br
\f(CWRendez\fP,  223, 226
.br
\f(CWrendez.c\fP,  222
.br
rendezvous,  246
.br
   group,  134\(en135
.br
   tag,  221
.br
\f(CWrendezvous\fP,  134, 221
.br
\f(CWrepl\fP,  279
.br
replace string,  172
.br
replicated image,  279
.br
representation, text,  265
.br
\f(CWReprog\fP,  181
.br
\f(CWReq\fP,  305
.br
request, 9P,  296, 305
.br
\f(CWRerror\fP,  297
.br
\f(CWrerrstr\fP,  36
.br
\f(CWResize\fP,  5
.br
resize
.br
   event,  275\(en276
.br
   window,  274\(en275, 291
.br
\f(CWresize.c\fP,  276
.br
\f(CWresizethread\fP,  276
.br
resolution
.br
   name,  139\(en140
.br
   screen,  271
.br
resource
.br
   fork,  134
.br
   lock,  209
.br
   manager,  2
.br
   multiplexing,  2
.br
   process,  134
.br
   shared,  78\(en79
.br
   sharing,  86, 134, 138
.br
\f(CWrespond\fP,  306
.br
Return,  4
.br
return, carriage,  121
.br
return value, \f(CWfork\fP,  72
.br
reverse sort,  192
.br
\f(CWRFENVG\fP \f(CWrfork\fP flag,  138
.br
\f(CWRFFDG\fP \f(CWrfork\fP flag,  135
.br
\f(CWRFMEM\fP \f(CWrfork\fP flag,  204
.br
\f(CWRFNOMNT\fP \f(CWrfork\fP flag,  153, 340
.br
\f(CWRFNOTEG\fP \f(CWrfork\fP flag,  136
.br
\f(CWRFNOWAIT\fP \f(CWrfork\fP flag,  139
.br
\f(CWrfork\fP,  134, 145, 204, 212, 248
.br
   command,  139, 161
.br
   flag, \f(CWRFENVG\fP,  138
.br
   flag, \f(CWRFFDG\fP,  135
.br
   flag, \f(CWRFMEM\fP,  204
.br
   flag, \f(CWRFNOMNT\fP,  153, 340
.br
   flag, \f(CWRFNOTEG\fP,  136
.br
   flag, \f(CWRFNOWAIT\fP,  139
.br
   flag, \f(CWRFPROC\fP,  135
.br
\f(CWrforkls.c\fP,  135
.br
\f(CWRFPROC\fP \f(CWrfork\fP flag,  135
.br
\f(CWRFREND\fP,  249
.br
\f(CWrincr.c\fP,  204
.br
\f(CWrio\fP,  5, 37, 46, 262, 287
.br
   commands,  5
.br
   file system,  153, 287
.br
   menu,  5, 290
.br
RJ45,  118
.br
\f(CWrlock\fP,  219
.br
\f(CWrm\fP,  11, 14, 58, 65
.br
   flag \f(CW-f\fP,  12
.br
   flag \f(CW-r\fP,  59
.br
\f(CWrm.c\fP,  58
.br
Rob Pike,  6, 265
.br
robust file read,  105
.br
\f(CWrobustreadn\fP,  106
.br
role,  335
.br
ROM,  270
.br
\f(CW/root\fP,  152
.br
root
.br
   device,  147
.br
   directory,  13, 134
.br
   directory, file server,  297
.br
\f(CWRopen\fP,  299
.br
round trip time,  123
.br
\f(CWrpc\fP file,  332
.br
\f(CWRpt\fP,  279
.br
\f(CWrsleep\fP,  223
.br
RTT,  123
.br
rule, implicit,  321
.br
rules, \f(CWmk\fP,  318
.br
\f(CWrules\fP, plumber,  113
.br
runaway process,  76
.br
\f(CWRune\fP,  266
.br
rune,  15, 265
.br
   conversion,  267
.br
\f(CWrune.c\fP,  266
.br
\f(CWrunetochar\fP,  266
.br
\f(CWrunlock\fP,  219
.br
\f(CWrunls.c\fP,  72
.br
\f(CWRunning\fP,  111
.br
running,  41
.br
   program,  26
.br
\f(CWRversion\fP,  297
.br
\f(CWrwakeup\fP,  223
.br
\f(CWrwakeupall\fP,  223
.br
\f(CWRwalk\fP,  299
.br
\f(CWRwrite\fP,  299
.br
\f(CWrx\fP,  132
.SH
 S
.LP
.br
\f(CW#S\fP device driver,  156, 292
.br
\f(CW#s\fP device driver,  107
.br
sandbox,  153
.br
sandboxing,  152, 339
.br
scheduler,  41
.br
scheduling,  39, 41, 205, 235
.br
   preemptive,  41
.br
screen,  268, 272
.br
   blank,  271
.br
   image,  46
.br
   layout,  291
.br
   origin,  274
.br
   resolution,  271
.br
   size,  268, 291
.br
\f(CWscreen\fP,  272, 289
.br
   rectangle,  273
.br
script,  85
.br
   argument,  159
.br
   arguments,  87, 167
.br
   diagnostics,  186
.br
   machine start,  132
.br
   shell,  85, 87, 138, 161
.br
script, \f(CWrc\fP,  161
.br
scroll mode,  290
.br
\f(CWsdC0\fP,  156
.br
search
.br
   manual,  161
.br
   text,  114, 178
.br
   word,  94
.br
searching,  182
.br
   file,  64
.br
secret,  342
.br
   shared,  329
.br
\f(CWsecstore\fP,  343
.br
secure
.br
   server,  336
.br
   store,  343
.br
   system,  326
.br
security,  326
.br
   9P,  328
.br
\f(CWsed\fP,  172, 178
.br
   command, compound,  174
.br
   flag \f(CW-e\fP,  172
.br
   flag \f(CW-n\fP,  173
.br
\f(CWseek\fP,  52, 55\(en56, 293
.br
\f(CWseekhello.c\fP,  56
.br
segment
.br
   bss,  30, 45
.br
   data,  30, 45
.br
   memory,  30, 42, 45
.br
   stack,  30, 45
.br
   text,  30, 45
.br
   virtual memory,  134
.br
\f(CWSem\fP,  308
.br
semaphore,  230, 301
.br
   file system,  301
.br
   tickets,  230
.br
   value,  230
.br
\f(CWsemfs\fP,  301
.br
\f(CWsend\fP,  242
.br
   plumber,  113
.br
\f(CWsendp\fP,  247
.br
\f(CWsendul\fP,  247
.br
\f(CWseq\fP,  101, 165, 193
.br
sequences,  165
.br
sequential
.br
   access,  52
.br
   server,  129
.br
server,  126, 296
.br
   9P,  296
.br
   authentication,  342
.br
   concurrent,  129
.br
   connection,  122
.br
   CPU,  154, 340
.br
   echo,  108
.br
   file,  3, 22, 54, 107, 109, 140, 199, 292
.br
   loop,  304
.br
   mail,  132
.br
   network echo,  129
.br
   process,  303, 326
.br
   program, file,  143
.br
   secure,  336
.br
   sequential,  129
.br
   threaded,  129
.br
   uid,  335
.br
servers
.br
   authentication,  330
.br
   CPU,  131
.br
service,  120
.br
   name,  120\(en121, 126
.br
   name,  140
.br
   TCP echo,  131
.br
\f(CWservice\fP,  132
.br
services
.br
   machine,  131
.br
   network,  118, 131
.br
   providing,  126
.br
set, character,  178
.br
setting up DMA,  292
.br
shared
.br
   buffer,  225
.br
   counter,  204, 235
.br
   memory,  204, 304
.br
   offset,  79
.br
   resource,  78\(en79
.br
   secret,  329
.br
sharing, resource,  86, 134, 138
.br
shell,  4, 23
.br
   comment,  86
.br
   comment character,  20
.br
   function,  183
.br
   note handler,  189
.br
   pid,  39
.br
   program,  158
.br
   script,  85, 87, 138, 161
.br
   variable,  64, 158
.br
\f(CWsic.c\fP,  35
.br
\f(CWsig\fP,  9, 48
.br
\f(CWsigalrm\fP,  189
.br
\f(CWsighup\fP,  189
.br
\f(CWsigint\fP,  189
.br
sign on, single,  343
.br
\f(CWsignal\fP,  230
.br
silent \f(CWgrep\fP,  197
.br
simultaneous
.br
   channel operation,  257
.br
   read,  262
.br
single
.br
   sign on,  343
.br
   writer,  219
.br
single-user,  327
.br
size
.br
   file,  10
.br
   message,  297
.br
   screen,  268, 291
.br
skip record,  195
.br
slash,  12, 134
.br
sleep,  223
.br
\f(CWsleep\fP,  52, 84, 105, 110, 112, 170, 207, 237
.br
\f(CWsleep.c\fP,  52
.br
slider
.br
   drawing,  278
.br
   graphic,  274
.br
\f(CWslider.c\fP,  284
.br
\f(CWsmprint\fP,  257
.br
snapshot, file system,  143
.br
\f(CWSnarf\fP,  7
.br
software interrupt,  23
.br
sort
.br
   reverse,  192
.br
   text,  182
.br
\f(CWsort\fP,  182
.br
   flag \f(CW-n\fP,  182
.br
   flag \f(CW-r\fP,  182
.br
   flag \f(CW-u\fP,  184
.br
sorting,  182
.br
source, program,  42
.br
space
.br
   disk,  56
.br
   name,  134, 139\(en140, 150
.br
   new name,  151
.br
   virtual address,  29
.br
spam,  185
.br
speak for,  340
.br
specifier
.br
   attach,  143, 287
.br
   mount,  143, 150
.br
spin lock,  213
.br
split, string,  170
.br
src,  114
.br
\f(CWsrc\fP,  42
.br
\f(CW/srv\fP,  108, 120, 155, 287
.br
\f(CWSrv\fP,  302
.br
\f(CWsrv\fP,  120, 140
.br
\f(CW/srv\fP file system,  107
.br
\f(CWsrv.c\fP,  123
.br
\f(CWsrvecho.c\fP,  108
.br
\f(CWsrvfs\fP,  155
.br
\f(CW/srv/ram\fP,  296
.br
stack
.br
   dump,  212
.br
   dump, thread,  242
.br
   process,  212, 236
.br
   segment,  30, 45
.br
   thread,  236
.br
stamp, time,  268
.br
stand-alone
.br
   installation,  295
.br
   machine,  326
.br
standard
.br
   error,  49\(en50, 92
.br
   error redirection,  166
.br
   includes,  20
.br
   input,  49\(en50, 89\(en90
.br
   name space,  153
.br
   output,  49\(en50
.br
   output redirection,  92
.br
start
.br
   of line,  178
.br
   of text,  178
.br
   script, machine,  132
.br
starvation,  213, 223, 240
.br
stat processing,  316
.br
\f(CWstat\fP,  60\(en61
.br
\f(CWstat.c\fP,  61
.br
state
.br
   blocked,  207
.br
   process,  39\(en40, 111
.br
stateless,  3
.br
statement, AWK,  190
.br
statistics, system,  111
.br
\f(CWstats\fP,  111, 288
.br
\f(CW$status\fP,  35, 38
.br
status
.br
   exit,  35, 38, 42, 82, 166
.br
   network,  122
.br
\f(CW$stem\fP,  321
.br
\f(CWstk\fP \f(CWacid\fP command,  43
.br
storage
.br
   device,  292
.br
   device driver,  156
.br
   disk,  292
.br
   local,  326
.br
store
.br
   backing,  277
.br
   secure,  343
.br
stream,  267
.br
   editor,  172
.br
string,  159
.br
   draw,  285
.br
   error,  36, 59, 83
.br
   match,  166, 168
.br
   optional,  178
.br
   read,  70
.br
   replace,  172
.br
   split,  170
.br
   substitute,  174
.br
\f(CWstring\fP,  285
.br
\f(CWstringsize\fP,  286
.br
\f(CWstrip\fP,  28
.br
structure, process,  250
.br
student account,  194
.br
sub-expression match,  179
.br
subshell,  138
.br
substitute string,  174
.br
substitution
.br
   command,  101, 166
.br
   global,  174
.br
switch
.br
   context,  40, 207, 235, 237
.br
   thread,  237
.br
\f(CWswitch\fP,  168
.br
symbol,  42
.br
   table,  28
.br
   text,  265
.br
   undefined,  21
.br
symbols, program,  21
.br
synchronization,  204, 221
.br
   process,  218
.br
   thread,  246
.br
synchronize,  207, 210
.br
synchronous communication,  102
.br
syntax, command invocation,  35
.br
\f(CWsysfatal\fP,  36
.br
\f(CW/sys/include\fP,  114
.br
\f(CW$sysname\fP,  38, 152
.br
\f(CWsysname\fP,  46
.br
system
.br
   call,  22\(en23, 40, 72
.br
   call error,  35, 59, 81
.br
   distributed,  118
.br
   dump, file,  143
.br
   file,  147, 199
.br
   load,  111
.br
   mount, file,  140
.br
   name,  38, 152
.br
   operating,  1
.br
   protocol, file,  140
.br
   secure,  326
.br
   snapshot, file,  143
.br
   statistics,  111
.br
   time,  67
.br
   window,  3, 5, 24, 103, 153, 262, 287
.br
system
.br
   \f(CW/env\fP file,  45
.br
   \f(CW/fd\fP file,  89, 152
.br
   \f(CW/mnt/plumb\fP file,  113
.br
   \f(CW/proc\fP file,  44, 103, 142
.br
   \f(CWrio\fP file,  153
.SH
 T
.LP
.br
\f(CWt+\fP,  101, 180
.br
\f(CWt-\fP,  180
.br
\f(CWTab\fP,  16
.br
tab wdith,  17
.br
table
.br
   file descriptor,  48, 134
.br
   mount,  140\(en141
.br
   symbol,  28
.br
tag,  7
.br
   message,  297
.br
   rendezvous,  221
.br
Tags,  297
.br
\f(CWtake.c\fP,  19
.br
tape,  67
.br
   archive,  175
.br
\f(CWtar\fP,  175
.br
\f(CWtarfs\fP,  199
.br
\f(CWTARG\fP,  321
.br
\f(CW$target\fP,  320
.br
targets, \f(CWmk\fP,  318
.br
\f(CWtas\fP instruction,  210
.br
\f(CWTattach\fP,  297, 329
.br
\f(CWTauth\fP,  329, 336
.br
\f(CWTclunk\fP,  299
.br
\f(CWtcnt.c\fP,  240
.br
TCP echo service,  131
.br
\f(CWtcp7\fP,  131
.br
\f(CWTcreate\fP,  311
.br
telnet protocol,  121
.br
\f(CWtelnet\fP,  121
.br
   flag \f(CW-r\fP,  121
.br
temporary
.br
   file,  189
.br
   files,  40
.br
terminal,  3, 22, 287, 326
.br
   file system,  154
.br
termination
.br
   process,  35, 73, 139, 218
.br
   program,  230, 248
.br
termination, \f(CWBiobuf\fP,  69
.br
\f(CWtermrc\fP,  132, 151
.br
\f(CWtest\fP,  169
.br
   flag \f(CW-d\fP,  169
.br
   flag \f(CW-e\fP,  169
.br
   flag \f(CW-older\fP,  170
.br
test-and-set,  210
.br
testing,  322
.br
   regression,  323
.br
\f(CWtexec.c\fP,  259
.br
text
.br
   address,  172
.br
   delete,  173
.br
   drawing,  285
.br
   editing,  171
.br
   end of,  178
.br
   files,  158
.br
   indent,  180
.br
   matching,  178
.br
   mode,  270
.br
   program,  21
.br
   representation,  265
.br
   search,  114, 178
.br
   segment,  30, 45
.br
   sort,  182
.br
   start of,  178
.br
   symbol,  265
.br
   window,  46, 289
.br
the system
.br
   entering,  2
.br
   leaving,  5
.br
\f(CWthello.c\fP,  55
.br
things, building,  318
.br
thinking, wishful,  301
.br
Thompson, Ken,  20, 265
.br
thread,  235
.br
   argument,  239
.br
   debugging,  240
.br
   id,  238
.br
   identifier,  238
.br
   I/O,  247
.br
   library,  235
.br
   name,  238
.br
   stack,  236
.br
   stack dump,  242
.br
   switch,  237
.br
   synchronization,  246
.br
   timer,  255
.br
\f(CWthreadcreate\fP,  236, 248
.br
threaded server,  129
.br
\f(CWthreadexits\fP,  236
.br
\f(CWthreadexitsall\fP,  236
.br
\f(CWthreadgetname\fP,  241
.br
\f(CWthreadid\fP,  238
.br
\f(CWthreadmain\fP,  236
.br
\f(CWthreadname\fP,  277
.br
\f(CWthreadnotify\fP,  259
.br
\f(CWthreadpostmountsrv\fP,  304
.br
\f(CWthreads\fP function, \f(CWacid\fP,  240
.br
\f(CWthreadsetname\fP,  241
.br
\f(CWthreadwaitchan\fP,  258
.br
\f(CWticker.c\fP,  218
.br
tickets,  330
.br
   semaphore,  230
.br
\f(CWtid.c\fP,  238
.br
tiling,  274
.br
time,  44
.br
   access,  315
.br
   CPU,  111
.br
   elapsed,  67
.br
   file access,  60
.br
   file modification,  60
.br
   modification,  315
.br
   of day,  255
.br
   process,  83
.br
   round trip,  123
.br
   stamp,  268
.br
   system,  67
.br
   user,  67
.br
\f(CWtime\fP,  44, 67, 255
.br
   command,  172
.br
timeout,  106
.br
timer,  107
.br
   thread,  255
.br
\f(CWtincr.c\fP,  236
.br
TLS,  343
.br
to
.br
   device, device,  66
.br
   type, click,  8
.br
   type, point,  8
.br
tools,  158
.br
top window,  290
.br
\f(CWTopen\fP,  299, 329
.br
\f(CWtouch\fP,  10
.br
\f(CWtoupperrune\fP,  266
.br
\f(CWtr\fP,  163
.br
   flag \f(CW-d\fP,  164
.br
translation
.br
   coordinate,  274
.br
   name,  121
.br
transport protocol,  119
.br
trap,  23, 42
.br
tree, file,  12, 134, 139\(en140
.br
\f(CWTremove\fP,  312
.br
\f(CWtrinc.c\fP,  237
.br
\f(CWtroff\fP,  94, 322
.br
truncate,  55, 58, 92
.br
\f(CWTstat\fP,  300
.br
\f(CWTversion\fP,  297
.br
\f(CWTwalk\fP,  299
.br
\f(CWTwrite\fP,  299
.br
\f(CWTwstat\fP,  300
.br
type,  114
.br
   CPU,  152
.br
   message,  296
.br
\f(CWtype\fP, Qid,  298
.br
types, abstract data,  1
.br
typesetting,  94
.br
typing a command,  9
.SH
 U
.LP
.br
UDP,  119
.br
\f(CWu.h\fP,  20
.br
uid,  328
.br
   change,  341
.br
   client,  335
.br
   server,  335
.br
\f(CWuid\fP,  60
.br
unbuffered channel,  245
.br
undefined symbol,  21
.br
Unicode,  265
.br
unicode code,  266
.br
union,  149, 152
.br
   mount,  148
.br
\f(CWuniq\fP,  183
.br
unique
.br
   identifier,  298
.br
   lines,  183
.br
unit, drive,  293
.br
UNIX,  3, 16, 20, 96, 118, 132, 158, 258, 318
.br
\f(CWunlock\fP,  209
.br
\f(CWunmount\fP,  143
.br
up,  308
.br
\f(CWup\fP,  230
.br
updates, concurrent,  207
.br
usage
.br
   disk,  175, 182
.br
   memory,  193
.br
\f(CWusage\fP,  34
.br
\f(CW$user\fP,  38, 152
.br
user,  326
.br
   data,  311
.br
   id,  60
.br
   id, modification,  60
.br
   I/O,  262
.br
   name,  4, 38, 152, 328
.br
   new,  329, 342
.br
   time,  67
.br
\f(CWuser\fP,  46
.br
users,  326
.br
using files,  9
.br
using \f(CWrc\fP,  158
.br
UTF-8,  265
.br
UTF8,  15
.br
\f(CWUTFmax\fP,  266
.SH
 V
.LP
.br
\f(CW#v\fP device driver,  270
.br
value, semaphore,  230
.br
variable
.br
   environment,  44\(en45, 64, 81, 134, 138, 158
.br
   expansion,  64
.br
   global,  28, 204
.br
   length,  159
.br
   null,  161
.br
   shell,  64, 158
.br
variable
.br
   \f(CWcpu\fP,  132
.br
   \f(CWpath\fP,  151
.br
variables
.br
   AWK,  190
.br
   condition,  225
.br
   Environment,  134
.br
   environment,  37
.br
variables, \f(CWmk\fP,  319
.br
vector, argument,  80
.br
verbose output,  176
.br
version
.br
   file,  298
.br
   number,  216
.br
VGA,  270
.br
vga device,  270
.br
\f(CWvga\fP,  271
.br
\f(CWvgactl\fP,  270
.br
\f(CW$vgasize\fP,  271, 291
.br
viewer
.br
   document,  114
.br
   MS Word,  114
.br
   PostScript,  114
.br
virtual
.br
   address space,  29
.br
   console,  265
.br
   machine,  2
.br
   memory,  29\(en30, 40
.br
   memory segment,  134
.br
virus,  75
.SH
 W
.LP
.br
wait for
.br
   child process,  99
.br
   children,  82
.br
\f(CWwait\fP,  82, 137, 172, 230, 258
.br
waiting, busy,  41, 110, 213
.br
\f(CWWaitmsg\fP,  83
.br
   channel,  258
.br
\f(CWwaitpid\fP,  84, 99, 101
.br
wakeup,  223
.br
walk,  139\(en141, 299
.br
   processing,  317
.br
wastebasket,  59
.br
\f(CWwc\fP,  88, 94
.br
   flag \f(CW-w\fP,  94
.br
wdir,  114
.br
wdith, tab,  17
.br
web,  118
.br
\f(CWwerrstr\fP,  37, 83
.br
\f(CWwhale\fP,  120
.br
\f(CWwhatis\fP,  183
.br
\f(CWwhen\fP \f(CWrc\fP script,  170\(en171
.br
who last modified, file,  14
.br
width, rectangle,  280
.br
window,  37, 50, 146, 287
.br
   acquiring,  274
.br
   alternate,  288
.br
   bottom,  290
.br
   coordinates,  273
.br
   creation,  287
.br
   current,  290
.br
   hide,  290
.br
   image,  46
.br
   label,  272, 289
.br
   name,  274
.br
   new,  5, 288
.br
   overlap,  290
.br
   pid,  288
.br
   resize,  274\(en275, 291
.br
   system,  3, 5, 24, 103, 153, 262, 287
.br
   text,  46, 289
.br
   top,  290
.br
\f(CWwindow\fP,  288
.br
   command,  152
.br
   library,  289
.br
wishful thinking,  301
.br
with holes, file,  56
.br
\f(CWwlock\fP,  219
.br
\f(CWwname\fP,  299
.br
word
.br
   count,  88, 94
.br
   search,  94
.br
working directory,  \f2see\fP current directory
.br
working directory,  134
.br
write
.br
   boundaries,  96, 120
.br
   CD,  175
.br
   console,  263
.br
   processing,  314
.br
\f(CWwrite\fP,  22, 48, 50, 53, 56, 66, 78
.br
   atomic,  79
.br
\f(CWwrite.c\fP,  48
.br
writer, single,  219
.br
\f(CWwrkey\fP,  342
.br
\f(CWWRLock\fP,  219
.br
\f(CWwstat\fP,  63
.br
\f(CW$wsys\fP,  287
.br
\f(CWwunlock\fP,  219
.SH
 X
.LP
.br
\f(CWxd\fP,  15, 54\(en55
.br
XML,  158
.SH
 Y
.LP
.br
\f(CWyield\fP,  238
.SH
 Z
.LP
.br
\f(CWzipfs\fP,  199
.br
\f(CWZP\fP,  274, 286
.1C