Module OS
Changes made in the current development cycle can be
found in the changelog.
Classes for operating system services, and assorted other things
Prerequisite
Review Status
- Reviewed By:
- Paul Shannon
- Date Reviewed:
- 1995/06/02/
Etymology
'OS' is the standard abbreviation for 'Operating System'.
Synopsis
This module's main purpose is to provide convenient and uniform
access to operating system features: environment variables, file
and directory access, time and date services, and uniform data
representation (which solves the variety of ways the fundamental
data types are represented in hardware).
The following functionality is available:
- Class
EnvironmentVariable
for access to environment variables.
- Class Path,
RegularFile,
SymLink, and
Directory
for dealing with the file system.
Note that module IO deals with
reading and writing data to files and other IO streams.
- Class SysEvent for
handling system events.
- Class Time
to get the system time.
- Class Timer
to measure elapsed, user, and system time of a piece of code.
- Framework Conversion
to convert data from one format to another. There are
classes to convert to/from
canonical
format,
VAX format, and
IBM/360 format.
The structure of the framework is shown in the
OMT diagram.
- A class to encapsulate Memory usage.
Example
See the various class header files.
Motivation
We want to provide a simple and uniform interface to OS services and
features for the application and library programmer. To pick a few
examples:
- Recursive deletion of a directory.
- Access to time and date information.
- Get and set environment variables.
To Do
- The OS module is a bit fuzzy: for example, canonical data
format conversion is more a matter of hardware than of operating
system differences. Perhaps these particular classes should be
moved to a new module.
- Time and Date classes should be revised after studying
similar classes designed by others. Roel Martinez is tenatively
scheduled to do this in the late summer of 1995.
- There was once some discussion of a 'VOS' (virtual operating system)
module. This seems like a good idea. Nested subdirectories for
specific operating systems would contain the implementations, but
a common interface would be used for all. And perhaps local
site makedefs could be used to select the proper implementation
to link against, with no special action required of the programmer.
- CanonicalConversion -- A class with static functions to convert canonical format (full description)
- CanonicalDataConversion -- A class with virtual functions to convert canonical format. (full description)
- Conversion -- A class with general conversion definitions (full description)
- DOos -- DO for accessing os-specific functions (full description)
- DataConversion -- Abstract base class with functions to convert any format (full description)
- Directory -- Get information about, and manipulate directories (full description)
- DirectoryIterator -- Traverse the contents of a directory (full description)
- EnvironmentVariable -- This class allows for getting enviroment variables (full description)
- File -- Class to get file information and a base for other file classes. (full description)
- HostInfo -- Miscellaneous information about this host and process. (full description)
- HostInfo -- HostInfo for Darwin machines. (full description)
- HostInfo -- HostInfo for HP-UX machines. (full description)
- HostInfo -- HostInfo for IRIX machines. (full description)
- HostInfo -- HostInfo for Linux machines. (full description)
- HostInfo -- HostInfo for OSF1 machines. (full description)
- HostInfo -- HostInfo for Solaris machines. (full description)
- HostMachineInfo -- (full description)
- HostMachineInfo -- (full description)
- HostMachineInfo -- (full description)
- HostMachineInfo -- (full description)
- HostMachineInfo -- (full description)
- IBMConversion -- A class with static functions to convert IBM format (full description)
- IBMDataConversion -- A class with virtual functions to convert IBM format. (full description)
- LECanonicalConversion -- A class with static functions to convert little endian canonical format (full description)
- LECanonicalDataConversion -- A class with virtual functions to convert little endian canonical format. (full description)
- LittleEndianConversion -- A class with static functions to convert littleEndian format (full description)
- Memory -- Memory related information and utilities. (full description)
- ModcompConversion -- Static functions to convert Modcomp numeric formats (full description)
- ModcompDataConversion -- A DataConversion class to convert between Modcomp format. (full description)
- Path -- Path name of a file (full description)
- RawDataConversion -- A class with virtual functions to copy without conversion (full description)
- RegularFile -- Manipulate and get information about regular files (full description)
- SymLink -- Get information about, and manipulate symbolic links (full description)
- SysEvent -- abstract base class for system events (from X, Glish, signals) (full description)
- SysEventSource -- abstract base class for system event sources (full description)
- SysEventTarget -- abstract base class for system event targets (handlers) (full description)
- SysEventTargetInfo -- Internal class (full description)
- Time -- date and time enquiry functions, with some operations. (full description)
- Timer -- measure the time it takes to execute parts of a program (full description)
- VAXConversion -- A class with static functions to convert VAX format (full description)
- VAXDataConversion -- A class with virtual functions to convert VAX format (full description)
- mallinfo -- A version of malloc/free/realloc written by Doug Lea. (full description)