[comp.os.minix] V1.3c posting #7 - doc

ast@cs.vu.nl (Andy Tanenbaum) (09/28/88)

: This is a shar archive.  Extract with sh, not csh.
: This archive ends with exit, so do not worry about trailing junk.
: --------------------------- cut here --------------------------
PATH=/bin:/usr/bin:/usr/ucb
echo Extracting 'LISTING'
sed 's/^X//' > 'LISTING' << '+ END-OF-FILE ''LISTING'
Xtotal 52
X-rw-r--r--  1 ast         23674 Sep 26 22:48 USER_GUIDE
X-rw-r--r--  1 ast         23520 Sep 26 22:47 man_pages.cdif
X-rw-r--r--  1 ast          4967 Sep 26 22:47 net.man.cdif
+ END-OF-FILE LISTING
chmod 'u=rw,g=r,o=r' 'LISTING'
set `wc -c 'LISTING'`
count=$1
case $count in
183)	:;;
*)	echo 'Bad character count in ''LISTING' >&2
		echo 'Count should be 183' >&2
esac
echo Extracting 'USER_GUIDE'
sed 's/^X//' > 'USER_GUIDE' << '+ END-OF-FILE ''USER_GUIDE'
XThis file contains important information not present in the book or elsewhere.
XPlease read it VERY carefully.
X
X
X 1. GENERAL
X       There were a number of changes made to the code after the book
X    was printed.  As a result, line X of file Y in the book may actually 
X    appear at X+3, or X-5, etc. on the disk version.  New features have also
X    been added in various places.
X
X 2. PC-AT
X       The distribution for the PC-AT differs from that for the PC in minor
X    ways.  For example, there is no /user diskette.  Most the files that would
X    normally be on /user fit on /usr.  Furthermore, the number and organization
X    of the source diskettes is different, but the same programs are available.
X    Two additional special files are present in /dev: /dev/at0 and /dev/at1.
X    These should be used to access 1.2M diskettes.  To access 360K diskettes
X    on the PC-AT, use /dev/fd0 and /dev/fd1.  Special files are used by
X    commands such as mount, mkfs, and df, among others.  For example, to
X    copy part of a 1.2M diskette, type dd if=/dev/at0 of=file count=100.
X    The difference between /dev/at0 and /dev/fd0 is that in MINIX, special
X    files have sizes to prevent access beyond the end.  For /dev/fd0 the
X    size is 360K.  For /dev/at0 it is 1.2M.  Finally, the executable binary
X    for the PC-AT contains at_wini.c instead of xt_wini.c (see below).
X
X 3. HARD DISK DRIVERS
X       MINIX supports the use of the standard IBM hard disks.  Unfortunately,
X    IBM chose to use different (and incompatible) disks and controllers on the
X    XT and AT.  To find out if MINIX works with your disk, give the command:
X		dd if=/dev/hd0 of=/dev/null count=1000
X    If this runs to the end without errors, the driver embedded in your
X    MINIX binary is appropriate for your controller and drive.  If it gives
X    errors, do a sync, turn the computer off and reboot MINIX.  This time run
X    a hard disk check from the initial menu.  Start MINIX (even if this check
X    gives errors).  Run dd again.  If it still fails, try the following.
X    Copy kernel/xt_wini.c to wini.c and recompile the operating system.
X    If this fails, then try kernel/at_wini.c and recompile it once more.
X    Usually, one of these will work.  If neither works, your disk is not
X    compatible with either the XT or AT.  You will have to modify the driver.
X    For PS/2 Model 30 users, a driver ps_wini.c has been provided for use.
X    You MUST have a kernel/wini.c to recompile the system, even if you do not
X    have a hard disk (in which case, any one will do).
X
X 4. INSTALLING MINIX ON A HARD DISK
X      After you have made sure that you have a working hard disk driver, as
X    described above, proceed as follows. To use MINIX on a hard disk, you need
X    a MINIX partition.  You may also have MS-DOS, PC-IX, OS/2, XENIX, or other
X    partitions as well if you like.  If you understand about making partitions,
X    make one any way you are used to.  Otherwise use the MINIX fdisk program.
X    All partitions on the disk must be an even number of sectors even DOS ones.
X    Be warned that the MINIX, MS-DOS, PC-IX, and XENIX parition numbering 
X    schemes all differ.  Be very careful here, lest you overwrite useful data.
X       It is suggested that you use the program diskcheck to inspect the MINIX
X    partition for bad blocks.  The program badblocks will help deal with them.
X    The file man_pages in this directory discusses their use.
X       Once you have a partition available for MINIX (the type does not matter
X    as MINIX does not check), make a file system by booting MINIX from floppy
X    the usual way and run mkfs.  If, for example, you have chosen partition 2,
X    which has, say, 40 cylinders (i.e., 40 x 68 = 2720 sectors or 1360 1K
X    blocks), type: 
X		mkfs /dev/hd2 1360
X    to make an empty file system.  However, for partition 1 use 1 block less
X    because block 0 is not available (it contains the MS-DOS partition table).
X    In other words, a 40 cylinder partition 1 has 1359 blocks but a 40 cylinder
X    partition 2 or higher has 1360 blocks. Then mount the file system by typing
X		/etc/mount /dev/hd2 /user
X    Next, make whatever directories you like, typically bin, lib, and others,
X    and copy files to the hard disk.  With the /usr floppy in drive 0, the
X    command 
X		cp /usr/bin/* /user/bin
X    will copy all the binaries from /usr/bin to the hard disk, for example.
X       Alternatively, the cpdir program can be used to copy entire trees, e.g.
X		cpdir /usr/bin /user/bin
X    will create a new directory /user/bin, and put /usr/bin with all its files
X    and subdirectories in it.  
X       A few of the files in /usr/bin must be owned by the root (instead of 
X    bin) and have mode 4755. Check to make sure. These files are:  
X		badblocks chgrp df fsck mkdir mv passwd readall rmdir su
X       Finally, edit /etc/rc to have the hard disk mounted when the system
X    is booted.  A line such as
X		/etc/mount /dev/hd2 /usr
X    can be used as a replacement for the mount command initially in /etc/rc.
X    After editing /etc/rc, mount the root file system diskette and copy it
X    to the diskette; otherwise the changes will be lost when the system is
X    rebooted.  (There is nothing special about the root file system except
X    its size; it can be mounted and written on like any other file system.)
X       After these steps have been taken, the system can be booted from
X    floppy in the usual way, and the root file system also read in from
X    floppy.  The hard disk will automatically be mounted by the /etc/rc.
X    The root device remains on the RAM disk, and the boot process still
X    goes via floppy (for compatibility and to prevent disaster in the event
X    that something goes wrong with the hard disk file system).  Hard disk
X    file systems can be checked using fsck, the same as floppies.  However,
X    fsck assumes you have 4 heads and 17 sectors/track.  If this is not so,
X    change the code accordingly or fsck will give spurious errors.
X       The special file /dev/hd0 refers to the whole disk, without regard to
X    partitions, whereas /dev/hd1 ... /dev/hd4 refer to partitions 1 to 4.  If
X    you have a second hard disk, you can make /dev/hd5 ... /dev/hd9 with mknod
X    (major device 3, minor device 5 ... 9) for the second drive, with hd5 for
X    the whole drive, hd6 for partition 1, etc.  Fsck also uses this convention.
X
X  5. CONFIGURING MINIX ON A HARD DISK
X       When setting up MINIX on a hard disk, the following set of directories
X    is recommended, although the MINIX source tree can go elsewhere if desired.
X    Be sure to edit the cc.c program to make sure it knows where to find the
X    various compiler passes and libraries, which may be in /bin, lib, /usr/bin,
X    or /usr/bin.  When a large RAM disk is available, put /bin and /lib on the
X    RAM disk, and include the compiler parts in them.  When extracting files
X    from the distribution, note carefully that there is a lib directory on the
X    /usr diskette (for /lib and /usr/lib) and another one among the sources
X    (for /usr/src/minix/lib).  Many of the directories listed below have sub-
X    directories.
X
X	/bin			- most common binaries
X	/dev			- special files
X	/etc			- system administration
X	/lib			- most important libraries
X	/tmp			- scratch files go here
X	/usr			- mount usr file system here
X	/usr/bin		- rest of the binaries
X	/usr/include		- system include files
X	/usr/lib		- rest of the libraries
X	/usr/src		- sources go here
X	/usr/src/minix		- minix sources go here
X	/usr/src/minix/amoeba	- all networking code is here
X	/usr/src/minix/commands	- utility program sources
X	/usr/src/minix/fs	- file system sources
X	/usr/src/minix/h	- operating system header files
X	/usr/src/minix/kernel	- kernel and device driver sources
X	/usr/src/minix/lib	- libc.a sources
X	/usr/src/minix/mm	- memory manager sources
X	/usr/src/minix/test	- test programs
X	/usr/src/minix/tools	- tools for building new operating systems
X	/usr/tmp		- (optional) alternative place for temporaries
X	
X  6. PUTTING THE ROOT FILE SYSTEM ON A HARD DISK
X       To speed up the boot procedure, you may copy the root file system to
X    /dev/hd3 with the commands 
X		cp /dev/fd0 /dev/hd3     or    cp /dev/at0 /dev/hd3
X    The former is for the PC, the latter is for the AT.  /dev/hd3 must not be
X    mounted. When booting, leave the boot diskette in the drive when typing the
X    = sign.  MINIX will see that the diskette is not a valid file system, and
X    take the root file system from the default device, /dev/hd3.  You can 
X    change the choice of default by modifying RAM_IMAGE in fs/main.c
X
X  7. USING MS-DOS AS A DEVELOPMENT SYSTEM
X       MINIX is now completely self supporting, so the C86 and PC-IX 
X    directories have been deleted.  The only time you might need MS-DOS is
X    for formatting blank diskettes.  MINIX does not have a format program.
X
X  8. EDITING LARGE PROGRAMS WITH MINED
X       Mined has a limit on the size of programs it can edit.  To edit
X     larger ones, they must be broken up with split, edited separately and
X     recombined later.  Better yet, use elle, which is a much better editor,
X     is emacs compatible, and can handle files as large as the disk.
X
X  9. MKNOD
X        MINIX differs from UNIX in that block special files (and even some
X    character special files, such as /dev/kmem) can have sizes.  A 360K floppy
X    disk special file, such as /dev/fd0 can have size 360K.  Unfortunately, the
X    mknod system call (and mknod program) have no way to express the size,
X    so it uses size 0, which is equal to infinity.  When you read past the
X    end of a block special file WITH a size, the file system returns zero
X    bytes.  When you go off the end of a device WITHOUT a size, some drivers
X    return end-of-file (e.g., hard disk, RAM disk), but others (e.g., floppy
X    disk) return an I/O error code.  Thus if you make a new block special file
X    for 2/0 and 2/1 (floppy disk) with mknod (i.e., no size) the command
X		cp /dev/fd0 /dev/fd1
X    will terminate with an error on block 360 (but it will copy the disk
X    perfectly).  The only way to make a special file with a size is by making 
X    a file system with mkfs.
X
X10. NONEXISTENT DEVICES
X       If you try to open /dev/fd1 on a system with only one floppy disk drive,
X    the system may hang.  To avoid this problem, the first time you log in, go
X    to the /dev directory, and rename special files that you do not have to
X    something unusual.  For example, if you do not have a hard disk, rename
X    hd0 to HARD_DISK_0, hd1 to HARD_DISK_1, etc.  Similarly with one one floppy
X    disk, rename fd1 to FLOPPY_DISK_1 to prevent it being typed by accident.
X    You can also remove them, but due to the mknod problem described above, you
X    can not get them back easily, so it is best just to get them out of the 
X    way in case you ever need them again later.
X
X11. PRINTER
X       In order to accommodate buffered and unbuffered printers, the printer
X    driver uses a combination of delay loops and interrupts.  The net result
X    is that the driver consumes a fair number of CPU cyles when running.  If
X    you expect to do a lot of printing, you might want to consider rewriting 
X    the printer interrupt handler, pr_char, in assembly code.  Note that some
X    printers that are not IBM compatible give spurious out-of-paper messages.
X
X12. DISK SPACE
X       The /usr disk as distributed is nearly full.  If you have two floppy
X    disk drives, be sure to mount /user on drive 1 and move your working
X    directory there.  If you have only 1 floppy disk drive, remove some files
X    from /usr/bin to make more space.  If you have a hard disk, there is no
X    problem.
X
X13. RUNNING /USER TESTS ON A FLOPPY
X       Before running the tests in /user/test, remove the files in 
X    /user/commands to create some free space on the disk.  Run the tests as
X    superuser.
X
X14. COMMAND LINE LENGTH
X       The maximum initial stack size is 2K.  Calls to EXEC which require a
X    larger stack will fail.  Thus if you do ls -l * in a large directory,
X    the shell may expand the * so that the command line exceeds 2K and the 
X    EXEC will fail, resulting in a message such as "Cannot execute ls".
X
X15. ARCHIVES ON THE DISTRIBUTION DISKETTES
X       To save space on the distribution diskettes, some of the sources have
X    been archived and compressed.  Files ending with .Z are compressed files, 
X    and can be decompressed by typing: compress -d file.Z
X    In some cases, the resulting file is an archive, ending with the .a suffix.
X    Remove the files with: ar xv file.a   Thus a file like fs.a.Z must first be
X    uncompressed to get fs.a and then dearchived.
X
X16. RECOMPILING FSCK AND OTHER LARGE PROGRAMS
X      If for some reason you don't like the tools/fsck binary and want to
X    recompile it, make sure you have plenty of free space for the compiler's
X    temporary files.  On a floppy disk system, this may mean putting fsck on
X    an almost empty diskette before compiling it.  When the disk is full, the
X    quality of the compiler's error messages deteriorates rapidly.  If you
X    are compiling fsck and getting strange results, check for disk space.
X    Normally /tmp is used for temporaries, but the -T flag can override that.
X
X17. NEWS GROUP
X      If you have access to USENET, you may be interested in knowing
X    that there is a news group, comp.os.minix devoted to discussions of MINIX.
X    This is one of the largest news groups, with over 10,000 readers.
X    If you have access to the Arpanet, Bitnet, or EARN, the news group is
X    gatewayed there.  Contact info-minix-request@udel.edu to join or send
X    email to ast@cs.vu.nl requesting the MINIX information sheet.
X
X18. SYSTEM PROBLEMS
X      The IBM PC does not have any hardware for checking for stack overflow.
X    The user must allocate the amount of stack for each program with chmem
X    or use the compiler default (64K - program - data size).  Some programs
X    in the distribution have been set to a smaller value, and may, in rare
X    instances with certain arguments, hang.  If the system ever gets into a
X    situation where it echoes keystrokes, but ignores DEL and CTRL-\ and
X    appears otherwise to be hung up, hit F1 to see what is going on.  If
X    some process is running and there is no way to interrupt it, hit CTRL-F9.
X    This key is equivalent to the super-user typing:  kill -1 9.  The result
X    of CTRL-F9 is that every process in the system is killed, including update
X    and all the shells.  Although drastic, CTRL-F9 will dehang the system
X    instantly.  Log in again and then type /etc/update & to restart update.
X    The reason for requiring CTRL to be held down while hitting F9 is to
X    prevent F9 from being hit by accident.
X
X19. USE OF EXTENDED MEMORY ON ATs
X       If the size of the root file system (either taken from floppy or from
X    /dev/hd3, as described above), is 256K or more, MINIX puts the root
X    device in extended memory, above 1M, leaving the entire 512K or 640K
X    free for MINIX and user programs.  To get full advantage of the extended
X    memory, the size of the root file system should be the same as the amount
X    of extended memory present.  If the root file system is < 256K, MINIX
X    assumes that there is no extended memory, and puts the root file system
X    in "low" core (below 640K).  This feature only works on ATs, so PCs must
X    never have root file systems >= 256K.  If you have a large extended memory,
X    you may want to put the root file system on hard disk, as described above,
X    so the extended memory can be loaded from hard disk quickly at boot time.
X
X20. SOFTWARE SCROLLING FOR EGA CARDS
X       MINIX works with monochrome cards, CGA cards, and IBM compatible EGA
X    cards.  However, it does not work with some nonstandard EGA cards.  With 
X    some cards, the screen will go blank every 25 lines.  MINIX can be made to
X    work with these EGA cards by hitting the F3 key to use software scrolling.
X    This is slower than hardware scrolling, so only use it if you have to.  You
X    can toggle between the two modes by hitting F3 repeatedly. If you want soft
X    scrolling to be the default, recompile kernel/tty.c  with the variable 
X    softscroll initialized to 1, and make a new kernel.
X
X21. NEW FLAGS AND FEATURES
X       Various programs have acquired new flags and features and new programs
X    have been included.  Please read all the files in this directory carefully.
X
X22. ANSI ESCAPE SEQUENCES 
X      The escape sequences used by the tty driver for both input and output
X    have been changed to the ANSI standard ones.  To manipulate the cursor
X    etc., print the following (among others):
X	ESC M:		scroll a line backwards (cursor must be on line 1)
X	ESC [ y ; x H	move to column x, row y;  (1,1) is upper right corner
X	ESC [0J		clear from cursor to end of screen
X	ESC [7m		go to reverse video
X	ESC [0m		go to normal video
X
X    The 9 numeric pad keys, as well as numeric + and - now generate ESC [ x
X    for some x.  Just type them to see which x goes with each key.  There is
X    an /etc/termcap file for MINIX that uses the allowed sequences.
X
X23. _CLEANUP NO LONGER NEEDED
X       The exit routine has been changed to call _cleanup automatically.
X    As a result, programs using stdio no longer have to call it explicitly.
X    All calls to _cleanup have been removed from the standard distribution.
X
X24. DISTRIBUTION CHANGES
X       The subdirectories PC-IX and C86 have been deleted, as mentioned above.
X    In a few cases, a subdirectory IBM_PC is present for files specific to the
X    IBM PC/XT/AT/386 version of MINIX (as opposed to the Atari ST). These files
X    should be moved up one directory level.  In some cases, two makefiles are 
X    provided, called pc_makefile and at_makefile.  Copy the appropriate one to
X    makefile, depending on whether you have (1) a PC or XT or (2) an AT.  
X    Study them both and delete the inappropriate one.  The differences are
X    usually related to the assumed size of the RAM disk, rather than any
X    differences between the two processors.
X
X25. LINKS
X       The directory /usr/include now contains several subdirectories and also
X    linked files.  If you copy this directory to hard disk, link the following
X    files, if possible.
X
X        /usr/include/sgtty.h		to	minix/h/sgtty.h
X        /usr/include/signal.h		to	minix/h/signal.h
X        /usr/include/minix/callnr.h	to	minix/h/callnr.h
X        /usr/include/minix/com.h	to	minix/h/com.h
X        /usr/include/minix/const.h	to	minix/h/const.h
X        /usr/include/minix/type.h	to	minix/h/type.h
X        /usr/include/sys/stat.h		to	minix/h/stat.h
X        /usr/include/fs/buf.h		to	minix/fs/buf.h
X        /usr/include/fs/const.h		to	minix/fs/const.h
X        /usr/include/fs/super.h		to	minix/fs/super.h
X        /usr/include/fs/type.h		to	minix/fs/type.h
X
X    In addition, the files dosread, dosdir, and doswrite in /usr/bin should all
X    be links to the same file. It determines which it is by looking at argv[0].
X
X26. LACK OF SPACE
X    If you are running on a system with limited memory, either 512K RAM
X    or no hard disk, you may encounter difficulties trying to recompile the
X    system.  However, there are steps you can take to improve the situation.
X    First, various passes of the compiler are configured with ample stack
X    space.  Using chmem you can reduce this stack space to reduce the program's
X    memory requirements.  Be careful about not reducing it too much, or strange
X    things will happen.  Second, the compiler flag -T can be used to place
X    temporary files in a place other than /tmp.  This flag may be useful if
X    /tmp is on the RAM disk, which is too small.  Third, the compiler flag -F
X    can be used to run cpp and cem sequentially instead of in parallel.  This
X    approach is slower but uses less memory. Fourth, the library, libc.a
X    contains several large routines that are rarely used.  By removing these,
X    you can reduce the amount of space the library requires. Fifth, if you are
X    able to compile but not link, after having created all the *.s files, you
X    can remove some of the larger *.c files, replacing them with null files to
X    keep make happy, and then link.  Sixth, the size of the RAM disk is
X    determined by the size of the root file system.  If the default size is not
X    suitable for your configuration, you can make a new root file system with 
X    mkfs.  In particular, on an XT, you may wish to move cpp and cem from /lib
X    (RAM disk) to /usr/lib (hard disk), thus making it possible to build a new
X    and smaller RAM disk to free up more "core."  If you do this, be sure to
X    modify cc.c, since it has to know where to find cpp and cem.
X    
X27. MULTIPLE BIN DIRECTORIES IN THE DISTRIBUTION
X       Since the distribution disks are nearly full, a few of the programs that
X    logically ought to be in the /usr/bin directory have been put on one of the
X    other distribution diskettes in a separate bin directory.  On a hard disk
X    system, these programs should be put in /usr/bin.
X
X28. LIBRARY
X       Not all the sources in minix/lib have been included in libc.a (to save
X    space).  If you have a hard disk and enough space, compare the sources and
X    binaries and add the missing files.  Remember to compile all library
X    routines with cc -c -LIB file.c.  The -LIB flag is essential for libraries.
X    The library sources are contained in the lib/libsrc.a archive.
X
X29. RS232 LINES
X       MINIX supports RS232 lines to terminals and modems.  Baudrate, parity,
X    and bits/character are user settable.  The special files /dev/tty[12] are
X    used to access the RS232 lines. They can be opened for reading and writing.
X       As shipped, the system is configured for only one line, /dev/tty1.  To
X    enable the second one, change NR_RS_LINES in tty.c to 2.  Doing so will
X    increase kernel size by 1K, due to the extra table and buffer space needed.
X       The file /etc/ttys can be configured to have a shell be started for
X    either line, thus making MINIX a multi-terminal system.  The second char
X    of the three-character /etc/ttys entry gives the line parameters.  See
X    the comment at the start of tools/init.c for details.
X       The program stty can be used to set baud rates, bits/character and
X    parity for its standard input, e.g.  stty 9600 8 -even -odd </dev/tty1 
X    sets line 1 to 9600 baud, 8 bits/char, no parity.  The stty program does
X    its work using the ioctl system call.
X
X30. MISSING SOURCES
X       The sources for the C compiler (including all its parts), the editor
X    elle, and patch are not included in the distribution.  The compiler sources
X    are available from Transmediair and UniPress (see below).  The elle and
X    patch sources were too large to be included and are only available via the
X    USENET online archives.
X
X31. C SYMBOL TABLE
X       A new flag, -s, has been added to cc to generate a symbol table in the
X    a.out file.  It can be printed using nm and removed using strip.  Do not
X    confuse -s (lower case, symbol table) with -S (upper case, assembly code).
X
X32. PASCAL AND MODULA 2 COMPILERS FOR MINIX
X       A MINIX compiler for Pascal is available.  A MINIX compiler for Modula 2
X    will available during the course of 1988-9. Neither is part of the standard
X    distribution.  They may be purchased from either of:
X
X	Unipress Software		Transmediair Utrecht B.V.
X	2025 Lincoln Highway		Melkweg 3
X	Edison, NJ 08817		3721 RG Bilthoven
X	USA				Holland
X	Tel: (201) 985-8000		Tel: (30) 78 18 20
X
X    These companies also sell the sources to the MINIX C compiler, and the
X    Amsterdam Compiler Kit, from which all the compilers have been derived.
X
+ END-OF-FILE USER_GUIDE
chmod 'u=rw,g=r,o=r' 'USER_GUIDE'
set `wc -c 'USER_GUIDE'`
count=$1
case $count in
23674)	:;;
*)	echo 'Bad character count in ''USER_GUIDE' >&2
		echo 'Count should be 23674' >&2
esac
echo Extracting 'man_pages.cdif'
sed 's/^X//' > 'man_pages.cdif' << '+ END-OF-FILE ''man_pages.cdif'
X*** /local/ast/minix/tape3b/doc/man_pages	Wed Jul 13 11:50:43 1988
X--- man_pages	Mon Sep 26 13:03:23 1988
X***************
X*** 1,7 ****
X  This file contains the man pages for those programs not listed in the book or
X! which have been significantly modified since the first release.
X  ---------------------------------------------------------------------------
X  
X  Command:	ar - archiver
X  Syntax:		ar [qrxdpmt][abivulc] [posname] archive file ...
X  Flags:		(none)
X--- 1,22 ----
X  This file contains the man pages for those programs not listed in the book or
X! which have been significantly modified since the first release.  It should be
X! installed as /usr/lib/helpfile.
X  ---------------------------------------------------------------------------
X  
X+ # animals
X+ Command:	animals - twenty questions type guessing game about animals
X+ Syntax:		animals [database]
X+ Flags:		(none)
X+ Example:	animals
X+ 
X+      Animals is a guessing game.  The user picks an animal and the computer
X+ tries to guess it by posing questions that should be answered by typing "y"
X+ for yes and "n" for no.  Whenever the computer loses, it asks some questions
X+ that allow it to improve its data base, so as time goes on, it learns.  The
X+ default data base should be in /usr/lib/animals.
X+ 
X+ 
X+ # ar
X  Command:	ar - archiver
X  Syntax:		ar [qrxdpmt][abivulc] [posname] archive file ...
X  Flags:		(none)
X***************
X*** 29,34 ****
X--- 44,50 ----
X  	  u: replace only if dated later than member in archive
X  
X  
X+ # ascii
X  Command:	ascii - strip all the pure ASCII lines from a file
X  Syntax:		ascii [-n] [file]
X  Flags:		-n Extract the lines containing nonASCII characters
X***************
X*** 42,47 ****
X--- 58,64 ----
X  if the file is pure ASCII, and false otherwise.
X  
X  
X+ # ast
X  Command:	ast - add symbol table to executable file
X  Syntax:		ast -xX [file] [symbol_file]
X  Flags:		-x do not preserve local symbols
X***************
X*** 54,59 ****
X--- 71,77 ----
X  cc -s file.c >symbol.out.
X  
X  
X+ # at
X  Command:	at - execute commands at a later time
X  Syntax:		at time [month day] [file]
X  Flags:		(none)
X***************
X*** 74,79 ****
X--- 92,98 ----
X  at.
X  
X  
X+ # badblocks
X  Command:	badblocks - put a list of bad blocks in a file
X  Syntax:		badblocks block_special
X  Flags:		(none)
X***************
X*** 85,91 ****
X--- 104,120 ----
X  file.  When the program starts up, it asks for a list of bad blocks.  Then
X  it creates a file whose name is of the form .Bad_xxxxx, where xxxxx is a pid.
X  
X+ # banner
X+ Command:	banner - print a banner
X+ Syntax:		banner arg ...
X+ Flags:		(none)
X+ Example:	banner happy birthday	# print a banner saying happy birthday
X  
X+      Banner prints its arguments on standard output using a matrix of 6 x 6
X+ pixels per character.  The @ sign is used for the pixels.
X+ 
X+ 
X+ # cal
X  Command:	cal - print a calendar
X  Syntax:		cal [month] year
X  Flags:		(none)
X***************
X*** 99,104 ****
X--- 128,134 ----
X  good encyclopedia.
X  
X  
X+ # cdiff
X  Command:	cdiff - context diff
X  Syntax:		cdiff [-c] old new
X  Flags:		-cN how much context to provide
X***************
X*** 109,114 ****
X--- 139,183 ----
X  files, even in the presence of other, independent changes.
X  
X  
X+ #chmod
X+ Command:  chmod - change access mode for files
X+ Syntax:   chmod octal-number files
X+           chmod [augo][+-=][rwxst] files
X+ Flags:    (none)
X+ Examples: chmod 755 file            # Owner: rwx Group: r-x Others: r-x
X+           chmod +x file1 file2      # Make file1 and file2 executable
X+           chmod a-w file            # Make file read only
X+           chmod u+s file            # Turn on SETUID for file
X+           chmod g=u                 # group perms set to same as user perms.
X+ 
X+      The given mode is applied to each file in the file list.  The mode can be 
X+ either absolute or symbolic.  Absolute modes are given as an octal number
X+ that represents the new file mode.  The mode bits are defined as follows: 
X+         4000    Set effective user id on execution to file's owner id
X+         2000    Set effective group id on execution to file's group id
X+         0400    file is readable by the owner of the file
X+         0200    writeable by owner
X+         0100    executable by owner
X+         0070    same as above, for other users in the same group
X+         0007    same as above, for all other users
X+ 
X+ Symbolic modes modify the current file mode in a specified way.  They take
X+ the form: 
X+         [who] op permissions { op permissions }
X+ The possibilities for [who] are 'u', 'g', 'o', and 'a'; standing for user, 
X+ group, other and all, respectively.  If who is omitted, 'a' is assumed, but 
X+ the current umask is used.  The op can be '+', '-', or '=';  '+' turns on the 
X+ given permissions, '-' turns them off; '=' sets the permissions exclusively
X+ for the given who.  For example 'g=x' sets the group permissions to '--x'. 
X+      The possible permissions are 'r', 'w', 'x'; which stand for read, write, 
X+ and execute;  's' turns on the set effective user/group id bits.  'u', 
X+ 'g' and 'o' in the permissions field stand for the current user, group, or
X+ other permission bits, respectively.  Only one of these may be used at a time.
X+ 's' only makes sense with 'u' and 'g'; 'o+s' is harmless and does nothing. 
X+ Multiple symbolic modes may be specified, separated by commas.
X+ 
X+ 
X+ # compress
X  Command:	compress - compress a file using modified Lempel-Ziv coding
X  Syntax:		compress [-cdfv] [file] ...
X  Flags:		-c Put output on standard output instead of on file.Z
X***************
X*** 120,128 ****
X  
X       The listed files (or standard input, if none are given) are compressed
X  using the Ziv-Lempel algorithm.  If the output is smaller than the input,
X! the output is put on file.Z or standard output if no files are listed.
X  
X  
X  Command:	cpdir - copy a directory and its subdirectories
X  Syntax:		cpdir [-v] srcdir destdir
X  Flags:		-v Verbose; cpdir tells what it is doing
X--- 189,200 ----
X  
X       The listed files (or standard input, if none are given) are compressed
X  using the Ziv-Lempel algorithm.  If the output is smaller than the input,
X! the output is put on file.Z or standard output if no files are listed.  If
X! compress is linked to uncompress, the latter is the same as "compress -d".
X! Similarly, a link to "zcat" decompresses to standard output.
X  
X  
X+ # cpdir
X  Command:	cpdir - copy a directory and its subdirectories
X  Syntax:		cpdir [-v] srcdir destdir
X  Flags:		-v Verbose; cpdir tells what it is doing
X***************
X*** 134,139 ****
X--- 206,212 ----
X  Recursively. Links and special files are ignored.
X  
X  
X+ # cron
X  Command:	cron - clock daemon
X  Syntax:		cron
X  Flags:		(none)
X***************
X*** 154,159 ****
X--- 227,233 ----
X      0  9  25 12   *    /usr/bin/sing >/dev/tty0   #Xmas morning at 0900 only
X  
X  
X+ # diff
X  Command:	diff - print differences between two files
X  Syntax:		diff file1 file2
X  Flags:		(none)
X***************
X*** 163,168 ****
X--- 237,243 ----
X  the two files differ.  Lines may not be longer than 128 characters.
X  
X  
X+ # diskcheck
X  Command:	diskcheck - check a disk for bad sectors
X  Syntax:		diskcheck device start count
X  Flags:		(none)
X***************
X*** 171,180 ****
X  
X       Diskcheck checks a disk for bad sectors by reading in each sector,
X  writing a known bit pattern onto it, reading it back in and comparing with
X! what was written.  This check is then a second time.  Bad sectors are reported
X! After each sector is tested, the original sector is restored.
X  
X  
X  Command:	dis88 - disassembler
X  Syntax:		dis88 [-o] infile [outfile]
X  Flags:		-o List the object code along with the assembly code
X--- 246,256 ----
X  
X       Diskcheck checks a disk for bad sectors by reading in each sector,
X  writing a known bit pattern onto it, reading it back in and comparing with
X! what was written.  This check is then done a second time.  Bad sectors are 
X! reported.  After each sector is tested, the original sector is restored.
X  
X  
X+ # dis88
X  Command:	dis88 - disassembler
X  Syntax:		dis88 [-o] infile [outfile]
X  Flags:		-o List the object code along with the assembly code
X***************
X*** 187,192 ****
X--- 263,281 ----
X  to give a more readable asembly listing.
X  
X  
X+ # dosdir
X+ Command:	dosdir - read a DOS directory
X+ Syntax:		du [-lr] drive dir
X+ Flags:		-l long
X+ 		-r recursive
X+ Example:	dosdir -l c		# list drive c
X+ 
X+      Dosdir/dosread/doswrite have been extended to handle hard disks using the
X+ letters c,d,e, and f.  The letters a and b can be used for floppies as synonyms
X+ for 0 and 1.
X+ 
X+ 
X+ # du
X  Command:	du - print disk usage
X  Syntax:		du [-s] dir
X  Flags:		-s Summary only
X***************
X*** 196,201 ****
X--- 285,291 ----
X  files in that directory and its subdirectories.
X  
X  
X+ # ed
X  Command:	ed - editor
X  Syntax:		ed file
X  Flags:		(none)
X***************
X*** 235,240 ****
X--- 325,331 ----
X  	q			# exit the editor
X  	
X  
X+ # expr
X  Command:	expr - evaluate experession
X  Syntax:		expr arg ...
X  Flags:		(none)
X***************
X*** 247,252 ****
X--- 338,344 ----
X       Note that the V7 ":" operator is missing.  Parentheses are permitted.
X  
X  
X+ # factor
X  Command:	factor - factor an integer less than 2**31
X  Syntax:		factor number
X  Flags:		(none)
X***************
X*** 256,261 ****
X--- 348,354 ----
X  Each factor is printed as many times as it appears in the number.
X  
X  
X+ # fgrep
X  Command:	fgrep - fast grep
X  Syntax:		fgrep [-cfhlnsv] [file] [string] [file] ...
X  Flags:		-c count matching lines and only print count, not the lines
X***************
X*** 273,278 ****
X--- 366,372 ----
X  faster.
X  
X  
X+ # file
X  Command:	file - make a guess as to a file's type based on contents
X  Syntax:		file name ...
X  Flags:		(none)
X***************
X*** 283,288 ****
X--- 377,383 ----
X  source programs, executable binaries, shell scripts, and English text.
X  
X  
X+ # find
X  Command:	find - find files meeting a given condition
X  Syntax:		find directory expression
X  Flags:		(none)
X***************
X*** 316,321 ****
X--- 411,417 ----
X    -ok		prompts before executing the command
X  
X  
X+ # fdisk
X  Command:	fdisk - partition a hard disk
X  Syntax:		fdisk file
X  Flags:		(none)
X***************
X*** 331,336 ****
X--- 427,433 ----
X  MS-DOS all have different ideas about how partitions are numbered.
X  
X  
X+ # fix
X  Command:	fix - generate new file from old one and diff listing
X  Syntax:		fix oldfile difflist >newfile
X  Flags:		(none)
X***************
X*** 348,353 ****
X--- 445,451 ----
X  will generate a file new2 that is identical to newfile.
X  
X  
X+ # from
X  Command:	from - input half of a connection
X  Syntax:		from port
X  Flags:		(none)
X***************
X*** 361,366 ****
X--- 459,465 ----
X  receiving pipeline, making pipelines work across the network. 
X  
X  
X+ #fsck
X  Command:   	fsck - perform file system consistency check
X  Syntax:	   	fsck [-aclmrs] [device] ...
X  Flags:	   	-a automatically repair inconsistencies
X***************
X*** 372,384 ****
X  Examples: 	fsck /dev/hd4	# check file system on /dev/hd4
X  	 	fsck -a /dev/at0	# automatically fix errors on /dev/at0
X  	   	fsck -l /dev/fd0	# list the contents of /dev/fd0
X! 	   	fsck -c 2 3 /dev/hd3	# check and list inodes 2 & 3 on /dev/hd3
X  
X       Fsck performs consistency checks on the file systems which reside on the
X  specified devices.  It may also be used to list the contents of a file system 
X! or to make a new file system.
X  
X  
X  Command:	lorder - compute the order for library modules
X  Syntax:		lorder file ...
X  Flags:		(none)
X--- 471,501 ----
X  Examples: 	fsck /dev/hd4	# check file system on /dev/hd4
X  	 	fsck -a /dev/at0	# automatically fix errors on /dev/at0
X  	   	fsck -l /dev/fd0	# list the contents of /dev/fd0
X! 	   	fsck -c 2 3 /dev/hd3	# check and list /dev/hd3 inodes 2 & 3
X  
X       Fsck performs consistency checks on the file systems which reside on the
X  specified devices.  It may also be used to list the contents of a file system 
X! or to make a new file system.  Fsck can be run from the initial menu and during
X! normal production.  The number of heads and sectors/track are built in to 
X! the program (4 and 17, respectively).  To change these, modify the code and
X! recompile.  If they are set wrong, fsck will give absurd errors.
X  
X  
X+ # help
X+ Command:	help - give help about a command
X+ Syntax:		help [name]
X+ Flags:		(none)
X+ Example:	help uuencode
X+ 
X+      Help gives help about a given command name (or help itself, if none is
X+ specified).  It gets its information from /usr/lib/helpfile, which should be
X+ linked to doc/man_pages.  To improve performance, it builds an index file,
X+ /usr/lib/helpfile.idx, which is updated when it is observed to be older than
X+ /usr/lib/helpfile.  The lines beginning with # are the keywords for help.
X+ The helpfile contains all the manual pages not present in the book.
X+ 
X+ 
X+ # lorder
X  Command:	lorder - compute the order for library modules
X  Syntax:		lorder file ...
X  Flags:		(none)
X***************
X*** 388,393 ****
X--- 505,511 ----
X  and produces a partial ordering suitable for processing by tsort.
X  
X  
X+ # master
X  Command:	master - control the creation of shervers
X  Syntax:		master count uid gid command
X  Flags:		(none)
X***************
X*** 403,408 ****
X--- 521,527 ----
X  new shervers (usually) instead of new login programs.  Master must run as root
X  to be able to do setuid and setgid.
X  
X+ # more
X  Command:	more - pager
X  Syntax:		more file ...
X  Flags:		(none)
X***************
X*** 415,420 ****
X--- 534,540 ----
X     q        - exit more
X  
X  
X+ # nm
X  Command:	nm - print name list
X  Syntax:		nm [-gnopru] [file] ...
X  Flags:		-g print only external symbols.
X***************
X*** 433,438 ****
X--- 553,559 ----
X  Note that assembly language files don't have symbol tables.
X  
X  
X+ # paste
X  Command:	paste - paste multiple files together
X  Syntax:		paste [-s] [-ddelim] file ...
X  Flags:		-s print files sequentially, file k on line k
X***************
X*** 448,453 ****
X--- 569,575 ----
X  files sideways.
X  
X  
X+ # patch
X  Command:	patch - patches up a file from the original and a diff
X  Syntax:		patch [-bcdDefFlnNop]
X  Flags:		-b next argument is backup extension, instead of .orig
X***************
X*** 474,479 ****
X--- 596,602 ----
X  on 'file~.
X  
X  
X+ # prep
X  Command:	prep - prepare a text file for statistical analysis
X  Syntax:		prep [file]
X  Flags:		(none)
X***************
X*** 486,491 ****
X--- 609,615 ----
X  checker), or used for statistical analyses.
X  
X  
X+ # printenv
X  Command:	printenv - print out the current environment
X  Syntax:		printenv
X  Flags:		(none)
X***************
X*** 494,499 ****
X--- 618,624 ----
X       Printenv prints out the current environment strings, one per line.
X  
X  
X+ # rcp
X  Command:	rcp - remote copy
X  Syntax:		rcp [mach1]!file1 [mach2]!file2
X  Flags:		(none)
X***************
X*** 504,509 ****
X--- 629,658 ----
X  makes use of the programs 'to' and 'from'.
X  
X  
X+ # readall
X+ Command:	readall - read a device quickly to check for bad blocks
X+ Syntax:		readall file
X+ Flags:		(none)
X+ Example:	readall /dev/hd0		# read all of /dev/hd0
X+ 
X+      Readall reads all of the named device in large chunks.  It reports about
X+ blocks that it cannot read.  Unlike diskcheck, it does not attempt to write on
X+ the disk, making it "safer" to use when one is worried about a sick system.
X+ 
X+ 
X+ # readclock
X+ Command:	readclock - read the AT's real time clock
X+ Syntax:		readclock
X+ Flags:		(none)
X+ Example:	date `/usr/bin/readclock` </dev/tty	# useful in /etc/rc
X+ 
X+      Readclock reads the AT's real time clock and prints the result in a form
X+ useful to date, namely, MMDDYYhhmmss.  If the clock does not exist (e.g., on a
X+ PC), it outputs "-q" to query the user for the time.  The example given above
X+ can be put in /etc/rc to load the real time when the system is booted.
X+ 
X+ 
X+ # readfs
X  Command:	readfs - read a MINIX file system
X  Syntax:		readfs [-il] block_special [dir]
X  Flags:		-i Give information about the file, but do not extract files
X***************
X*** 516,521 ****
X--- 665,671 ----
X  directory).  If subdirectories are needed, they will be created automatically.
X  
X  
X+ # rsh
X  Command:	rsh - remote shell for networking
X  Syntax:		rsh port [-beil]
X  Flags:		-b start the rsh in the background
X***************
X*** 534,539 ****
X--- 684,690 ----
X  to log onto a remote machine.
X  
X  
X+ # sherver
X  Command:	sherver - shell server
X  Syntax:		sherver port
X  Flags:		(none)
X***************
X*** 546,551 ****
X--- 697,703 ----
X  cannot be sent down a pipe.
X  
X  
X+ # spell
X  Command:	spell - print all words in a file not present in the dictionary
X  Syntax:		spell file
X  Flags:		(none)
X***************
X*** 559,574 ****
X  dictionary should be located in /usr/lib (or the shell script changed).
X  
X  
X  Command:	strings - print all the strings in a binary file
X  Syntax:		strings file ...
X! Flags:		(none)
X! Example:	strings a.out		# print the strings in a.out
X  
X       Strings looks for sequences of ASCII characters followed by a zero byte.
X  These are usually strings.  This program is typically used to help identify
X  unknown binary programs
X  
X  
X  Command:	strip - remove symbol table from executable file
X  Syntax:		strip [file] ...
X  Flags:		(none)
X--- 711,731 ----
X  dictionary should be located in /usr/lib (or the shell script changed).
X  
X  
X+ # strings
X  Command:	strings - print all the strings in a binary file
X  Syntax:		strings file ...
X! Flags:		-			# search whole file, not just data seg
X! 		-o			# print octal offset of each string
X! 		-n			# n is minimum length string (def. = 4)
X! Examples:	strings -5 a.out	# print the strings >= 5 chars in a.out
X! 		strings - /bin/sh	# search entire shell file
X  
X       Strings looks for sequences of ASCII characters followed by a zero byte.
X  These are usually strings.  This program is typically used to help identify
X  unknown binary programs
X  
X  
X+ # strip
X  Command:	strip - remove symbol table from executable file
X  Syntax:		strip [file] ...
X  Flags:		(none)
X***************
X*** 578,585 ****
X  copy of the file being stripped, so links are lost.
X  
X  
X  Command:	term - turn PC into a dumb terminal
X! Syntax:		test [baudrate] [parity] [bits_per_character]
X  Flags:		(none)
X  Examples:	term 2400		# talk to modem at 2400 baud
X  		term 1200 7 even	# 1200 baud, 7 bits/char, even parity
X--- 735,743 ----
X  copy of the file being stripped, so links are lost.
X  
X  
X+ # term
X  Command:	term - turn PC into a dumb terminal
X! Syntax:		term [baudrate] [parity] [bits_per_character]
X  Flags:		(none)
X  Examples:	term 2400		# talk to modem at 2400 baud
X  		term 1200 7 even	# 1200 baud, 7 bits/char, even parity
X***************
X*** 599,613 ****
X  term will try to read from /dev/tty1, and nothing will work.
X  
X  
X  Command:	termcap - print the current termcap entry
X! Syntax:		termcap
X  Flags:		(none)
X  Example:	termcap			# print the termcap entry
X  
X!      Termcap reads the /etc/termcap entry corresponding to the current shell
X! variable $TERM.  It then prints out all the parameters that apply.
X  
X  
X  Command:	test - test for a condition
X  Syntax:		test expr
X  Flags:		(none)
X--- 757,774 ----
X  term will try to read from /dev/tty1, and nothing will work.
X  
X  
X+ # termcap
X  Command:	termcap - print the current termcap entry
X! Syntax:		termcap [type]
X  Flags:		(none)
X  Example:	termcap			# print the termcap entry
X  
X!      Termcap reads the /etc/termcap entry corresponding to the terminal type
X! supplied as the argument.  If none is given, the current $TERM is used.
X! It then prints out all the parameters that apply.
X  
X  
X+ # test
X  Command:	test - test for a condition
X  Syntax:		test expr
X  Flags:		(none)
X***************
X*** 634,639 ****
X--- 795,801 ----
X  permitted, but must be escaped to keep the shell from trying to interpret them.
X  
X  
X+ # to
X  Command:	to - output half of a connection
X  Syntax:		to port
X  Flags:		(none)
X***************
X*** 653,658 ****
X--- 815,821 ----
X  which sender goes with which receiver; any unique string can be used.
X  
X  
X+ # traverse
X  Command:	traverse - print directory tree under the named directory
X  Syntax:		traverse dir
X  Flags:		(none)
X***************
X*** 662,667 ****
X--- 825,842 ----
X  the subdirectories are listed, with the depth shown by indentation.
X  
X  
X+ # tset
X+ Command:	tset - set the $TERM variable
X+ Syntax:		tset [device]
X+ Flags:		(none)
X+ Example:	eval `tset`		# set TERM
X+ 
X+      Tset is used almost exclusively to set the shell variable TERM from
X+ inside profiles.  If an argument is supplied, that is used as the value of
X+ TERM.  Otherwise it looks in /etc/ttytype.
X+ 
X+ 
X+ # tsort
X  Command:	tsort - topological sort
X  Syntax:		tsort file
X  Flags:		(none)
X***************
X*** 671,676 ****
X--- 846,852 ----
X  total ordering from the partial orderings.
X  
X  
X+ # treecmp
X  Command:	treecmp - recursively list differences in two directory trees
X  Syntax:		treecmp [-v] dir1 dir2
X  Flags:		-v (verbose) list all directories processed
X***************
X*** 684,697 ****
X  are not identical in both are printed.
X  
X  
X  Command:	tty - print the device name of this tty
X  Syntax:		tty
X! Flags:		(none)
X  Example:	tty
X  
X!      Print the name of the controlling tty.
X  
X  
X  Command:	vol - split standard input into diskette-sized volumes
X  Syntax:		vol [-u] size block-special
X  Flags:		-u unsave from diskettes
X--- 860,875 ----
X  are not identical in both are printed.
X  
X  
X+ # tty
X  Command:	tty - print the device name of this tty
X  Syntax:		tty
X! Flags:		-s silent mode (return status only)
X  Example:	tty
X  
X!      Print the name of the controlling tty
X  
X  
X+ # vol
X  Command:	vol - split standard input into diskette-sized volumes
X  Syntax:		vol [-u] size block-special
X  Flags:		-u unsave from diskettes
X***************
X*** 705,710 ****
X--- 883,889 ----
X  streams on a series of diskettes, as shown in the examples above.
X  
X  
X+ # whereis
X  Command:	whereis - examine system directories for a given file
X  Syntax:		whereis file
X  Flags:		(none)
X***************
X*** 714,719 ****
X--- 893,899 ----
X  and others, and prints all occurrences of the argument name in any of them.
X  
X  
X+ # which
X  Command:	which - examine $PATH to see which file will be executed
X  Syntax:		which name
X  Flags:		(none)
X***************
X*** 726,731 ****
X--- 906,912 ----
X  path of the program that will be chosen.
X  
X  
X+ # who
X  Command:	who - print list of currently logged in users
X  Syntax:		who
X  Flags:		(none)
X***************
X*** 740,745 ****
X--- 921,927 ----
X  manually truncate it from time to time.
X  
X  
X+ # whoami
X  Command:	whoami - print current user name
X  Syntax:		whoami
X  Flags:		(none)
X***************
X*** 750,755 ****
X--- 932,938 ----
X  user.
X  
X  
X+ # uuencode
X  Command:	uuencode - encode a binary file to ASCII (e.g., for mailing)
X  Syntax:		uuencode [input] output
X  Flags:		(none)
X***************
X*** 760,765 ****
X--- 943,949 ----
X  different characters are used, all of them valid ASCII characters.
X  
X  
X+ # uudecode
X  Command:	uudecode - decode a binary file encoded with uuencode
X  Syntax:		uudecode file 
X  Flags:		(none)
X***************
X*** 769,772 ****
X--- 953,966 ----
X  converts it back to the original file.  The decoded file is given the name
X  that the original file had.  The name information is part of the encoded file.
X  
X+ 
X+ # write
X+ Command:	write - write a message to a terminal
X+ Syntax:		write ttyn
X+ Flags:		(none)
X+ Example:	write tty1		# write to /dev/tty1
X+ 
X+      Write is a shell script that is used to send a message to another logged
X+ in user on the system.  The user is identified by tty number.  After the
X+ message has been typed, the user types CTRL-D to exit.
X  
+ END-OF-FILE man_pages.cdif
chmod 'u=rw,g=r,o=r' 'man_pages.cdif'
set `wc -c 'man_pages.cdif'`
count=$1
case $count in
23520)	:;;
*)	echo 'Bad character count in ''man_pages.cdif' >&2
		echo 'Count should be 23520' >&2
esac
echo Extracting 'net.man.cdif'
sed 's/^X//' > 'net.man.cdif' << '+ END-OF-FILE ''net.man.cdif'
X*** /local/ast/minix/tape3b/doc/net.man	Wed Jul 13 14:58:05 1988
X--- net.man	Mon Sep 26 13:03:24 1988
X***************
X*** 585,626 ****
X  You must do the following important steps carefully.
X  
X  
X!  1. Make sure that you are in the amoeba directory.
X!     Run the command:
X  
X  	install
X  
X!  2. If you do not have much free disk space then do the following:
X!     Go to the fs directory (ie. ../fs) and type
X! 	make clean
X!     Then go to the mm directory (ie. ../mm) and type:
X! 	make clean
X!     Then go to the kernel directory (ie. ../kernel) and type:
X! 	make clean
X  
X!  3. Go to the amoeba/mm directory and run make.
X  
X!  4. Go to the amoeba/fs directory and run make.
X  
X!  5. Go to the amoeba/kernel directory (NOT the regular kernel directory).
X!     If you do NOT have an ethernet card but still wish to have local Amoeba
X!     transactions then edit the makefile and add -DNONET to the CFLAGS.
X!     If you do have an ethernet card and would like to keep ethernet statistics
X!     then add -DSTATISTICS to CFLAGS.
X! 
X!  6. Now run make.
X! 
X!  7. Go to the tools directory and build a new boot floppy.
X!     The command to do this is:
X! 	make net
X! 
X!  8. Reboot your machine using the new boot floppy.
X! 
X!  9. Test the system.  The directory amoeba/examples contains several programs 
X      to test the reliability of transactions.  The READ_ME file in the directory
X      gives more details.
X  
X! 10. If you have an ethernet card then install the network tools.  The directory
X      amoeba/util contains utilities for remote shells, remote file copying and
X      message sending.  These only work with machines that have Amoeba
X      transactions installed.  The READ_ME file there gives more details.
X--- 585,606 ----
X  You must do the following important steps carefully.
X  
X  
X!  1. Make sure that you are in the amoeba directory and that there is plenty
X!     of free disk space.  Run the command:
X  
X  	install
X  
X!  2. Type:  make
X  
X!  3. When you are instructed to do so, insert a blank diskette and hit return.
X  
X!  4. Reboot your machine using the new boot floppy.
X  
X!  5. Test the system.  The directory amoeba/examples contains several programs 
X      to test the reliability of transactions.  The READ_ME file in the directory
X      gives more details.
X  
X!  6. If you have an ethernet card then install the network tools.  The directory
X      amoeba/util contains utilities for remote shells, remote file copying and
X      message sending.  These only work with machines that have Amoeba
X      transactions installed.  The READ_ME file there gives more details.
X***************
X*** 727,733 ****
X  
X  	/usr/bin/master 1 2 2 /etc/sherver mumbo
X  
X! will start a single sherver listening to the port `jumbo' and ensure that
X  there is always a sherver running.  This sherver will have uid=2 and gid=2,
X  so that rsh calls to mumbo will be executed with this uid/gid combination.  
X  It is suggested to start up master in the /etc/rc file of any machine
X--- 707,713 ----
X  
X  	/usr/bin/master 1 2 2 /etc/sherver mumbo
X  
X! will start a single sherver listening to the port `mumbo' and ensure that
X  there is always a sherver running.  This sherver will have uid=2 and gid=2,
X  so that rsh calls to mumbo will be executed with this uid/gid combination.  
X  It is suggested to start up master in the /etc/rc file of any machine
X***************
X*** 793,806 ****
X       then bufread will not be called again until an eth_release has been done.
X  
X    3. The ethernet driver generates no write interrupts.  This is because we
X!      found that the chip on the ethernet card was so much faster than the CPU
X!      on the Zenith AT clone that it was always sent before the next packet is
X!      ready.  If necessary the high level code busy-waits until the ethernet
X!      write buffer is free.  If write interrupts are required then pkt_sent()
X!      in amoeba.c should be modified.
X!      This is rather disgusting, but was done for efficiency reasons.  Interrupt
X!      handling is expensive under Minix and so it was much faster to not
X!      generate interrupts and just wait for the buffer to become free.
X  
X  There are several routines used by the high level code which should be
X  provided by the ethernet driver.  Unless otherwise stated, these routines are 
X--- 773,783 ----
X       then bufread will not be called again until an eth_release has been done.
X  
X    3. The ethernet driver generates no write interrupts.  This is because we
X!      found that busy waiting was more efficient than doing a context switch and
X!      waiting for an interrupt.  By the time the context switch was done, the
X!      interrupt had already happened, so we had to switch back.  It's faster to
X!      just wait for it.  On a very slow machine, a different strategy might be
X!      appropriate.
X  
X  There are several routines used by the high level code which should be
X  provided by the ethernet driver.  Unless otherwise stated, these routines are 
+ END-OF-FILE net.man.cdif
chmod 'u=rw,g=r,o=r' 'net.man.cdif'
set `wc -c 'net.man.cdif'`
count=$1
case $count in
4967)	:;;
*)	echo 'Bad character count in ''net.man.cdif' >&2
		echo 'Count should be 4967' >&2
esac
exit 0