Hubbry Logo
PRIMOSPRIMOSMain
Open search
PRIMOS
Community hub
PRIMOS
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Contribute something
PRIMOS
PRIMOS
from Wikipedia

PRIMOS
DeveloperPrime Computer
Written inFORTRAN, Assembly language
OS familyMultics-like
Working stateDiscontinued
Latest release24.0.0.R52 / July 3, 1997; 28 years ago (1997-07-03)
Available inEnglish
Supported platformsPrime Computer
Kernel typeMonolithic
Default
user interface
Text-based user interface
LicenseProprietary commercial software
A Prime 9950 computer system with CRT console showing PRIMOS on the screen, in Kean University computer room

PRIMOS is a discontinued operating system developed during the 1970s by Prime Computer for its minicomputer systems. It rapidly gained popularity and by the mid-1980s was a serious contender as a mainline minicomputer operating system.

With the advent of PCs and the decline of the minicomputer industry, Prime was forced out of the market in the early 1990s, and by the end of 2010 the trademarks for both PRIME[1] and PRIMOS[2] no longer existed.[3]

Prime had also offered a customizable real-time OS called RTOS.[4]

Internals

[edit]

One feature of PRIMOS was that it, like UNIX, was largely written in a high level language[5] (with callable assembly language library functions available). At first, this language was FORTRAN IV,[6] which was an odd choice from a pure computer science standpoint: no pointers, no native string type, etc.[7][8] FORTRAN was, however, the language most known to engineers, and engineers were a big market for Prime in their early years.

The unusual choice of FORTRAN for the OS programming language had to do with the people who founded Prime. They had worked for Honeywell on a NASA project.[9] FORTRAN was the language they had used both at NASA and, for many of them, at MIT. This connection with Honeywell extended to the point that the original Prime computers were compatible with Honeywell Series 16 minicomputers.

Honeywell, at that time, was uninterested in minicomputers, so they left and founded Prime, "taking" the code with them.[10] They developed hardware optimized to run FORTRAN, including machine instructions that directly implemented FORTRAN's distinctive 3-way branch operation.

Since Prime's hardware did not perform byte addressing, there was no impetus to create a C compiler. Late models of the hardware were eventually modified to support I-mode, and programs compiled in C.

Later, at version 16, a version of PL/I, called PL/P, became the high level language of choice within PRIMOS, and the PL/P and, later Modula-2, languages were used in the Kernel. Furthermore, some new PRIMOS utilities were written in SP/L, which was similar to PL/P.

The source code to PRIMOS was available to customers[4][11] and, thanks to FORTRAN and PL/P, customers could reasonably modify PRIMOS as needed. For example, around 1990, the University of Salford in the UK, modified the PRIMOS running on its five 9955 systems so that undergraduates could no longer use the MESSAGE command, that wrapped the PRIMOS SMSG$() call, to send messages to other undergraduates, because online "chatting" using that command was becoming rife, tying up terminals from the limited pool available. Messaging using that command was akin to SMS text messaging today, except a maximum of 80 characters could be sent per message.

Very early versions of PRIMOS (revision 6) were originally called DOS (PRIMOS 2) and later DOSVM (PRIMOS 3), but starting with PRIMOS 4, on the P400 system, PRIMOS was the name that stuck.[5] There were many major releases of PRIMOS. The last official revision (24.0.0.R52) was released July 3, 1997. By this time, a company called Peritus (which employed a number of ex-Prime engineers) was maintaining PRIMOS.

From Revision 19, major portions of PRIMOS were written in the languages SPL and Modula-2, the usage of the Prime Macro Assembler _(PMA), FORTRAN IV and PL/P declined considerably around this time. Programs were guaranteed to run on all current Prime processors (subject to sufficient resources being available), as well as all subsequent Prime processors.

In the versions of PRIMOS ca. 1977 and later, the filesystem included a distinctive construct known as the Segment Directory. Unlike more traditional directories, the files anchored in a segment directory were located using an integer index, effectively reducing searches of the directory to a simple hash function. Segment Directories were used in their Keyed-Index/Direct Access (KI/DA) file access system and in later versions of the system loader.

Data access

[edit]

Indexed data could be stored in a MIDAS file: Multi-Indexed Data Access System and be accessed via COBOL or FORTRAN. Among the third-party tools was a package named Queo,[12] which was more powerful than COBOL despite being less verbose.

The PRIMOS character set was basically ASCII but with the 8th bit inverted. The original 7-bit standard for ASCII left the 8th bit unspecified, but on the commonly available Teletype Model 33 ASR, the bit was customarily set to 1, and this became Prime's standard. This is vital to realize when transferring data from PRIMOS to almost any other system.

