1 Introduction
2 Ground Rules

Building a File System
3 File Systems
4 File Content Data Structure
5 Allocation Cluster Manager
6 Exceptions and Emancipation
7 Base Classes, Testing, and More
8 File Meta Data
9 Native File Class
10 Our File System
11 Allocation Table
12 File System Support Code
13 Initializing the File System
14 Contiguous Files
15 Rebuilding the File System
16 Native File System Support Methods
17 Lookups, Wildcards, and Unicode, Oh My
18 Finishing the File System Class

The Init Program
19 Hardware Abstraction and UOS Architecture
20 Init Command Mode
21 Using Our File System
22 Hardware and Device Lists
23 Fun with Stores: Partitions
24 Fun with Stores: RAID
25 Fun with Stores: RAM Disks
26 Init wrap-up

The Executive
27 Overview of The Executive
28 Starting the Kernel
29 The Kernel
30 Making a Store Bootable
31 The MMC
32 The HMC
33 Loading the components
34 Using the File Processor
35 Symbols and the SSC
36 The File Processor and Device Management
37 The File Processor and File System Management
38 Finishing Executive Startup

Users and Security
39 Introduction to Users and Security
40 More Fun With Stores: File Heaps
41 File Heaps, part 2
42 SysUAF
43 TUser
44 SysUAF API

UCL
45 Shells and UCL

Glossary/Index


Download sources
Download binaries

UOS Glossary and Article Index

