Annotation of 43BSDReno/share/doc/ps1/06.sysman/0.t, revision 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.