User tools

[edit]

By the time of Prime Computer's demise, a list of languages supported by Primos included:[13]

  • BASIC – Prime BASIC compiler
  • BASICV – Virtual memory BASIC compiler
  • COBOL – COBOL compiler
  • F77 – Compiles FORTRAN 77 or FORTRAN IV code
  • FTN – Compiles FORTRAN IV code
  • NCOBOL – Non-shared (non-virtual) COBOL compiler
  • PL1G – Compiles PL/1, subset G code
  • PASCAL – University of Sheffield Pascal
  • PMA – Assembles Prime Macro Assembler code

Also available, but relatively uncommon, were:

  • DBASIC – Interpreted BASIC with double-precision arithmetic
  • RPG – Compiles an RPG II program (non-virtual)
  • SPL – Compiles an SPL program
  • VRPG – Compiles an RPG II program (virtual)

Scripting

[edit]

Late versions[14] of PRIMOS included a scripting language, CPL (Command Procedure Language).[15] This interpreted language, bearing similarities to Pascal, was both accessible to novice users and capable of powerful command line automation. ESRI used PRIMOS CPL as a basis for the platform-independent scripting languages AML (for ArcInfo) and SML (PC-ARC/INFO).

This was a step beyond what already was available via:

  • COMI – Command input (.COMI filetype)
  • COMO – Command output – similar to a batch log file, but also usable interactively

PHANTOMS vs JOBS

[edit]

"Phantoms" were a form of unattended background processes that immediately began to run in the background when initiated by the PHANTOM command. "Conventional" batch jobs were initiated via the JOB command, including the ability to schedule them for a particular time.

Fault Tolerance

[edit]

The PRIMOS operating system incorporated advanced fault tolerance features to ensure system reliability and data integrity. One notable feature was the MIRROR_ON command, which facilitated the creation of a pair of logically equivalent, identical partitions that were maintained in real-time. This command was instrumental in enhancing the system's resilience to hardware failures. When activated, the MIRROR_ON command initiated disk mirroring, duplicating all write operations to a primary disk onto a secondary disk. This redundancy allowed the system to seamlessly continue operations using the mirror partition in the event of a failure of the primary partition. Unlike RAID 1, which typically requires specific hardware support for disk mirroring, the MIRROR_ON command implemented this functionality at the software level, offering a flexible and cost-effective solution for data redundancy.[16]

Networking

[edit]

Primes's main offerings, each covering a specific need, were:

  • PRIMENET
  • RINGNET
  • RJE

PRIMENET

[edit]

Prime's PRIMENET software was designed to enable "transparent access to any system in the network without burdening the user with extra commands."[17] With PRIMENET, a user on System A could access files on System B as if they were on System A,[18] or even log into another system using the RLOGIN (Remote Login) command.[19]

RINGNET

[edit]

Released similar timing to PRIMENET,[20] [21] it enabled high-speed local area networking.[22]

RJE

[edit]

2780/3790 emulation was included.[23]

Primix

[edit]

In 1985, Prime's port of AT&T's UNIX System V, called Primix, became available with Primos Release 19.4.2 that was modified to include Unix functions. It co-existed with PRIMOS, allowing users to switch back and forth.[24]

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
PRIMOS is a , multi-user, multi-tasking operating developed by , Inc., initially released in the late as an evolution of a simple (DOS) and later refined through multiple revisions to support systems used primarily in , scientific, and applications. Originating from a rudimentary DOS written by Prime co-founder Bill Poduska over a single weekend in 1968 for the company's first 32-bit computer based on the DDP-516 design, PRIMOS underwent significant enhancements starting with version 4 in the mid-1970s, renaming earlier iterations like DOS (PRIMOS 2) and DOSVM (PRIMOS 3). By the , it supported the Prime 50 Series s, such as the Prime 2250 to 9950 models, with features optimized for interactive and in resource-constrained environments. Key capabilities included sophisticated management using segmentation and paging, allowing up to 32 MB program sizes and 16 MB physical memory, alongside hardware-enforced and support for up to 128 asynchronous terminals and 255 concurrent processes. The featured a multilevel hierarchical file structure with lists (ACLs) for , dynamic storage allocation, and direct/sequential file access, enabling efficient handling of large-scale data up to over 10 GB. PRIMOS was programmed initially in FORTRAN IV, transitioning to higher-level languages like SPL and Modula-2 by Revision 19, with assembly language used sparingly for performance-critical libraries to ensure broad compatibility across Prime's processor architectures. It incorporated a comprehensive command-line interface with an online HELP facility, advanced networking via PRIMENET for inter-system communication, and support for languages including COBOL 74, FORTRAN 77, PL/I, Pascal, and BASIC/VM, alongside database management systems like a CODASYL-compliant DBMS and MIDASPLUS. Performance was bolstered by microcode-assisted features, such as process context switching in 9 microseconds and hardware ring protection for security, reflecting Prime's "software first" philosophy where hardware was tailored to OS needs. Revisions continued into the 1990s. The final official release, Revision 24.0.0.R52, occurred on July 3, 1997, while PRIMOS was maintained by Peritus, a firm of former Prime engineers. Prime Computer was later acquired by Parametric Technology Corporation in 1998. Despite its discontinuation, PRIMOS gained popularity for its reliability in fault-tolerant environments and remains notable in computing history for powering early CAD/CAE workstations and contributing to the minicomputer era's emphasis on engineering productivity.

