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) |
||||
|adjtime | correct the time to | adjtime(2) |
| | allow | |
| | synchronization of | |
|___________|_the_system_clock____|____________________|
|chroot | change root | chroot(2) |
| | directory | |
|___________|_____________________|____________________|
|quota | manipulate disk | quota(2) |
|___________|_quotas______________|____________________|
|setquota | enable/disable | setquota(2) |
| | quotas on a file | |
| | system | |
|___________|_____________________|____________________|
|socketpair | create a pair of | socketpair(2) |
|___________|_connected_sockets___|____________________|
|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.