Annotation of 43BSDReno/share/doc/ps1/06.sysman/0.t, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1983 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)0.t 6.6 (Berkeley) 5/13/86
                      6: .\"
                      7: .if n .ND
                      8: .TL
                      9: Berkeley Software Architecture Manual
                     10: .br
                     11: 4.3BSD Edition
                     12: .AU
                     13: William Joy, Robert Fabry,
                     14: .AU
                     15: Samuel Leffler, M. Kirk McKusick,
                     16: .AU
                     17: Michael Karels
                     18: .AI
                     19: Computer Systems Research Group
                     20: Computer Science Division
                     21: Department of Electrical Engineering and Computer Science
                     22: University of California, Berkeley
                     23: Berkeley, CA  94720
                     24: .EH 'PS1:6-%''4.3BSD Architecture Manual'
                     25: .OH '4.3BSD Architecture Manual''PS1:6-%'
                     26: .AB
                     27: .FS
                     28: * UNIX is a trademark of Bell Laboratories.
                     29: .FE
                     30: This document summarizes the facilities
                     31: provided by the 4.3BSD version of the UNIX\|* operating system.
                     32: It does not attempt to act as a tutorial for use of the system
                     33: nor does it attempt to explain or justify the design of the
                     34: system facilities.
                     35: It gives neither motivation nor implementation details,
                     36: in favor of brevity.
                     37: .PP
                     38: The first section describes the basic kernel functions
                     39: provided to a UNIX process: process naming and protection,
                     40: memory management, software interrupts,
                     41: object references (descriptors), time and statistics functions,
                     42: and resource controls.
                     43: These facilities, as well as facilities for
                     44: bootstrap, shutdown and process accounting,
                     45: are provided solely by the kernel.
                     46: .PP
                     47: The second section describes the standard system
                     48: abstractions for
                     49: files and file systems,
                     50: communication,
                     51: terminal handling,
                     52: and process control and debugging.
                     53: These facilities are implemented by the operating system or by
                     54: network server processes.
                     55: .AE
                     56: .LP
                     57: .bp
                     58: .ft B
                     59: .br
                     60: .sv 2
                     61: .ce
                     62: TABLE OF CONTENTS
                     63: .ft R
                     64: .LP
                     65: .sp 1
                     66: .nf
                     67: .B "Introduction."
                     68: .LP
                     69: .if t .sp .5v
                     70: .nf
                     71: .B "0. Notation and types"
                     72: .LP
                     73: .if t .sp .5v
                     74: .nf
                     75: .B "1. Kernel primitives"
                     76: .LP
                     77: .if t .sp .5v
                     78: .nf
                     79: .nf
                     80: \fB1.1.  Processes and protection\fP
                     81: 1.1.1.  Host and process identifiers
                     82: 1.1.2.  Process creation and termination
                     83: 1.1.3.  User and group ids
                     84: 1.1.4.  Process groups
                     85: .LP
                     86: .nf
                     87: \fB1.2.  Memory management\fP
                     88: 1.2.1.  Text, data and stack
                     89: 1.2.2.  Mapping pages
                     90: 1.2.3.  Page protection control
                     91: 1.2.4.  Giving and getting advice
                     92: 1.2.5.  Protection primitives
                     93: .LP
                     94: .if t .sp .5v
                     95: .nf
                     96: \fB1.3.  Signals\fP
                     97: 1.3.1.  Overview
                     98: 1.3.2.  Signal types
                     99: 1.3.3.  Signal handlers
                    100: 1.3.4.  Sending signals
                    101: 1.3.5.  Protecting critical sections
                    102: 1.3.6.  Signal stacks
                    103: .LP
                    104: .if t .sp .5v
                    105: .nf
                    106: \fB1.4.  Timing and statistics\fP
                    107: 1.4.1.  Real time
                    108: 1.4.2.  Interval time
                    109: .LP
                    110: .if t .sp .5v
                    111: .nf
                    112: \fB1.5.  Descriptors\fP
                    113: 1.5.1.  The reference table
                    114: 1.5.2.  Descriptor properties
                    115: 1.5.3.  Managing descriptor references
                    116: 1.5.4.  Multiplexing requests
                    117: 1.5.5.  Descriptor wrapping
                    118: .LP
                    119: .if t .sp .5v
                    120: .nf
                    121: \fB1.6.  Resource controls\fP
                    122: 1.6.1.  Process priorities
                    123: 1.6.2.  Resource utilization
                    124: 1.6.3.  Resource limits
                    125: .LP
                    126: .if t .sp .5v
                    127: .nf
                    128: \fB1.7.  System operation support\fP
                    129: 1.7.1.   Bootstrap operations
                    130: 1.7.2.   Shutdown operations
                    131: 1.7.3.   Accounting
                    132: .bp
                    133: .LP
                    134: .if t .sp .5v
                    135: .sp 1
                    136: .nf
                    137: \fB2.  System facilities\fP
                    138: .LP
                    139: .if t .sp .5v
                    140: .nf
                    141: \fB2.1.   Generic operations\fP
                    142: 2.1.1.   Read and write
                    143: 2.1.2.   Input/output control
                    144: 2.1.3.   Non-blocking and asynchronous operations
                    145: .LP
                    146: .if t .sp .5v
                    147: .nf
                    148: \fB2.2.  File system\fP
                    149: 2.2.1   Overview
                    150: 2.2.2.  Naming
                    151: 2.2.3.  Creation and removal
                    152: 2.2.3.1.  Directory creation and removal
                    153: 2.2.3.2.  File creation
                    154: 2.2.3.3.  Creating references to devices
                    155: 2.2.3.4.  Portal creation
                    156: 2.2.3.6.  File, device, and portal removal
                    157: 2.2.4.  Reading and modifying file attributes
                    158: 2.2.5.  Links and renaming
                    159: 2.2.6.  Extension and truncation
                    160: 2.2.7.  Checking accessibility
                    161: 2.2.8.  Locking
                    162: 2.2.9.  Disc quotas
                    163: .LP
                    164: .if t .sp .5v
                    165: .nf
                    166: \fB2.3.  Interprocess communication\fP
                    167: 2.3.1.   Interprocess communication primitives
                    168: 2.3.1.1.\0   Communication domains
                    169: 2.3.1.2.\0   Socket types and protocols
                    170: 2.3.1.3.\0   Socket creation, naming and service establishment
                    171: 2.3.1.4.\0   Accepting connections
                    172: 2.3.1.5.\0   Making connections
                    173: 2.3.1.6.\0   Sending and receiving data
                    174: 2.3.1.7.\0   Scatter/gather and exchanging access rights
                    175: 2.3.1.8.\0   Using read and write with sockets
                    176: 2.3.1.9.\0   Shutting down halves of full-duplex connections
                    177: 2.3.1.10.\0  Socket and protocol options
                    178: 2.3.2.   UNIX domain
                    179: 2.3.2.1.    Types of sockets
                    180: 2.3.2.2.    Naming
                    181: 2.3.2.3.    Access rights transmission
                    182: 2.3.3.   INTERNET domain
                    183: 2.3.3.1.    Socket types and protocols
                    184: 2.3.3.2.    Socket naming
                    185: 2.3.3.3.    Access rights transmission
                    186: 2.3.3.4.    Raw access
                    187: .LP
                    188: .if t .sp .5v
                    189: .nf
                    190: \fB2.4.  Terminals and devices\fP
                    191: 2.4.1.   Terminals
                    192: 2.4.1.1.    Terminal input
                    193: 2.4.1.1.1     Input modes
                    194: 2.4.1.1.2     Interrupt characters
                    195: 2.4.1.1.3     Line editing
                    196: 2.4.1.2.    Terminal output
                    197: 2.4.1.3.    Terminal control operations
                    198: 2.4.1.4.    Terminal hardware support
                    199: 2.4.2.   Structured devices
                    200: 2.4.3.   Unstructured devices
                    201: .LP
                    202: .if t .sp .5v
                    203: .nf
                    204: \fB2.5.  Process control and debugging\fP
                    205: .LP
                    206: .if t .sp .5v
                    207: .nf
                    208: \fBI.  Summary of facilities\fP
                    209: .LP
                    210: .de sh
                    211: .ds RH \\$1
                    212: .bp
                    213: .NH \\*(ss
                    214: \s+2\\$1\s0
                    215: .PP
                    216: .PP
                    217: ..
                    218: .bp
                    219: .ds ss 1
                    220: .de _d
                    221: .if t .ta .6i 2.1i 2.6i
                    222: .\" 2.94 went to 2.6, 3.64 to 3.30
                    223: .if n .ta .84i 2.6i 3.30i
                    224: ..
                    225: .de _f
                    226: .if t .ta .5i 1.25i 2.5i 3.5i
                    227: .\" 3.5i went to 3.8i
                    228: .if n .ta .7i 1.75i 3.8i 4.8i
                    229: ..
                    230: .nr H1 -1
                    231: .sh "Notation and types
                    232: .PP
                    233: The notation used to describe system calls is a variant of a
                    234: C language call, consisting of a prototype call followed by
                    235: declaration of parameters and results.
                    236: An additional keyword \fBresult\fP, not part of the normal C language,
                    237: is used to indicate which of the declared entities receive results.
                    238: As an example, consider the \fIread\fP call, as described in
                    239: section 2.1:
                    240: .DS
                    241: cc = read(fd, buf, nbytes);
                    242: result int cc; int fd; result char *buf; int nbytes;
                    243: .DE
                    244: The first line shows how the \fIread\fP routine is called, with
                    245: three parameters.
                    246: As shown on the second line \fIcc\fP is an integer and \fIread\fP also
                    247: returns information in the parameter \fIbuf\fP.
                    248: .PP
                    249: Description of all error conditions arising from each system call
                    250: is not provided here; they appear in the programmer's manual.
                    251: In particular, when accessed from the C language,
                    252: many calls return a characteristic \-1 value
                    253: when an error occurs, returning the error code in the global variable
                    254: \fIerrno\fP.
                    255: Other languages may present errors in different ways.
                    256: .PP
                    257: A number of system standard types are defined in the include file
                    258: .I <sys/types.h>
                    259: and used in the specifications here and in many C programs.
                    260: These include \fBcaddr_t\fP giving a memory address (typically as
                    261: a character pointer), 
                    262: \fBoff_t\fP giving a file offset (typically as a long integer),
                    263: and a set of unsigned types \fBu_char\fP, \fBu_short\fP, \fBu_int\fP
                    264: and \fBu_long\fP, shorthand names for \fBunsigned char\fP, \fBunsigned
                    265: short\fP, etc.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.