History

Development

Prime Computer, Inc. was founded in 1972 by William Poduska and a team of engineers who had previously worked on the project at the (MIT). The company initially focused on developing 16-bit minicomputers, such as the Prime 200 series, to compete in the growing market dominated by systems like Digital Equipment Corporation's PDP-11. These early machines targeted scientific and engineering applications, emphasizing for technical users. The initial operating system for the Prime 200 series was a simple disk operating system known as DOS, later retroactively designated PRIMOS 2, designed for single-user interactive program development on 16-bit hardware. This system supported basic features like fixed-head or disks, teletype interfaces, and included an implementation of FORTRAN IV, which facilitated its early adoption in scientific and engineering fields where numerical computations were essential. The FORTRAN IV compiler optimized performance on Prime hardware, enabling efficient execution of complex simulations and tasks. By , Prime transitioned to the full PRIMOS name with version 4, introduced alongside the P400 system, which marked a significant advancement through the addition of and multi-user support. This version implemented segmented with protection rings and a V-mode instruction set, allowing multiple users to share resources securely. Key milestones in early development included the Prime 350 series, which from onward supported up to 63 simultaneous users under PRIMOS, expanding its viability for environments in research and industry. PRIMOS reached its peak popularity in the mid-1980s, becoming a widely used operating system for minicomputer-based computing in technical sectors.

Versions

The PRIMOS operating system began with version 2 in 1972, serving as a basic (DOS) for the Prime 200 and 300 series minicomputers. It supported single-user operations without virtual memory capabilities, focusing on fundamental and program execution on these early 16-bit systems. In 1974, PRIMOS 3, also known as DOSVM, introduced support for the Prime 300 series, enabling more efficient and multitasking on hardware with expanded addressing up to 64K words. This version marked a shift toward multi-programming environments while maintaining compatibility with prior hardware. By 1975, PRIMOS 4 formalized the system's naming and enhanced multi-programming on the Prime 400, incorporating S-mode and R-mode instructions for improved security and . These early releases laid the foundation for PRIMOS's evolution from a simple DOS to a robust multi-user OS. Significant advancements continued with PRIMOS 18.2 in 1981, which introduced the CPL (Command Procedure Language) , allowing users to automate tasks and extend system functionality. PRIMOS 19.4.2, released in 1985, integrated support for Primix, Prime's variant of AT&T's , enabling coexistence of PRIMOS and Unix environments on the same hardware for broader application compatibility. Later revisions extended PRIMOS's lifespan amid hardware advancements, culminating in version 24.0.0.R52 on July 3, 1997, which included enhancements for 32-bit systems like the Prime 50-series, such as improved memory addressing and peripheral support. Following Prime Computer's acquisition of in 1988 and the discontinuation of its production in 1992, as the company shifted focus to CAD/CAM under the name and amid the rise of personal computers in the , maintenance shifted to Peritus Corporation, a firm of former Prime engineers that provided patches and support for legacy systems. PRIMOS employed a version numbering scheme where major revisions (e.g., 19 or 24) denoted significant architectural or feature changes, while minor versions (e.g., 19.4.2) and revision letters (e.g., R52) indicated incremental patches and hardware-specific adaptations.

Architecture

Kernel Structure

