PRIMOS — это снятая с производства операционная система , разработанная в 1970-х годах компанией Prime Computer для своих миникомпьютерных систем. Она быстро завоевала популярность и к середине 1980-х годов стала серьезным претендентом на роль основной операционной системы для мини-компьютеров.
С появлением ПК и упадком индустрии миникомпьютеров Prime была вытеснена с рынка в начале 1990-х годов, и к концу 2010 года товарные знаки PRIME [1] и PRIMOS [2] больше не существовали. [3]
Prime также предложила настраиваемую операционную систему реального времени под названием RTOS. [4]
Одной из особенностей PRIMOS было то, что он, как и UNIX , был в основном написан на языке высокого уровня [5] (с доступными вызываемыми функциями библиотеки языка ассемблера ). Сначала этим языком был FORTRAN IV, [6] который был странным выбором с точки зрения чистой информатики : никаких указателей , никакого собственного строкового типа и т. д. [7] [8] Однако FORTRAN был языком, наиболее известным среди инженеры, а инженеры были большим рынком для Prime в первые годы ее существования.
Необычный выбор FORTRAN в качестве языка программирования ОС был связан с людьми, основавшими Prime. Они работали в Honeywell над проектом НАСА . [9] FORTRAN был языком, который они использовали как в НАСА, так и, для многих из них, в Массачусетском технологическом институте . Эта связь с Honeywell распространилась до такой степени, что оригинальные компьютеры Prime были совместимы с миникомпьютерами Honeywell Series 16.
Honeywell в то время не интересовалась миникомпьютерами, поэтому они ушли и основали Prime, «взяв» код с собой. [10] Они разработали аппаратное обеспечение, оптимизированное для работы с FORTRAN, включая машинные инструкции, которые непосредственно реализовали характерную для FORTRAN операцию трехстороннего ветвления .
Поскольку аппаратное обеспечение Prime не осуществляло байтовую адресацию, не было стимула к созданию компилятора C. Поздние модели оборудования в конечном итоге были модифицированы для поддержки I-mode , а программы скомпилированы на языке C.
Позже, в версии 16, версия PL/1 , названная PL/P , стала языком высокого уровня в PRIMOS, а языки PL/P, а позже и Modula-2 , использовались в ядре. Кроме того, некоторые новые утилиты PRIMOS были написаны на языке SP/L, который был похож на PL/P.
Исходный код PRIMOS был доступен клиентам [4] [11] , и благодаря FORTRAN и PL/P клиенты могли разумно модифицировать PRIMOS по мере необходимости. Например, примерно в 1990 году Салфордский университет в Великобритании модифицировал PRIMOS, работающий на пяти системах 9955, так, чтобы студенты больше не могли использовать команду MESSAGE, которая обертывала вызов PRIMOS SMSG$(), для отправки сообщений другим студентам. , потому что онлайн-чат с использованием этой команды становился обычным явлением, связывая терминалы из ограниченного доступного пула. Обмен сообщениями с использованием этой команды был аналогичен сегодняшнему обмену текстовыми сообщениями SMS, за исключением того, что в одном сообщении можно было отправить максимум 80 символов.
Очень ранние версии PRIMOS (редакция 6) первоначально назывались DOS (PRIMOS 2), а затем DOSVM (PRIMOS 3), но, начиная с PRIMOS 4, в системе P400 название PRIMOS прижилось. [5] Было много крупных релизов PRIMOS. Последняя официальная версия (24.0.0.R52) была выпущена 3 июля 1997 года. К этому времени PRIMOS поддерживала компания Peritus (в которой работало несколько бывших инженеров Prime).
Начиная с версии 19, основные части PRIMOS были написаны на языках SPL и Modula-2 , использование Prime Macro Assembler _(PMA), FORTRAN IV и PL/P значительно сократилось примерно в это время. Программы гарантированно работали на всех текущих процессорах Prime (при условии наличия достаточных ресурсов), а также на всех последующих процессорах Prime.
В версиях ПРИМОС ок. Начиная с 1977 года файловая система включала особую конструкцию, известную как каталог сегментов. В отличие от более традиционных каталогов, файлы, привязанные к сегментному каталогу, располагались с использованием целочисленного индекса, что фактически сводило поиск по каталогу к простой хэш-функции. Каталоги сегментов использовались в их системе доступа к файлам Keyed-Index/Direct Access (KI/DA) и в более поздних версиях системного загрузчика.
Индексированные данные могут храниться в файле MIDAS: многоиндексная система доступа к данным, и доступ к ним осуществляется через COBOL или FORTRAN. Среди сторонних инструментов был пакет Queo [12] , который был более мощным, чем COBOL, хотя и был менее многословным.
Набор символов PRIMOS в основном был ASCII , но с инвертированным 8-м битом. Исходный 7-битный стандарт ASCII оставил 8-й бит неопределенным, но на общедоступном телетайпе модели 33 ASR бит обычно устанавливался в 1, и это стало стандартом Prime. Это очень важно понимать при передаче данных из PRIMOS практически в любую другую систему.
К моменту закрытия Prime Computer список языков, поддерживаемых Primos, включал: [13]
Также доступны, но относительно редко, были:
Поздние версии [14] PRIMOS включали язык сценариев CPL (язык командных процедур). [15] Этот интерпретируемый язык, имеющий сходство с Паскалем, был доступен начинающим пользователям и обеспечивал мощную автоматизацию командной строки. ESRI использовала PRIMOS CPL в качестве основы для независимых от платформы языков сценариев AML (для ArcInfo ) и SML ( PC-ARC/INFO ).
Это был шаг за пределы того, что уже было доступно через:
«Фантомы» представляли собой форму автоматических фоновых процессов, которые немедленно начинали работать в фоновом режиме при запуске командой PHANTOM. «Обычные» пакетные задания запускались с помощью команды JOB, включая возможность планировать их на определенное время.
Операционная система PRIMOS включает в себя расширенные функции отказоустойчивости, обеспечивающие надежность системы и целостность данных. Одной из примечательных особенностей была команда MIRROR_ON, которая облегчала создание пары логически эквивалентных, идентичных разделов, которые поддерживались в режиме реального времени. Эта команда сыграла важную роль в повышении устойчивости системы к аппаратным сбоям. При активации команда MIRROR_ON инициировала зеркалирование диска, дублируя все операции записи на основной диск на дополнительный диск. Такая избыточность позволила системе беспрепятственно продолжить работу с использованием зеркального раздела в случае сбоя основного раздела. В отличие от RAID 1, который обычно требует специальной аппаратной поддержки для зеркалирования дисков, команда MIRROR_ON реализовала эту функциональность на программном уровне, предлагая гибкое и экономичное решение для избыточности данных. [16]
Основными предложениями Primes, каждое из которых отвечало определенной потребности, были:
Программное обеспечение PrimeNET PRIMENET было разработано для обеспечения «прозрачного доступа к любой системе в сети, не обременяя пользователя дополнительными командами». [17] С помощью PRIMENET пользователь системы A мог получить доступ к файлам в системе B, как если бы они находились в системе A, [18] или даже войти в другую систему с помощью команды RLOGIN (удаленный вход). [19]
Выпущенный в то же время, что и PRIMENET, [20] [21] он позволил создать высокоскоростную локальную сеть . [22]
Была включена эмуляция 2780/3790. [23]
В 1985 году порт Prime для UNIX System V от AT&T , названный Primix, стал доступен в Primos Release 19.4.2, который был модифицирован для включения функций Unix. Он сосуществовал с PRIMOS, позволяя пользователям переключаться туда и обратно. [24]
Язык командной оболочки Prime, представленный в PRIMOS 18.2 в 1981 году.