This document serves as a comprehensive programmer's manual for the ULTRIX-32 operating system, based on the 4.2BSD UNIX System Manual. It details the programming interface, system calls, and fundamental concepts necessary for interacting with the operating system.
The manual is divided into two main sections:
Kernel Primitives: This section covers core operating system functionalities, including:
- Process Management: Creation, termination, identification, and protection mechanisms for processes, users, and groups.
- Memory Management: How processes manage text, data, and stack areas, including page mapping, protection, and advice functions (some features noted as planned for later releases).
- Signals: The system's framework for inter-process communication and event handling, detailing signal types, handlers, sending, blocking, and signal stacks.
- Timers: Real-time and interval timers for tasks and process profiling.
- Descriptors: A unified mechanism for accessing system resources like files, devices, and communication links, covering duplication, closing, multiplexing I/O, and non-blocking operations.
- Resource Controls: Managing process priorities and setting resource limits for CPU, memory, and file sizes.
- System Operations Support: Functions for system bootstrap (mounting file systems, adding swap), shutdown (unmounting, rebooting), and process accounting.
System Facilities: This section describes higher-level abstractions that are not considered part of the kernel, such as:
- Generic Operations: Common read, write, and I/O control (ioctl) operations applicable to various system objects.
- File System: Details the hierarchical file system structure, naming conventions, creation and removal of files and directories, attribute management, linking, and disk quotas.
- Interprocess Communications (IPC): Explores communication domains (UNIX, INTERNET), socket types, socket creation, naming, connection establishment, and data exchange.
- Terminals and Devices: Covers the handling of terminals (input modes, interrupt characters, line editing, output formatting, control operations) and distinguishes between structured (block) and unstructured (character) devices.
- Process and Kernel Descriptors: Mentions facilities like
ptrace for process control and debugging.
Overall, the manual provides detailed descriptions of system calls, their parameters, and expected behaviors, acting as an essential reference for programmers developing applications on the ULTRIX-32/4.2BSD platform.