The PRIMOS kernel employs a monolithic design, integrating core functionalities such as process scheduling, operations, and device drivers within a single operating in ring 0, which provides unrestricted access to system resources while ensuring isolation through hardware-enforced mechanisms. This architecture facilitates efficient handling of multi-user environments by maintaining all essential services in kernel mode, minimizing overhead from inter-component communication. Initially developed primarily in FORTRAN IV for its performance in numerical computations and system-level tasks, the kernel incorporated some assembly code for low-level operations; subsequent revisions transitioned to Prime's proprietary PL/P high-level language for enhanced maintainability, with later versions from Revision 19 incorporating for improved modularity and SPL for specific modules. Approximately 70% of the kernel code was written in PL/P, 15% in , 10% in Prime Macro Assembler (PMA), 4% in , and 1% in SPL, reflecting an evolution toward higher-level abstractions while retaining performance-critical elements. The kernel is tailored to Prime hardware, supporting the V-mode instruction set with 588 total instructions, including 84 privileged ones for virtual addressing and control, alongside S-mode and R-mode for compatibility. User programs interface with the kernel through callable gated procedures, invoked via PCL/PRTN instructions that enable secure ring-crossing from user ring 3 to kernel ring 0, ensuring controlled access to privileged operations. Central to is the Segment Directory, implemented via Segment Descriptor Tables (SDTs) and Segment Descriptor Words (SDWs), which manage segmented by defining segment attributes, protection levels, and mappings accessed through Directory Table Address Registers (DTARs). handling supports multi-user through hardware-vectored mechanisms: external interrupts are acknowledged by the CPU and routed to Segment 4 offsets, while clock interrupts at 1/10-second intervals trigger the Phantom Interrupt Code to manage timers and scheduling via semaphores like CLKSEM. in the Control Store Unit (CSU) processes hardware interrupts efficiently, with up to 14 dedicated processes alongside 255 user processes. Security is embedded in the kernel from early versions, featuring strong access controls via hardware protection rings (0 and 3) and discretionary Access Control Lists (ACLs) that enforce permissions for users and groups on resources. An auditing subsystem, including the server and PROBES for event logging, captures security-relevant activities such as file accesses and process attachments, storing data in 4K buffers for analysis; this contributed to PRIMOS achieving a C2 security evaluation rating for government use in Revision 21.0.1.DODC2A. Unlike Unix, which relies on a model for process creation, PRIMOS uses spawn mechanisms via the SPAWN$ gate procedure to instantiate new processes, each associated with a (PCB) for state management, enabling direct resource inheritance without duplicating the parent environment. The kernel integrates access through dedicated calls, such as those for locating and buffering segments, though detailed storage mechanisms are handled separately.

File System and Data Access

The PRIMOS is structured as a hierarchical tree, with the Master File Directory (MFD) serving as the root that organizes entries for User File Directories (UFDs), segment directories, and files. UFDs function as user-specific containers for files and subdirectories, supporting nesting up to 16 levels to facilitate organized storage and retrieval. A key component is the Segment Directory, which differs from UFDs by maintaining a numbered array of pointers to file locations rather than named entries, enabling efficient indexing for sequential or without reliance on filenames. Files within this structure are composed of fixed-length 512-byte segments chained via pointers, promoting rapid positioning and data handling suitable for database and large-scale applications. Data access occurs through kernel-mediated primitives such as READ and WRITE calls, which utilize segment-based addressing via segment tables to manage operations without employing traditional inode mechanisms. These calls allow direct manipulation of segments by number, ensuring controlled and secure interaction with storage. For , PRIMOS integrates backup and recovery utilities like DUMP for creating archives and RESTORE (or MAGRST for tapes) for retrieval, both supporting media to enable full or incremental system backups. PRIMOS further enhances accessibility by providing transparent remote file operations across networked systems via PRIMENET, where standard commands treat distant storage as local extensions of the file system.

Memory Management

Demand-paged virtual memory was introduced in PRIMOS 3, marking a significant advancement over earlier versions by enabling efficient use of physical memory through segmentation rather than flat paging. This system allowed processes to operate in a larger virtual address space than physically available, with pages loaded on demand from disk storage. Segmentation divided the virtual memory into logical units, facilitating modular code and data organization while supporting sharing among processes. The model in early PRIMOS implementations, such as on the Prime 200 series, relied on 16-bit addressing, limiting physical memory to up to 256 KB. Later versions, including those on the Prime 50-series hardware, expanded to a 32-bit model, supporting up to 32 MB of per user through a combination of segmentation and paging. Segments served as the primary allocation unit, with variable lengths up to 128 KB, allowing flexible yet bounded memory usage. Segment swapping to disk provided backing storage for , where inactive segments were moved to to free physical RAM for active processes. The kernel managed global allocation, ensuring balanced resource distribution across the while preventing exhaustion. Hardware support was integral, with Prime's V-mode enabling virtual addressing for user programs and R-mode handling real-mode operations for I/O devices, thus isolating privileged access and enhancing . Per-user quotas limited the number of segments, enforcing resource controls to maintain stability under multi-user loads. Performance optimizations included pre-loading of common utility segments into physical to reduce initial access latencies, particularly for frequently used commands. PRIMOS lacked copy-on-write mechanisms but achieved efficient sharing through segment references, where multiple processes could access the same segment without duplication, minimizing overhead. This approach integrated briefly with the by treating executable files as mappable segments, allowing seamless transitions between persistent storage and runtime .

