Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ domain(2) — bsd — Apollo

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getoid(2)

madvise(2)

mmap(2)

mprotect(2)

mset(2)

setreoid(2)

domain(3)

setoid(3)

perror(3)

domain(4)

domain(5)

org(5)

DOMAIN(2)                       Domain/OS BSD                        DOMAIN(2)



NAME
     domain - Domain/OS-specific system calls and extensions

DESCRIPTION
     While providing all of the significant functionality of 4.3 BSD,
     Domain/OS BSD actually represents only a subset of the greater
     functionality of Domain/OS.  Furthermore, Domain/OS BSD omits some
     features of 4.3 BSD that are irrelevant to Apollo(R) workstations.  The
     following paragraphs describe aspects of that greater functionality that
     are visible to the Domain/OS BSD system programmer and summarize features
     of 4.3 BSD not implemented under Domain/OS BSD.


     Global Library.  The routines that provide user programs access to
     kernel-level services are defined by Domain/OS BSD in the global library
     /lib/clib.  In general, system times may not be comparable between
     different manufacturers' machines, due to differences in the
     implementation of UNIX primitives.  The only valid comparison is the
     total CPU time, that is, the sum of system and user times.


     Memory Management.  Domain/OS BSD implements important features of the
     new approach to virtual memory proposed by M.K. McKusick and M.J. Karels
     at the University of California, Berkeley.  These features are
     implemented in the following system calls:

                  ______________________________________________
                 |______________Unique_Subroutines_____________|
                 |   Name  |       Function      |   Reference |
                 ||||
                 | madvise |  advise the system  |             |
                 | mincore |  of a process'      |  madvise(2) |
                 |         |  expected paging    |             |
                 |_________|__behavior___________|_____________|
                 | mmap    |  map file system    |             |
                 | msync   |  object into virtual|  mmap(2)    |
                 | munmap  |  memory             |             |
                 |_________|_____________________|_____________|
                 | mprotect|  assign protection  |  mprotect(2)|
                 |         |  to region mapped in|             |
                 |_________|__virtual_memory_____|_____________|
                 | mset    |  set and clear      |             |
                 | mclear  |  semaphores for     |             |
                 |         |  processes mapped in|  mset(2)    |
                 |         |  virtual memory     |             |
                 |_________|_____________________|_____________|


     Organization ID.  Domain/OS BSD derives file access permissions from
     Domain/OS "Access Control Lists" (ACLs).  Domain/OS BSD derives
     permissions for the owner and group of an object from analogous entries
     in the ACL.  It derives permissions for "others," however, from at least
     two entries in the ACL, one of which sets the access rights for the
     organization.  For more information, see "Protection of Files and
     Directories" in Managing BSD System Software.

     Domain/OS BSD provides some of this extended functionality by way of an
     organization ID that extends your means for controlling access to files.
     Three system calls enable you to manipulate the organization ID:
                    ___________________________________________
                   |            Unique System Calls           |
                   |__________________________________________|
                   |Name|Function|Reference|
                   | getoid  |  get organization|             |
                   | geteoid |  identity        |  getoid(2)  |
                   |_________|__________________|_____________|
                   | setreoid|  set real and    |  setreoid(2)|
                   |         |  effective       |             |
                   |_________|__organization_IDs|_____________|

     Domain/OS BSD also provides three C-language subroutines for manipulating
     the organization ID.  setoid(3) describes setoid, seteoid, and setroid.


     Extended Error Reporting.  Domain/OS BSD tests an environment variable,
     "APOLLO_STATUS," that, when set to "true," extends system error
     reporting.  Use perror(3) to print these more verbose, Domain/OS-specific
     error messages.


     Domain/OS BSD omits the following system calls, implemented in the
     "Virtual VAX*-11 Version" of the 4.3 Berkeley Software Distribution:

                ___________________________________________________
               |_____________Unsupported_System_Calls_____________|
               |   Name  |      Function     |  Reference (4.3 BSD|
               |         |                   |       manuals)     |
               ||||
               | chroot  |  change root      |  chroot(2)         |
               |_________|__directory________|____________________|
               | quota   |  manipulate disk  |  quota(2)          |
               |         |  quotas           |                    |
               |_________|___________________|____________________|
               | setquota|  enable/disable   |  setquota(2)       |
               |         |  quotas on a file |                    |
               |_________|__system___________|____________________|
               | swapon  |  add a swap device|  swapon(2)         |
               |         |  for interleaved  |                    |
               |         |  paging/swapping  |                    |
               |_________|___________________|____________________|
               | syscall |  indirect system  |  syscall(2)        |
               |_________|__call_____________|____________________|

     Manual pages describing specific features may point out other
     differences.  These descriptions usually appear in the "Notes" section.

FILES
     /lib/clib

SEE ALSO
     getoid(2), madvise(2), mmap(2), mprotect(2), mset(2), setreoid(2),
     domain(3), setoid(3), perror(3), domain(4), domain(5), org(5).
     McKusick, M.K. and Karels, M.J.  A New Virtual Memory Implementation for
          Berkeley UNIX.  Berkeley, California:  Department of Electrical
          Engineering and Computer Science, University of California, 1986.
     Managing BSD System Software.

NOTES
     *VAX is a registered trademark of the Digital Equipment Corp.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026