Access Control List: A list of specifications that modify file protections, allowing or denying access to specific users. First discussed in article 39
Access Type: The manner of accessing a user account; typically batch, interactive, network, or remote. First discussed in article 42
ACE: Access Control Entry. An entry within an Access Control List.
ACL: See Access Control List
Allocation Chain: A single-linked list of allocation clusters.
Allocation Cluster: A cluster containing pointers to allocated data clusters.
Allocation Table: A bit array indicating which clusters of store are in use. First discussed in article 10
Allocation Type: Types of memory, such as data, instruction, and stack. First discussed in article 31
ASTLM: Asynchronus I/O limit. A quota restricting the number of simultaneous asynchronous I/O requests. First discussed in article 42
Asynchronous I/O: An I/O operation that does not block the process.
Authentication: The process of ensuring that someone has legitimate access to an account. First discussed in article 42
Bad Block file: A file consisting of flawed clusters on the store. First discussed in article 13
BIOLM: Buffered I/O limit. A quota restricting the number of simultaneous buffered I/O requests. First discussed in article 42
BIOS: Basic I/O System. In general, any hardware and/or software system that provides a basic interface to hardware devices. In a PC, it is firmware that is essentially a set of drivers for the hardware supported by the motherboard.
Boot Block: The first sector of a disk, reserved for the bootstrap. First discussed in article 10
Bootstrapk: The program which starts up the operating system. First discussed in article 10
Buffered I/O: An I/O operation that uses an intermediate system buffer. First discussed in article 42
BYTLM: Bytelimit. A quota restricting the number of of bytes in I/O operations per session. First discussed in article 42
Character Folding: A process used to convert Unicode characters to lowercase. See Unicode.
Cluster: A collection of contiguous data which is a multiple (1 or more) of the basic allocation unit of a store. On a hard disk, the smallest cluster is a single sector. First discussed in article 4
Command File: A file containing a UCL script. First described in Article 45.
Command Line interface: The textual interface to an operating system, also known as a shell. Described in Article 45.
Commonly Used System Programs (CUSPs): Programs provided as part of UOS. Unlike the Executive, these programs make up the user-interface to UOS and add functionality to what the Executive offers. First discussed in article 27
Console: The terminal used for system startup. First discussed in article 19
CPUTIM: CPU time limit. A quota restricting the total number of CPU seconds that can be used per session. First discussed in article 42
CUSP: See Commonly Used System Program.
Data sanitation: The operation of removing all traces of data from a disk, short of physical destruction. Used for disks with highly-classified data. Discussed in article 21
Data Stream: An independent collection of data. For instance, a file's content is stored in a data stream. First discussed in article 8
DIOLM: Direct I/O limit. A quota restricting the number of direct I/O requests. First discussed in article 42
Direct I/Os: Direct I/Os, as opposed to buffered I/Os. These are I/O's whose buffers are in user memory. First discussed in article 42
Directory: Synonym of Folder.
Dismount: The opposite of Mount. In the case of a disk, this involves flushing all data, such a the allocation table, to the store.
Dynamic disks: Disks not associated with a specific disk controller, partition, or RAID set. First discussed in article 25
Effective privileges: The set of privileges that a process has at the moment.
Emancipated object: A reference-counted object that deletes itself when no longer referenced. Discussed in article 6
ENQLM: Lock queue limit. A quota restricting the number of simultaneous locks. First discussed in article 42
EOF: End of File. This is the logical file size, which is equal to, or smaller than, the size allocated on the store for the file. This is essentially a "high-water" mark that indicates the last byte written to the file.
ETIME: Elapses Time limit. A quota restricting the amount of elapsed (connect) time per session. First discussed in article 42
Exception: An unexpected condition or error. Discussed in article 6
Executive: The core of the UOS operating system. First discussed in articles 19 and 27
Extendable store: A store whose size can be dynamically changed while in use. Discussed in article 40
Extent: A fragment of a file. First discussed in article 3
File Header: The data structure used to store meta data about a file. Discussed in article 8
File Heap: A heap implemented in a file store. Discussed in article 40
File Processor: The executive component responsible for device, file system, and file management and I/O. First discussed in article 36
File Protections: The combination of flags indicating which users can perform which operations on files. First discussed in article 39
File Store: A store implemented in a file. Discussed in article 40
FILLM: File Limit. A quota restricting the number of simultaneous opened files. First discussed in article 42
FiP: See: File Processor.
Folder: A collection of files and other folders. First discussed in article 10
Footprint: The amount of space required on disk and/or in memory.
Forced login: A login requested by the executive that occurs without authentication or other considerations. First discussed in article 10
Granted privileges: Privileges granted to a user.
GUID: Globally Unique IDentifier. A 128-bit value used to unqiuely identify things. Discussed in article 24
GUID Partitions: A partitioning scheme used to replace MBRs. Discussed in article 23
HAL: Hardware Abstraction Layer. The component that interfaces UOS to the hardware platform that it is running on. First discussed in article 19
Heap: A type of managed store.
Heap Fragmentation: A situation in which the free memory exists in several small chunks. This can result in there being enough free memory, but not enough contiguous memory to fulfill a request. First discussed in article 28
Heap Management Component: A class which allocates, deallocates, and reallocates memory in a Heap. First discussed in article 28. Discussed at length in Article 32
HMC: See Heap Management Component.
Hooking: The process of making UOS bootable by including pointers to essential files in the boot block and file system header. Discussed in article 30
Init: The secondary bootstrap for UOS. Used to load UOS and to provide the user with configuration options prior to booting UOS.Discussed starting in article 19
Executive startup: The first phase of UOS startup, where the Executive is loaded and set up. First discussed in article 27
Kernel: In most operating systems, this refers to the core of the O/S. In UOS, the Kernel is part of, and responsible for, loading the components of the Executive. It coordinates activity between them, and provides an interface for them to the rest of the system. Described in articles 19 and article 27
Layered architecture: An architecture where software components are built in a hierarchy resembling, in diagrams, layers in a cake. Also known as a Stack architecture. Discusssed in article 27
LGICMD: Login Command file. The command file run when a user logs in. First discussed in article 42
Logical device: A redirection via symbols which is used like a device name. First dsicussed in article 35
Managed Store: A store that keep tracks of what areas of the store have been used, and allows us to allocate/deallocate areas of the store. Heaps are an example of managed stores. Discussed in article 4
MAXACCTJOBS: Maximum Account Jobs. A quota restricting the number of non-network processes that can be simultaneously active. First discussed in article 42
MAXJOBS: Maximum Jobs. A quota restricting the total number of processes that can be active simultaneously. First discussed in article 42
MBR: Master Boot Record. A structure stored in the boot block that defines how the disk is partitioned. Discussed in article 23
Memory Management Component: A component that interfaces with the HAL and provides memory management for UOS. Discussed in article 31
Meta data: Data that is about data. For instance, a file's name isn't data, it is the name associated with the actual data. Discussed in article 8
Mirror manager: A class that manages multiple mirror sets. Discussed in article 24
Mirror set: A collection of stores being used in mirroring.
Mirroring: A form of RAID which replicates exact copies of a store for performance and data reliabiligy. First discussed in article 24
MMC: Memory Management Component.
Mount: To make a device ready for use. In the case of a disk, this involves loading the store header and allocation table, and validating the file structure. Discussed in article 37
Null Device: A device name not associated with a physical or virtual device. Discussed in article 36
Owner: The user who created a file or has been designated as the owner of a resource.
Page: The unit of minimum allocatable memory. First discussed in article 31
Page List: A list of pages allocated to a process or to the executive. First discussed in article 31
Page Table: A table of all possible pages in physical RAM. First discussed in article 31
Password: A secret sequence of letters/symbols used to authenticate access to a user account.
Partition: A contiguous area of a store that is treated as an independent store. Discussed in article 23
Patterns: A series of bit patterns used to test a store for bad sectors. First discussed in article 13
PGFLQUOTA: Page File Quota. A quota restricting the number of page file pages that can be used by the user. First discussed in article 42
PRCLM: Process limit. A quota restricting the number of simultaneous processes that a user can have running. First discussed in article 42
Private Stores: Stores that do not take part in the Public Pool.
Privileges: Flags associated with users and programs that allow special abilities. First discussed in article 39
Program privileges: Privileges granted to a prcess while a privileged program is running.
Protections: See File Protections.
Psuedo-random Numbers: Numbers which are generated by an algorithm but which appear random. Discussed in article 24
Public Pool: A collection of stores that are treated as one large logical file system and are available for general use. Discussed in article 37
Public Storage Pool: See Public Pool.
Public Stores: Stores that take part in the Public Pool.
Quotas: Limits placed upon the use of some system resources to prevent one process from affecting others by using too many of those resources. First discussed in article 42
RAID: Redundant Array of Independent Disks - a stragegy of using multiple disks as a single logical volume for purposes of reliability and/or performance. First discussed in article 24
RAM Disk: An in-memory store. Discussed in article 25
Random Numbers: See psuedo-random numbers.
Reallocation in-place: The process of resizing a chunk of allocation memory without changing its position. Discussed at in Article 32
Reference Store: An up-to-date store which is used to update other stores that. Discussed in article 24
Reserved Memory: Memory reserved for the executive. First discussed in article 31
Ring: A CPU protection mechanism that operates as concentric circles of access to hardware features. Described in Article 45.
RNG: Random Number Generator. Something that generates psuedo-random numbers.
Rotational latency: The time it takes for a sector on a disk to rotate into position for read or write. Discussed in article 24
Security Reference Model: An architecture/approach to security that involves three entities: the requestor, resource, and database. Discussed in article 39.
Seek time: The time it takes for a disk read/write head to move to a target track. Discussed in article 24
Shell: The user interface for an operating system. Some systems have multiple shells. In the case of Windows, for instance, there is the Windows GUI and command-line box.
Simulator: Software or hardware that is functionally identical to other hardware.
SNIA: A standard for RAID support structures. Discussed in article 24
Spanned Sets: A set of stores that are treated as a single larger store by logical concatenation of their clusters. Discussed in article 37
SSC: See System Services Component.
Starlet: The library that provides direct access to the UOS executive and a developer-friendly API for UOS. First mentioned in Article 45.
Startup account: A special hard-coded user account (UIC=1) used for system startup and system setup.Discussed in article 43
Stream: See Data Stream.
Store: Anything that we can store data on and read it back from. A common example of a store is a hard disk. But there are other stores as well, such as floppy disks, files, and memory. Stores have a generic interface in UOS, which allows us to deal with them in a general fashion. For example, a file system could exist on a store that is a disk partition, or in RAM (eg a RAM Disk), or even within a file that exists on another store (a container file). Stores can be fixed in size (such as a disk), or expandable (such as a file). Discussed in article 4
String table: A collection of string values, including a count of references to each one. Discussed in article 12
Sub-Heap: One of many smaller heaps that, together, make up one large heap. Discussed at length in Article 32
Symbol table: Collections of symbols. Symbol tables exist for each process, each job, the system, and the cluster. First dsicussed in article 35
Symbols: Values accessed by name in collections of symbols called symbol tables. First dsicussed in article 35
SYSUAF: System User Authorization File. The file is a file heap that contains the definitions and attributes of users. Discussed in article 42
System account: A user account with a UIC less than 8. First discussed in article 43
System programs: See CUSPs.
System Services Component: A class which provides general services for the executive. Discussed in article 35
System startup: The second phase of the UOS startup. First discussed in article 27
System User: A user with a low UIC (usually 1-7).
Terminal: A logical serial I/O device used to communicate with a user. First discussed in article 19
THREADLM: Thread limit. A quota restricting the number of simultaneous threads per process. First discussed in article 42
TQELM: Timed Queue Event Limit. A quota restricting the number of simultaneous active timers that a process can have active. First discussed in article 42
Turn: The operation of moving from one allocation cluster to another, by following a pointer and reading the next cluster. Discussed in article 5
UCL: UOS Command Language. A scripting language for UOS and also the name of the shell that executes the script. First described in Article 45.
UIC: User Identification Code (see User).
Unicode: A standard for universal support of the glyphs for all languages. Described in Article 17.
UOS: Universal Operating System.
UOS simulator: A hardware simulator for UOS that runs on Windows.
UOS startup: The process of starting UOS, consisting of two phases: Executive startup, and System startup. First discussed in article 27
User: A numeric identifier (UIC) used to authenticate access to UOS, control access to resources, and track usage. UICs have unique names associated with them. First discussed in article 39
Virtual store: A store which is not associated with a dedicated hardware device. A RAM Disk is a type of virtual store.
Wildcard: Characters used to represent other characters for matching purposes. Described in Article 17. WSDEFAULT: Working Set Default limit. A quota restricting the number of pages of physical memory that a process can own. First discussed in article 42