User Environment

Command-Line Tools

PRIMOS provided a text-based accessible via asynchronous terminals, supporting multiple concurrent user sessions for interactive operation, with limits up to 128 terminals in later revisions. Users initiated sessions with the command, which prompted for a username and optional project identifier, establishing the initial system contact. Sessions were terminated using the LOGOUT command, which could target a specific user or all active sessions. Core file management utilities included the DIR command for listing directory contents with wildcard support, COPY for duplicating files or directories (with options like -DELETE and -REPLACE), MOVE (also known as RENAME or CNAM) for relocating or renaming objects, and DELETE for removing files or empty directories, all handling PRIMOS file formats such as EPF. These commands formed the foundation of interactive file operations within the CLI. PRIMOS distinguished between internal commands, built into the command processor for efficiency (e.g., to change directories, to display text strings), and external commands, stored as executable files in directories like CMDNC0 (e.g., EDIT for text editing, SORT for data sorting). Internal commands executed directly without loading separate programs, while external ones were invoked by filename and supported additional parameters. The primary editor was the line-oriented PRIME EDITOR, invoked via the EDIT command, which supported macro definitions and subcommands like , Change, and Insert for text manipulation; early versions lacked full-screen capabilities, relying on line-by-line input. Users could define macros for repetitive tasks, enhancing in program development and file editing. System monitoring tools included the WHO command to list active users (with options like -ALL_DISKS for comprehensive output) and PS (or LIST_PROCESS) to display statuses, including user environments and resource usage. The DATE command handled date and time display or setting (e.g., -FULL for detailed format, -USA for regional style), integrating TIME functionality for precise system clock management. Language support encompassed command-line compilers and interpreters for several programming languages, invoked directly from the CLI to build and execute code. These included BASIC (interpretive mode via the BASIC command), (via CBL compiler with optimization options), (via FTN or F77 compilers supporting ), PL/1 (via PL1 or PL1G for ), and Pascal (via PASCAL generating executable formats like EX). Each produced output in PRIMOS-compatible formats, facilitating development within the interactive environment.

Scripting

PRIMOS's scripting capabilities center on the Command Procedure Language (CPL), an interpreted shell-like language introduced as a standard feature with revision 18.2 in 1981 to enable task and command sequencing. CPL allows users to create procedures that intermix PRIMOS commands with language directives for , supporting variables (local and global, with type checking for types like character, decimal, and tree), loops (via &DO &WHILE, &DO &UNTIL, and &DO &TO constructs), and conditionals (&IF &THEN &ELSE statements). Scripts are stored in files with the .CPL extension and executed interactively via the RESUME command, which accepts positional and optional arguments with defaults and performs type validation. Error handling is managed through the &SEVERITY directive, which controls responses to runtime issues (e.g., halting, ignoring, or invoking custom routines), while subroutine calls are implemented with &ROUTINE definitions, &CALL invocations, and &RETURN statements, permitting and modular code. Input/output redirection supports operations like > for directing command output to files, and integration with system calls occurs by embedding PRIMOS commands directly within scripts for seamless execution. Batch scripting for non-interactive runs is handled by submitting .CPL files via the JOB command, enabling unattended processing, while scheduling of scripts mimics functionality through the AT command for timed execution. Early CPL implementations lacked for command chaining, a limitation that persisted in initial releases but saw partial enhancements in later such as 19.0. Representative examples include simple backup procedures, such as a script that copies directories with :

