home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / man / man0 / intro next >
Encoding:
Text File  |  1979-01-10  |  22.0 KB  |  886 lines

  1. .de IR
  2. \fI\\$1\^\fR\\$2
  3. ..
  4. .de RI
  5. \fR\\$1\fI\\$2\^\fR\\$3
  6. ..
  7. .TL
  8. INTRODUCTION TO VOLUME 1
  9. .af PN i
  10. .pn 3
  11. .LP
  12. This volume gives descriptions of the publicly available
  13. features of the
  14. .UX
  15. system.
  16. It does not attempt to provide perspective or tutorial
  17. information upon the
  18. .UX
  19. operating system,
  20. its facilities, or its implementation.
  21. Various documents on those topics are contained in
  22. Volume 2.
  23. In particular,
  24. for an overview see `The
  25. .UX
  26. Time-Sharing System'
  27. by Ritchie and Thompson; for a tutorial see
  28. `\s8UNIX\s10 for Beginners' by Kernighan.
  29. .LP
  30. Within the area it surveys, this volume attempts
  31. to be timely, complete and concise.
  32. Where the latter two objectives conflict,
  33. the obvious is often left unsaid in favor of brevity.
  34. It is intended that each program be described
  35. as it is, not as it should be.
  36. Inevitably, this means that
  37. various sections will soon be out of date.
  38. .LP
  39. The volume is divided into
  40. eight sections:
  41. .DS
  42. 1.    Commands
  43. 2.    System calls
  44. 3.    Subroutines
  45. 4.    Special files
  46. 5.    File formats and conventions
  47. 6.    Games
  48. 7.    Macro packages and language conventions
  49. 8.    Maintenance
  50. .DE
  51. Commands are programs intended to be invoked directly by
  52. the user, in contradistinction to subroutines, which are
  53. intended to be called by the user's programs.
  54. Commands generally reside in directory
  55. .I /bin
  56. (for
  57. .IR bin \|ary
  58. programs).
  59. Some programs also reside in
  60. .I
  61. /\|usr/\|bin,
  62. .R
  63. to save space in
  64. .I  /bin.
  65. These directories are searched automatically by the command interpreter.
  66. .LP
  67. System calls are entries into the
  68. .UX
  69. supervisor.
  70. Every system call has one or more C language interfaces
  71. described in section 2.
  72. The underlying assembly language interface, coded with opcode
  73. .I sys,
  74. a synonym for
  75. .I trap,
  76. is given as well.
  77. .LP
  78. An assortment
  79. of subroutines is available;
  80. they are described in section 3.
  81. The primary libraries in which they are kept are described in
  82. .IR intro (3).
  83. The functions are described in terms of C, but most will
  84. work with Fortran as well.
  85. .LP
  86. The special files section 4 discusses the characteristics of
  87. each system `file' that actually refers to an I/O device.
  88. The names in this
  89. section refer to the DEC device names for the
  90. hardware,
  91. instead of the names of
  92. the special files themselves.
  93. .LP
  94. The file formats and conventions section 5 documents the structure of particular
  95. kinds of files; for example, the form of the output of the loader and
  96. assembler is given.  Excluded are files used by only one command,
  97. for example the assembler's intermediate files.
  98. .LP
  99. Games have been relegated to section 6 to keep them from contaminating
  100. the more staid information of section 1.
  101. .LP
  102. Section 7 is a miscellaneous collection of information necessary to
  103. writing in various specialized languages:
  104. character codes, 
  105. macro packages for typesetting,
  106. etc.
  107. .LP
  108. The maintenance 
  109. section 8 discusses procedures not intended
  110. for use by the ordinary user.
  111. These procedures often involve use of commands
  112. of section 1, where an attempt has been made to
  113. single out peculiarly maintenance-flavored commands
  114. by marking them 1M.
  115. .LP
  116. Each section consists of a number of independent
  117. entries of a page or so each.
  118. The name of the entry is in the upper corners of its pages,
  119. together with the section number, and sometimes a
  120. letter characteristic of a subcategory, e.g. graphics is 1G,
  121. and the math library is 3M.
  122. Entries within each section are
  123. alphabetized.
  124. The page numbers of each entry start at 1;
  125. it is infeasible to number consecutively the pages of 
  126. a document like this that is republished in many variant forms.
  127. .LP
  128. All entries are based on a common format,
  129. not all of whose subsections will always appear.
  130. .RS
  131. .LP
  132. The
  133. .I name
  134. subsection lists the exact names of the commands and subroutines
  135. covered under the entry and gives
  136. a very short description of their purpose.
  137. .LP
  138. The
  139. .IR synopsis ""
  140. summarizes the use of the
  141. program being described.
  142. A few conventions are used, particularly in the
  143. Commands subsection:
  144. .LP
  145. .RS
  146. .B Boldface
  147. words are considered literals, and
  148. are typed just as they appear.
  149. .LP
  150. Square brackets [ ] around an argument
  151. indicate that the argument is optional.
  152. When an argument is given as `name', it always
  153. refers to a file name.
  154. .LP
  155. Ellipses `.\|.\|.' are used to show that the previous argument-prototype
  156. may be repeated.
  157. .LP
  158. A final convention is used by the commands themselves.
  159. An argument beginning with a minus sign `\-'
  160. is often taken to mean some sort of option-specifying argument
  161. even if it appears in a position where a file name
  162. could appear.  Therefore, it is unwise to have files
  163. whose names begin with `\-'.
  164. .LP
  165. .RE
  166. The
  167. .IR description ""
  168. subsection discusses in detail the subject at hand.
  169. .LP
  170. The
  171. .IR files ""
  172. subsection gives the names of files which are
  173. built into the program.
  174. .LP
  175. A
  176. .I
  177. see also
  178. .R
  179. subsection gives pointers to related information.
  180. .LP
  181. A
  182. .I  diagnostics
  183. subsection discusses
  184. the diagnostic indications which may be produced.
  185. Messages which are intended to be self-explanatory
  186. are not listed.
  187. .LP
  188. The
  189. .IR bugs ""
  190. subsection gives
  191. known bugs and sometimes deficiencies.
  192. Occasionally also the suggested fix is
  193. described.
  194. .LP
  195. In section 2 an
  196. .I assembler
  197. subsection carries the assembly language system interface.
  198. .LP
  199. .RE
  200. At the beginning of the volume is a table of contents,
  201. organized by section and alphabetically within each section.
  202. There is also a permuted index derived from the table of contents.
  203. Within each index entry, the title
  204. of the writeup to which
  205. it refers is followed by the appropriate section number in parentheses.
  206. This fact is important because there is considerable
  207. name duplication among the sections,
  208. arising principally from commands which
  209. exist only to exercise a particular system call.
  210. .SH
  211. HOW TO GET STARTED
  212. .LP
  213. This section sketches the basic information
  214. you need to get started on \*(UX:
  215. how to log in and log out,
  216. how to communicate through your terminal,
  217. and how to run a program.
  218. See `\c
  219. .UX
  220. for Beginners'
  221. in Volume 2 for a more complete introduction
  222. to the system.
  223. .LP
  224. .I
  225. Logging in.\ \ 
  226. .R
  227. You must call
  228. .UX
  229. from an appropriate terminal.
  230. .UX
  231. terminals are typified by the TTY 43,
  232. the GE Terminet 300, the DASI 300S and 450, and most
  233. video terminals such as
  234. the Datamedia 5120 or HP 2640.
  235. You must also have a valid user name,
  236. which may be obtained, together with the telephone number, from the system administrators.
  237. The same telephone number
  238. serves terminals operating at all the standard speeds.
  239. After a data connection is established,
  240. the login procedure depends on what kind of terminal
  241. you are using.
  242. .I
  243. .I
  244. .R
  245. .R
  246. .LP
  247. .I
  248. 300-baud terminals:\ \ 
  249. .R
  250. Such terminals include the GE Terminet 300 and most display terminals
  251. run with popular modems.
  252. These terminals generally have a speed
  253. switch which should be set at `300' (or `30' for
  254. 30 characters per second)
  255. and a half/full duplex switch which should be set at
  256. full-duplex.
  257. (This switch will often have to be changed
  258. since many other systems require half-duplex).
  259. When a connection is established, the system
  260. types `login:'; you type your
  261. user name, followed by the `return' key.
  262. If you have a password, the system asks for it
  263. and turns off the printer on the terminal
  264. so the password will not appear.
  265. After you have logged in,
  266. the `return', `new line', or `linefeed' keys
  267. will give exactly the same results.
  268. .LP
  269. .I
  270. 1200- and 150-baud terminals:\ \ 
  271. .R
  272. If there is a half/full duplex switch, set it at full-duplex.
  273. When you have established a data connection,
  274. the system types out a few garbage characters
  275. (the `login:' message at the wrong speed).
  276. Depress the `break' (or `interrupt')
  277. key; this is a speed-independent signal
  278. to
  279. .UX
  280. that a different speed terminal
  281. is in use.
  282. The system then will type `login:,' this time at another
  283. speed.
  284. Continue depressing the break key
  285. until `login:' appears in clear, then
  286. respond with your user name.
  287. From the TTY 37 terminal, and any other which has the `newline'
  288. function (combined carriage return and linefeed), terminate each line you type with the
  289. `new line' key,
  290. otherwise use the `return' key.
  291. .LP
  292. .I
  293. Hard-wired terminals.\ \ 
  294. .R
  295. Hard-wired terminals usually begin at the right
  296. speed, up to 9600 baud; otherwise the preceding instructions
  297. apply.
  298. .LP
  299. For all these terminals, it is important
  300. that you type your name in lower-case if possible; if you type
  301. upper-case letters,
  302. .UX
  303. will assume that your terminal cannot generate lower-case
  304. letters and will translate all subsequent upper-case
  305. letters to lower case.
  306. .LP
  307. The evidence that you have successfully
  308. logged in is that the Shell program
  309. will type a `$' to you.
  310. (The Shell is described below under
  311. `How to run a program.')
  312. .LP
  313. For more information, consult
  314. .IR stty (1),
  315. which tells how to adjust terminal behavior,
  316. .IR getty (8),
  317. which discusses the login sequence in more
  318. detail, and
  319. .IR tty(4),
  320. which discusses terminal I/O.
  321. .LP
  322. .I
  323. Logging out.\ \ 
  324. .R
  325. There are three ways to log out:
  326. .IP
  327. You can simply hang up the phone.
  328. .IP
  329. You can log out by typing an end-of-file indication
  330. (EOT character, control-d) to the Shell.
  331. The Shell will terminate and the `login: ' message
  332. will appear again.
  333. .IP
  334. You can also log in directly as another user
  335. by giving a
  336. .IR login (1)
  337. command.
  338. .LP
  339. .I
  340. How to communicate through your terminal.\ \ 
  341. .R
  342. When you type characters, a gnome deep in the system
  343. gathers your characters and saves them in a secret
  344. place.
  345. The
  346. characters will not be given to a program
  347. until you type a return (or newline), as described above
  348. in
  349. .I
  350. Logging in.
  351. .R
  352. .LP
  353. .UX
  354. terminal I/O is full-duplex.
  355. It has full read-ahead, which means that you can
  356. type at any time,
  357. even while a program is
  358. typing at you.
  359. Of course, if you type during output, the printed output will
  360. have the input characters interspersed.
  361. However, whatever you type will be saved
  362. up and interpreted in correct sequence.
  363. There is a limit to the amount of read-ahead,
  364. but it is generous and not likely to be exceeded unless
  365. the system is in trouble.
  366. When the read-ahead limit is exceeded, the system
  367. throws away all the saved characters.
  368. .LP
  369. The character `@' in typed input
  370. kills all the preceding characters in the line, so
  371. typing mistakes
  372. can be repaired on a single line.
  373. Also, the character `#' erases the last character typed.
  374. Successive uses of `#' erase characters back to, but
  375. not beyond, the beginning of the line.
  376. `@' and `#' can be transmitted to a program
  377. by preceding them with `\\'.
  378. (So, to erase `\\', you need two `#'s).
  379. These conventions can be changed by the
  380. .IR stty (1)
  381. command.
  382. .LP
  383. The `break' or `interrupt' key causes an
  384. .I
  385. interrupt signal,
  386. .R
  387. as does the
  388. The \s8ASCII\s10 `delete' (or `rubout') character,
  389. which is not passed to programs.
  390. This signal
  391. generally causes whatever program
  392. you are running to terminate.
  393. It is typically used to stop a long printout that
  394. you don't want.
  395. However, programs can arrange either to ignore
  396. this signal altogether,
  397. or to be notified when it happens (instead
  398. of being terminated).
  399. The editor, for example, catches interrupts and
  400. stops what it is doing,
  401. instead of terminating, so that an interrupt can
  402. be used to halt an editor printout without
  403. losing the file being edited.
  404. .LP
  405. The
  406. .IR quit ""
  407. signal is generated
  408. by typing the \s8ASCII\s10 FS character.
  409. (FS appears many places on different terminals, most commonly
  410. as control-\e or control-\^|\^.)
  411. It not only causes a running program to terminate
  412. but also generates a file with the core image
  413. of the terminated process.
  414. Quit is useful
  415. for debugging.
  416. .LP
  417. Besides adapting to the speed of the terminal,
  418. .UX
  419. tries to be intelligent about whether
  420. you have a terminal with the newline function
  421. or whether it must be simulated with carriage-return
  422. and line-feed.
  423. In the latter case, all input carriage returns
  424. are turned to newline characters (the standard
  425. line delimiter)
  426. and both a carriage return and a line feed
  427. are echoed to the terminal.
  428. If you get into the wrong mode, the
  429. .IR stty (1)
  430. command will rescue you.
  431. .LP
  432. Tab characters are used freely in
  433. .UX
  434. source programs.
  435. If your terminal does not have the tab function,
  436. you can arrange to have them turned into spaces
  437. during output, and echoed as spaces
  438. during input.
  439. The system assumes
  440. that tabs are set every eight columns.
  441. Again, the
  442. .IR stty (1)
  443. command will set or reset this mode.
  444. Also, the command
  445. .IR tabs (1)
  446. will set the tab stops automatically on many terminals.
  447. .LP
  448. .I
  449. How to run a program; the Shell.\ \ 
  450. .R
  451. When you have successfully logged in, a program
  452. called the Shell is listening to your terminal.
  453. The Shell reads typed-in lines, splits them up
  454. into a command name and arguments, and executes the command.
  455. A command is simply an executable program.
  456. The Shell looks first in your current directory
  457. (see below)
  458. for a program with the given name,
  459. and if none is there, then in a system directory.
  460. There is nothing special about system-provided
  461. commands except that they are kept in a directory
  462. where the Shell can find them.
  463. .LP
  464. The command name is always the first word on an input line;
  465. it and its arguments are separated from one another by
  466. spaces.
  467. .LP
  468. When a program terminates, the Shell will ordinarily regain control and type 
  469. a `$' at you to indicate that it is ready for another command.
  470. .LP
  471. The Shell has many other capabilities, which are described in detail in section
  472. .IR sh (1).
  473. .LP
  474. .I
  475. The current directory.\ \ 
  476. .R
  477. .UX
  478. has a file system arranged in a hierarchy of directories.
  479. When the system administrator gave you a user name,
  480. he also created a directory for you (ordinarily
  481. with the same name as your user name).
  482. When you log in, any file
  483. name you type is by default
  484. in this directory.
  485. Since you are the owner of this directory, you have
  486. full permission to read, write, alter, or destroy
  487. its contents.
  488. Permissions to have your will with other directories
  489. and files will have been granted or denied to you
  490. by their owners.
  491. As a matter of observed fact, few
  492. .UX
  493. users
  494. protect their files from destruction,
  495. let alone perusal, by other users.
  496. .LP
  497. To change the
  498. current directory (but not the set of permissions you
  499. were endowed with at login) use
  500. .IR cd (1).
  501. .LP
  502. .I
  503. Path names.\ \ 
  504. .R
  505. To refer to files not in the current directory, you must
  506. use a path name.
  507. Full path names begin with `/', the name of the root directory of the
  508. whole file system.
  509. After the slash comes the name of each directory containing the next
  510. sub-directory (followed by a `/') until finally the
  511. file name is reached.
  512. For example,
  513. .I
  514. /\^usr/\^lem/\^filex
  515. .R
  516. refers to the file
  517. .I
  518. filex
  519. .R
  520. in the directory
  521. .I
  522. lem; lem
  523. .R
  524. is itself a subdirectory of
  525. .I
  526. usr; usr
  527. .R
  528. springs directly from the root directory.
  529. .LP
  530. If your current directory has subdirectories,
  531. the path names of files therein begin with
  532. the name of the subdirectory with no prefixed `/'.
  533. .LP
  534. A path name may be used anywhere a file name is
  535. required.
  536. .LP
  537. Important commands which modify the contents of files
  538. are
  539. .IR cp (1),
  540. .IR mv (1),
  541. and
  542. .IR rm (1),
  543. which respectively copy, move (i.e. rename) and remove files.
  544. To find out the status of files or directories, use 
  545. .IR ls (1).
  546. See
  547. .IR mkdir (1)
  548. for making directories and
  549. .I
  550. rmdir
  551. .R
  552. (in
  553. .IR rm (1))
  554. for destroying them.
  555. .LP
  556. For a fuller discussion of the file system, see
  557. `The
  558. .UX
  559. Time-Sharing System,'
  560. by Ken Thompson and Dennis Ritchie.
  561. It may also be useful to glance through
  562. section 2 of this manual, which discusses
  563. system calls, even if you don't intend
  564. to deal with the system at that level.
  565. .LP
  566. .I
  567. Writing a program.\ \ 
  568. .R
  569. To enter the text of a source program into a
  570. .UX
  571. file, use
  572. the editor
  573. .IR ed (1).
  574. The three principal languages in
  575. .UX
  576. are
  577. provided by the C compiler
  578. .IR cc (1),
  579. the Fortran compiler
  580. .IR f77 (1),
  581. and the assembler
  582. .IR as (1).
  583. After the program text has been entered through 
  584. the editor
  585. and written on a file, you can give the file
  586. to the appropriate language processor as an argument.
  587. The output of the language processor
  588. will be left on a file in the current directory named `a.out'.
  589. (If the output is precious, use
  590. .I mv
  591. to move it to a less
  592. exposed name soon.)\ 
  593. If you wrote in assembly language, you will probably
  594. need to load the program with library subroutines; see
  595. .IR ld (1).
  596. The other two language processors call
  597. the loader automatically.
  598. .LP
  599. When you have finally gone through this entire process
  600. without provoking any diagnostics, the resulting program
  601. can be run by giving its name to the Shell
  602. in response to the `$' prompt.
  603. .LP
  604. Your programs can receive arguments from the command line
  605. just as system programs do,
  606. see
  607. .IR exec (2).
  608. .LP
  609. .I
  610. Text processing.\ \ 
  611. .R
  612. Almost all text is entered through the editor
  613. .IR ed (1).
  614. The commands most often used to write text on a terminal are:
  615. .I
  616. cat, pr, roff
  617. .R
  618. and
  619. .I nroff,
  620. all in section 1.
  621. .LP
  622. The
  623. .I cat
  624. command simply dumps \s8ASCII\s10 text
  625. on the terminal, with no processing at all.
  626. The
  627. .IR pr ""
  628. command paginates the text, supplies headings,
  629. and has a facility for multi-column output.
  630. .I
  631. Nroff
  632. .R
  633. is an elaborate text formatting program.
  634. Used naked, it requires careful forethought, but for
  635. ordinary documents it has been tamed;
  636. see
  637. .IR ms (7).
  638. .I Roff
  639. is a simpler text formatting
  640. program, and requires somewhat less forethought.
  641. .I
  642. .LP
  643. .I Troff
  644. prepares documents for a
  645. Graphics Systems phototypesetter;
  646. it is very similar to 
  647. .I nroff,
  648. and often works from exactly the same
  649. source text.
  650. It was used to produce this manual.
  651. .LP
  652. .I
  653. Status inquiries.\ \ 
  654. .R
  655. Various commands exist to provide you with useful
  656. information.
  657. .IR Who (1)
  658. prints a list of users presently logged in.
  659. .IR Date (1)
  660. prints the current time and date.
  661. .IR Ls (1)
  662. will list the files in your directory or give
  663. summary information about particular files.
  664. .LP
  665. .I
  666. Surprises.\ \ 
  667. .R
  668. Certain commands provide inter-user communication.
  669. Even if you do not plan to use them, it would be
  670. well to learn something about them, because someone else may
  671. aim them at you.
  672. .LP
  673. To communicate with another user currently logged in,
  674. .IR write (1)
  675. is used;
  676. .IR mail (1)
  677. will leave a message whose presence will be announced
  678. to another user when he next logs in.
  679. The write-ups in the manual also suggest how to respond to
  680. the two commands if you are a target.
  681. .LP
  682. When you log in, a message-of-the-day may greet you
  683. before the first `$'.
  684. .SH
  685. CONVERTING FROM THE 6TH EDITION
  686. .LP
  687. There follows a catalogue of significant, mostly incompatible,
  688. changes that will affect old users converting to the 7th edition.
  689. No attempt is made to list all new facilities, or even all
  690. minor, but easily spotted changes,
  691. just the bare essentials without which it will be
  692. almost impossible to do anything.
  693. .LP
  694. .I
  695. Addressing files.\ \ 
  696. .R
  697. Byte addresses in files are now long (32-bit) integers.
  698. Accordingly
  699. .I seek
  700. has been replaced by
  701. .IR lseek (2).
  702. Every program that contains a 
  703. .I seek
  704. must be modified.
  705. .I Stat
  706. and
  707. .IR fstat (2)
  708. have been affected similarly, since file lengths are now
  709. 32- rather than 24-bit quantities.
  710. .LP
  711. .I
  712. Assembly language.\ \ 
  713. .R
  714. System entry points are no longer built in symbols.
  715. Their values must be obtained from
  716. .I /usr/include/sys.s,
  717. see
  718. .IR intro (2).
  719. All system calls modify r0.
  720. This means that sequences like
  721. .DS
  722. mov    file,r0
  723. sys    lseek,0,0,2
  724. sys    write,buf,n
  725. .DE
  726. will no longer work.
  727. (In fact, 
  728. .I lseek
  729. now modifies r1 as well, so be doubly cautious.)
  730. .LP
  731. The
  732. .IR sleep (2)
  733. entry point is gone; see the more general facility,
  734. .IR alarm,
  735. plus
  736. .I pause.
  737. .LP
  738. Few library functions have assembly language entry points any more.
  739. You will have to simulate the C calling sequence.
  740. .LP
  741. .I
  742. Stty and gtty.\ \ 
  743. .R
  744. These system calls have been extensively altered,
  745. see
  746. .IR ioctl (2)
  747. and
  748. .IR tty (4).
  749. .LP
  750. .I
  751. Archive files.\ \ 
  752. .R
  753. The format of files produced by
  754. .IR ar (1)
  755. has been altered.
  756. To convert to the new style, use
  757. .IR arcv (1).
  758. .LP
  759. .I 
  760. C language, lint.\ \ 
  761. .R
  762. The official syntax for initialization
  763. requires an equal sign = before an initializer,
  764. and brackets { } around compound initial values;
  765. arrays and structures are now initialized honestly.
  766. Two-address operators, such as =+ and =-, are now written
  767. += and -= to avoid ambiguities, although the old
  768. style is still accepted.
  769. You will also certainly want to learn about
  770. .DS
  771. long integers
  772. type definitions
  773. casts (for type conversion)
  774. unions (for more honest storage sharing)
  775. #include <filename> (which searches in standard places)
  776. .DE
  777. .LP
  778. The program
  779. .IR lint (1)
  780. checks for obsolete syntax and
  781. does strong type checking of C programs, singly
  782. or in groups that are expected to be loaded together.
  783. It is indispensable for conversion work.
  784. .LP
  785. .I Fortran.\ \ 
  786. The old 
  787. .I fc
  788. is replaced by
  789. .I f77,
  790. a true compiler for Fortran 77,
  791. compatible with C.
  792. There are substantial changes in the language;
  793. see `A Portable Fortran 77 Compiler' in Volume 2.
  794. .LP
  795. .I
  796. Stream editor.\ \ 
  797. .R
  798. The program
  799. .IR sed (1)
  800. is adapted to massive, repetitive
  801. editing jobs of the sort encountered in converting to
  802. the new system.
  803. It is well worth learning.
  804. .LP
  805. .I
  806. Standard I/O.\ \ 
  807. .R
  808. The old 
  809. .I
  810. fopen, getc, putc
  811. .R
  812. complex and the old
  813. .I \-lp
  814. package are both dead,
  815. and even
  816. .I getchar
  817. has changed.
  818. All have been replaced by the clean, highly efficient,
  819. .IR stdio (3)
  820. package.
  821. The first things to know are that
  822. .IR getchar (3)
  823. returns the integer EOF (\-1), which is not a possible byte value,
  824. on end of file, that 518-byte buffers are out, and that there
  825. is a defined FILE data type.
  826. .LP
  827. .I Make.\ \ 
  828. The program
  829. .IR make (1)
  830. handles the recompilation and loading of
  831. software in an orderly way from
  832. a `makefile' recipe given for each piece of software.
  833. It remakes only as much as the modification dates of the input files
  834. show is necessary.
  835. The makefiles will guide you in building your new system.
  836. .LP
  837. .I
  838. Shell, chdir.\ \ 
  839. .R
  840. F. L. Bauer once said Algol 68 is the Everest that
  841. must be climbed by every computer scientist because
  842. it is there.
  843. So it is with the shell for
  844. .UX
  845. users.
  846. Everything beyond simple command invocation from a terminal is
  847. different.
  848. Even
  849. .I chdir
  850. is now spelled
  851. .I cd.
  852. You will want to study
  853. .IR sh (1)
  854. long and hard.
  855. .LP
  856. .I Debugging.\ \ 
  857. .IR Adb (1)
  858. is a far more capable replacement for the debugger
  859. .I db.
  860. The first-time user should be especially careful about
  861. distinguishing / and ? in
  862. .I adb
  863. commands, and watching to make sure that the
  864. .I x
  865. whose value he asked for is the real
  866. .I x,
  867. and not just some absolute location equal to the stack offset
  868. of some automatic
  869. .I x.
  870. You can always use the `true' name,
  871. .I _x,
  872. to pin down a C external variable.
  873. .LP
  874. .I Dsw.
  875. This little-known, but indispensable facility has been
  876. taken over by
  877. .I
  878. rm \-ri.
  879. .LP
  880. .I
  881. Boot procedures.\ \ 
  882. .R
  883. Needless to say, these are all different.
  884. See section 8 of this volume, and
  885. `Setting up \s8UNIX\s10' in Volume 2.
  886.