&ROUTINE simple_backup &ARGS source:tree dest:tree COPY &source/* &dest ECHO Backup completed > backup.log &RETURN

&ROUTINE simple_backup &ARGS source:tree dest:tree COPY &source/* &dest ECHO Backup completed > backup.log &RETURN

To run: RESUME simple_backup mydata: newbackup:. User authentication scripts might use conditionals to validate inputs against system files before granting access.

Process Management

PRIMOS features a multi-programming kernel that supports , allowing up to 255 concurrent user processes to execute on the system. The scheduler employs round-robin time-slicing with configurable priorities ranging from 0 to 3 for user processes, while system processes receive higher priorities; time quanta vary by priority, such as 0.3 seconds for high-priority tasks and up to 2 seconds for low-priority ones. This scheduling is managed by the SCHED backstop process, which oversees ready queues including HIPRIQ for high-priority, ELIGQ for eligible, and LOPRIQ for low-priority processes, ensuring efficient context switching via the hardware-assisted Process Exchange mechanism that operates in as little as 9 microseconds. In multi-processor configurations, the scheduler optimizes load balancing across CPUs through this support, distributing processes to maximize throughput without detailed affinity controls. Processes in PRIMOS are categorized into two main types: interactive JOBS, which represent foreground user sessions tied to terminals, and PHANTOMS, which are detached background processes designed for non-interactive tasks such as daemons. JOBS are typically user-driven and terminate upon logout or completion, whereas PHANTOMS persist independently of user sessions, surviving logouts to run persistently for services like the clock daemon or network manager (NETMAN). New processes are created using the SPAWN command for standard JOBS, which launches interactive or compute-bound tasks, or the PHANTOM command (often via SPAWN PHANTOM) for background ones suitable for servers or long-running utilities like compilers in detached mode. PRIMOS does not support true threads within processes; instead, each operates as a single execution unit managed by its (PCB) in wired Segment 4 memory. Resource allocation for processes includes per-process limits on segments, with each user able to access up to 4096 segments defining a maximum of 512 MB , enforced through dynamic allocation in the DTAR table. The computes a MAXSCH limit based on available megabytes to cap schedulable processes, preventing overload, while each PCB allocates 64 words for process state. Processes can be terminated using the ABORT command, which sets abort flags in the PCB, or via signals such as LOGOUTS that force immediate cessation. For monitoring, the PS command provides details on active processes, including status, priority, and resource usage, aiding administrators in overseeing load. These mechanisms collectively enable robust process lifecycle management, with PHANTOMS particularly valued for daemon-like roles in servers and background compilation, distinct from the interactive nature of JOBS.

Fault Tolerance

PRIMOS provides robust through software-based and automated recovery mechanisms designed to maintain and minimize in the event of disk failures or system crashes. Central to these features is the MIRROR_ON utility, which implements at the software level without requiring specialized hardware. This command pairs a primary disk partition with a secondary one, duplicating all write operations to both for while distributing read operations across the pair to enhance performance. Mirroring can be disabled using MIRROR_OFF, and a catch-up copy process synchronizes any discrepancies between partitions during initialization or . System recovery is facilitated by tools that support from alternate devices and automated diagnostics. The SYSTEM_RECOVER command orchestrates post-crash restoration, analyzing crash dumps and reinitializing the system, with options like -COLD_RESTART for hardware-specific reboots requiring updated . BOOT_CREATE generates bootable tapes from critical files, enabling restoration via BOOT_RESTORE from alternate media if the primary boot device fails. FIX_DISK acts as a key diagnostic utility, scanning file systems for integrity issues, repairing bad spots, truncating corrupted files, and resetting allocation pointers after improper shutdowns; it supports fast and interactive modes for efficient recovery. Error handling and logging mechanisms further bolster reliability by capturing and addressing faults proactively. PRIMOS employs event through commands like ADMIN_LOG for customizable system event records and N_LOG for configurable retention of logs up to 365 days, with DISPLAY_LOG allowing filtered review by time, severity, or type. Security-specific via PRINT_SECURITY_LOG and SECURITY_MONITOR supports auditing in C2-certified secure environments, ensuring comprehensive recovery analysis. Hardware faults, such as disk read errors, are trapped and linked to affected file objects using RECORD_TO_PATH, guiding targeted repairs. integrity is verified at the segment level, with CRA mismatch errors detected during operations and resolved through FIX_DISK to prevent . Dynamic bad spot handling, enabled via -DBS ON during , remaps defective records on supported controllers for SMD and other disk types, promoting graceful degradation without full interruption. Crash dumps to disk, activated by CDD -ACTIVATE_DISK, reduce recovery time by storing diagnostics directly on secondary volumes instead of tape. These features collectively enable PRIMOS to achieve high reliability in multi-user environments, with FS_RECOVER automating repairs post-crash to minimize manual intervention. While process management handles individual error termination, system-level tools like these ensure broader data and operational continuity.

Networking

PRIMENET

PRIMENET is a networking protocol developed by for the PRIMOS operating system, enabling transparent resource sharing across multiple Prime systems as if resources were local. Introduced in January 1979 alongside the Prime Series 50 computers, it supports communication over various media, including high-speed ring networks, point-to-point links, and X.25 packet-switched public data networks (PDNs). PRIMENET facilitates seamless access to remote files, devices, and services, extending PRIMOS's local capabilities to networked environments through commands like ADDISK for mounting remote disks. Key features of PRIMENET include remote login via the command or utility, allowing users to connect to remote systems with up to 64 simultaneous sessions; file transfer through the File Transfer Service (FTS) using tools like for queued operations with automatic retries (up to 144 attempts over 72 hours); and print spooling, where files can be directed to remote printers using options like -DEVICE LP. These services operate over X.25 protocols, providing reliable connections for data exchange between Prime systems. The protocol supports multiple access methods, including HDLC for X.25, ensuring compatibility with diverse network infrastructures. Architecturally, PRIMENET employs a client-server model with dedicated server processes such as NETMAN for managing connections and FTSMAN for file transfers, layered according to the ISO OSI . Gateways enable route-through communication, allowing nodes to connect indirectly via intermediate systems, and support interconnections with non-Prime equipment over PDNs. While configurations via RINGNET limit networks to up to 247 nodes at 8 Mbps, broader setups using X.25 can scale to larger clusters. Security in PRIMENET relies on user authentication through login passwords and remote user IDs, with the SYSTEM user granted full access while others are restricted by privileges; validation occurs via shared user directories on remote systems. Data integrity is maintained using cyclic redundancy checks (CRC), and privacy is enforced through locks and PDN access controls, though full encryption was not standard in early implementations. Integration with PRIMOS allows transparent mounting of remote User File Directories (UFDs), enabling standard commands for file and device operations without protocol-specific syntax. Performance is optimized through dedicated links like point-to-point synchronous connections and queued processing to handle high loads, with configurable packet and window sizes for efficient throughput. Common use cases for PRIMENET include environments for engineering simulations, where it supports load sharing across multiple processors, database queries and updates via fast-select calls, and distributed data processing in multi-system setups.

RINGNET

RINGNET was a token-ring based (LAN) developed by , Inc. in the late for its PRIMOS-based systems, with initial announcements in January 1979. It connected multiple Prime minicomputers in a high-speed, unidirectional ring using serial-synchronous twin-axial cable, enabling efficient resource sharing at a single site. The network operated at speeds of 4 to 16 Mbps, supporting up to 250 nodes, each assigned a unique ID from 1 to 247, with distances between attachment points up to 250 meters and extendable via amplifiers or repeaters. Hardware for RINGNET included custom Prime adapters such as the PRIMENET Node Controller (PNC) boards that plugged into the system's I/O bus, along with junction boxes featuring passive relays for node interfaces. was achieved through a dual-ring design, where power failures at a node allowed pass-through operation to maintain connectivity. Integration with PRIMOS was seamless via dedicated drivers and the PNCDIM software module, providing transparent access to remote resources; this supported PRIMENET protocols layered atop RINGNET for inter-system communication. Key features encompassed broadcast messaging and multicasting for distributed applications, low-latency token-passing protocol, and (DMA) I/O for packet transfers up to 2 Kbytes, optimizing throughput for real-time workloads. In its evolution, RINGNET saw upgrades to fiber-optic cabling in the Prime 50-series systems during the mid-1980s, improving distance and performance for larger installations. Compatibility with Ethernet was enabled through gateways via route-through connections, facilitating hybrid environments. The network found primary application in connecting clusters for compute-intensive tasks, such as (CAD) and (CAE) workloads, where its high-speed, low-latency characteristics supported collaborative engineering environments.

RJE

Remote Job Entry (RJE) in PRIMOS provided a mechanism for submitting batch jobs from Prime minicomputers to remote mainframe systems, emulating protocols such as those of the 2780 and 3780 terminals to ensure compatibility with hosts. This emulation supported binary synchronous communication (BSC) networks, including HASP II workstations, allowing PRIMOS systems to function as remote batch terminals over dedicated or dial-up lines using half-duplex, point-to-point synchronous links. Additionally, asynchronous data links were supported for broader connectivity, enabling the transmission of job streams without requiring dedicated hardware stations. The primary interface for RJE operations was the RJQ command, which queued job streams—including programs, data files, and JCL-like control cards—for transmission to remote hosts. Users could create files interactively in the PRIMOS environment and then submit them using like RJQ pathname [-TO] queuename [queue-suboptions], where suboptions include protocol specifications and priorities to manage execution order in the queuing system. The RJQ command handled queue management, supporting options such as -DISPLAY to view status, -LIST for queued jobs, and -DEFER hh:mm for scheduled transmission, with integration into PRIMOS's batch queuing subsystem that included multiple queues (e.g., normal-1 for standard jobs, background-2 for lower-priority tasks). This setup bridged minicomputers to larger mainframes in enterprise environments, facilitating hybrid computing setups where Prime systems offloaded compute-intensive . Output from completed remote jobs was managed and returned by the RJE subsystem to the local PRIMOS system for review or further processing, often via the print spooler or file access mechanisms. RJE was strictly text-based and batch-oriented, supporting no interactive sessions, which limited its use to non-real-time workloads like report generation or . Historically, RJE enabled efficient resource sharing in multi-vendor environments during the and , but it was phased out in the as TCP/IP protocols dominated networking, rendering legacy BSC emulations obsolete.

Variants

Primix

Primix is a Unix-compatible operating system developed by as a port of AT&T's Release 2, introduced in May 1985 and made available with PRIMOS Release 19.4.2 later that year. This variant allowed Prime's 50 Series minicomputers to run a standard UNIX environment while leveraging the underlying PRIMOS infrastructure, addressing customer demands for Unix compatibility without abandoning the proprietary ecosystem. Implemented as a subsystem on top of PRIMOS, Primix provided a full UNIX interface by passing commands and files to the host OS, enabling portability of Unix-based applications to Prime hardware. Key features of Primix included standard Unix system calls, libraries, and the Bourne shell, supplemented by Berkeley C shell support, along with tools such as the vi editor, nroff/troff, awk, sed, and the Source Code Control System (SCCS). Virtual memory management was handled through PRIMOS's segmentation and demand paging mechanisms, ensuring efficient resource allocation on Prime's 32-bit CPUs. Primix supported additional languages and tools like the Prime C compiler, PL/I Subset G, FORTRAN, Pascal, COBOL, RPG II, and a source-level debugger, broadening its appeal for software development. Primix coexisted seamlessly with PRIMOS, supporting runtime switching via commands like PRIMIX to enter the Unix subsystem and PRIMOS to return, as well as dual-boot configurations on the same hardware. File systems were shared and integrated between the two, with enhanced security features and cross-execution of commands, allowing users to run PRIMOS utilities from within Primix and vice versa. Prime-specific extensions, such as integration with the MIRROR_ON disk mirroring utility for fault tolerance, further customized the environment for Prime systems. Networking was facilitated through PRIMENET protocols, maintaining compatibility with Prime's established infrastructure. Optimized for Prime's high-performance 32-bit processors, Primix delivered efficient scheduling and utilization, making it suitable for Unix-preferred environments in , scientific , and multiuser applications. Early versions (1.0 and 2.0) faced performance challenges due to emulation overhead, where one Unix user could equate to the load of 20 PRIMOS users, but version 3.0 introduced improvements before development was curtailed. Maintenance continued into the 1990s under and its successor entities following the 1988 merger with , but Primix was ultimately overshadowed by native Unix implementations on more open platforms like Sun and DEC workstations, leading to its decline as Prime ceased 50 Series operations in 1992.

Later Adaptations

In 1988, Prime Computer acquired for $435 million, leading to a rebranding of the combined entity as Computervision and a strategic shift away from hardware toward CAD/CAM software. This transition culminated in the closure of Prime's manufacturing division in 1992, marking the effective end of new hardware development under the Prime name. PRIMOS support persisted through Peritus Software Services, a firm staffed by former Prime engineers, which handled maintenance and bug fixes for the operating system into the late 1990s following the 1998 acquisition of Prime's assets by Parametric Technology Corporation. The final official release of PRIMOS, version 24.0.0.R52, occurred on July 3, 1997, incorporating enhancements for across Prime's processor lineup from Revision 19 onward. Post-1992, PRIMOS powered legacy engineering applications, particularly in CAD/CAM environments inherited from , where it supported specialized software like Unigraphics on remaining Prime systems into the early . These niche deployments persisted in industries reliant on stable, fault-tolerant computing for and tasks, though migration to open systems gradually phased them out. Open-source initiatives have focused on preservation rather than full revival, including partial releases of PRIMOS documentation and the development of emulators for Prime hardware. The p50em project, an open-source emulator for the Prime 50-Series minicomputers, enables running PRIMOS versions from 19.2 to 24 on modern platforms, facilitating archival access and historical study without original hardware. While not emulated in the SIMH framework, p50em supports tape and disk image handling, allowing enthusiasts to boot and interact with preserved PRIMOS distributions. Today, PRIMOS holds archival interest among computing historians, with its emulator-based revivals underscoring the enduring appeal of 1970s-1990s architectures. Its design principles, including robust process management and hardware-assisted reliability, have indirectly influenced fault-tolerant strategies in embedded systems, though direct lineage remains niche.

References

Add your contribution
Related Hubs
Contribute something
User Avatar
No comments yet.