Введение

Компьютерная операционная система

RSTS ('/r//ᵻ//s//t//ᵻ//s/') — многопользовательская операционная система с разделением времени, разработанная Digital Equipment Corporation (DEC, ныне часть Hewlett Packard) для серии 16-битных миникомпьютеров PDP-11. Первая версия RSTS (RSTS 11, версия 1) была реализована в 1970 году инженерами DEC, разработавшими операционную систему TSS-8 для PDP-8. Последняя версия RSTS (RSTS/E, версия 10.1) была выпущена в сентябре 1992 года. RSTS 11 и RSTS/E обычно называют просто "RSTS", и в данной статье будет использоваться сокращенная форма. RSTS 11 поддерживает язык программирования BASIC, а также его расширенную версию BASIC PLUS, разработанную по контракту компанией Evans Griffiths & Hart из Бостона. Начиная с версии RSTS/E 5B, DEC добавила поддержку дополнительных языков программирования путем эмуляции среды выполнения операционных систем RT-11 и RSX-11.

1990-е годы

В 1994 году DEC продала большую часть своего бизнеса по программному обеспечению PDP 11 компании Mentec. Digital ещё некоторое время продолжала поддерживать своих клиентов PDP 11 при содействии сотрудников Mentec. В 1997 году Digital и Mentec предоставили бесплатную лицензию всем, кто хотел использовать RSTS 9.6 или более ранние версии в некоммерческих, любительских целях. Лицензия действительна только на эмуляторе SIMH PDP 11. Лицензия также распространяется на некоторые другие операционные системы Digital. Копии лицензии включены в авторизованный комплект программного обеспечения, который можно скачать с официального сайта эмулятора SIMH.

Сообщение

RSTS использует последовательное соединение для взаимодействия с оператором. Это соединение может быть локальным компьютерным терминалом с интерфейсом токового контура 20 мА, интерфейсом RS 232 (либо через локальный последовательный порт, либо удаленное соединение через модем), либо через Ethernet-соединение с использованием DECnet или LAT. К системе RSTS может быть подключено до 128 терминалов (с использованием многотерминального обслуживания), выполняющих одновременно максимум 63 задания (в зависимости от используемого процессора, объема памяти и дискового пространства, а также системной нагрузки). Большинство систем RSTS имели значительно меньше терминалов. Пользователи также могут отправлять задания для пакетного выполнения. Существует также пакетная программа под названием "ATPK", которая позволяет пользователям выполнять последовательность команд на виртуальном терминале (псевдотерминале) в полуинтерактивном режиме, аналогичном пакетным командам в MS DOS.

Среды времени выполнения

Одной из особенностей RSTS является механизм выполнения программ и среда, используемая для их запуска. Различные среды позволяли программировать на BASIC PLUS, усовершенствованном и аппаратно скомпилированном BASIC Plus 2, а также на более традиционных языках программирования, таких как COBOL (впоследствии обновленный до COBOL 85) и FORTRAN IV (впоследствии обновленный до FORTRAN 77). Поддерживались и другие языки, такие как DIBOL и MUMPS. Эти среды были изолированы друг от друга, что позволяло запустить программу из одной среды, а система переключалась в другую при запуске другой программы, а затем возвращала пользователя в исходную среду. Эти среды назывались Runtime System (RTS). Интерфейс командной строки, который был у большинства этих RTS, назывался KBM. До версии 9 системному менеджеру необходимо было определить, под управлением какого RTS система будет запускаться, и это должен был быть RTS, способный выполнять скомпилированные программы. Системный менеджер также мог устанавливать специальные команды CCL (Concise Command Language), которые имели приоритет над всеми командами KBM (за исключением DCL). CCL аналогичен ярлыку программы в системе Windows или символической ссылке в системах на базе Unix. CCL устанавливаются как команды, постоянно находящиеся в памяти, либо при загрузке системы, либо динамически во время ее работы системным менеджером (то есть они не являются постоянными, как файлы на диске). После входа в систему пользователь мог "ПЕРЕКЛЮЧАТЬСЯ" в любую из этих сред, вводить операторы на языке программирования BASIC PLUS, выполнять команды RUN для конкретных программ или использовать специальную команду CCL для запуска программы с параметрами командной строки. Большинство системных менеджеров RSTS генерировали ядро с включенной опцией однострочного отображения статуса "Control T", которая позволяла пользователю узнать, какую программу он запускает, под управлением какого RTS она работает, сколько памяти она использует, насколько она может расшириться и сколько памяти использует сам RTS.

BASIC-PLUS

Программы, написанные на BASIC PLUS, работали под управлением BASIC RTS, что предоставляло им до 32 КБ памяти (из общего объема 64 КБ). Язык был интерпретируемым, каждое ключевое слово внутренне преобразовывалось в уникальный байт-код, а переменные и данные индексировались и хранились отдельно в области памяти. Внутренний формат байт-кода был известен как PCODE. При использовании интерактивной команды SAVE, BASIC Plus RTS просто сохранял рабочую область памяти в файл на диске с расширением ".BAC". Несмотря на то, что этот формат не был документирован, два студента-электроника из Саутгемптонского университета в Великобритании (Ник де Смит и Дэвид Гаррод) разработали декомпилятор, который мог восстанавливать из файлов BAC исходный код BASIC Plus, включая оригинальные номера строк и имена переменных (оба впоследствии работали в DEC). Остальная память использовалась самой BASIC RTS. Если программы писались на языке, допускающем создание истинных двоичных исполняемых файлов, таких как BASIC Plus 2, FORTRAN IV или Macro Assembler, то объем доступной памяти составлял 56 КБ (8 КБ выделялось для RTS). Стандартный запрос BASIC PLUS – это ответ "Ready", нажатие Control+T отображает статус (например):

Запуск системы (INIT.SYS)

Если пользователь ввел неизвестную команду при загрузке системы в ответ на запрос "Option:" в утилите запуска INIT.SYS, отображалось сообщение "Введите 'HELP' для получения справки". Если пользователь затем вводил 'HELP' (включая кавычки) в ответ на запрос, система отвечала: "Как забавно, впрочем", после чего следовало фактическое сообщение справки.

Консольные фонари PDP-11

Системный менеджер мог встроить в ядро вращающийся шаблон отображения, создающий иллюзию двух змей, преследующих друг друга вокруг индикаторов консоли. Обычное ядро создавало иллюзию одной змеи, движущейся справа налево в индикаторах данных внизу. Если системный менеджер также компилировал объектный модуль "lights", пользователь видел бы дополнительную змею, движущуюся слева направо в адресных индикаторах сверху. Это достигалось использованием привилегированного режима в версиях до 9.0. RSX также имела аналогичный шаблон отображения, который выглядел так, будто две змеи играют в "цыплят" и сталкиваются друг с другом в центре консоли.

Теко пасхальное яйцо

Команда "make" позволяла пользователю создать текстовый файл и автоматически открыть его в текстовом редакторе TECO. Если пользователь вводил "make love", система создавала файл с именем "love" и отвечала: "Not War?".

Список открытых файлов

Кевин Герберт, впоследствии работавший в DEC, в 90-х годах добавил неопубликованную функцию, позволяющую пользователю просмотреть список открытых файлов, используемых его процессом, с указанием занятых блоков и размеров файлов.

Дата начала

Начиная с версии 9.0, неопубликованная функция позволяла системному администратору изменять отображение системной даты. RSTS стала первой операционной системой, которая отображала системную дату в виде набора чисел, представляющих звездную дату, как это широко известно по сериалу «Звёздный путь».

Дополнения других компаний

System Industries приобрела единственную лицензию на RSTS для реализации усовершенствования под названием SIMACS (SImultaneous Machine ACceSs), которое позволило их специализированному дисковому контроллеру устанавливать семафорный флаг для доступа к диску, обеспечивая возможность множественных операций записи в одни и те же файлы в системе RSTS, где диск совместно используется несколькими PDP 11 RSTS системами. Эта функция была реализована в контроллерах System Industries, которые подключались ко многим компьютерам DEC и была разработана доктором Альбертом Чу во время его работы в System Industries. Основным нововведением стало использование семафора – флага, указывающего, какой процессор, посредством кооперативного совместного использования, имеет исключительный доступ на запись. Это потребовало внесения множества изменений в способ доступа к дискам, реализованный операционной системой RSTS. Система FIPS (File Information Processing System), отвечавшая за ввод/вывод, в RSTS была однопоточной. Чтобы обеспечить возможность приостановки доступа к диску, пока другая машина активно использует блок, требовалось, чтобы FIPS могла прерывать запрос, переходить к следующему и «возвращаться» к приостановленному в циклическом порядке. Код, обеспечивающий эту функциональность, был написан Филипом Хантом во время его работы в System Industries в Мильпитасе, Калифорния. Позже, в конце 1980-х и начале 1990-х годов, он работал в Digital Equipment в районе Новой Англии. SIMACS не ограничивался линейкой продуктов PDP 11; его также могли использовать системы VAX.

Другие эмуляторы PDP-11

RSTS и его приложения могут работать под управлением ряда эмуляторов PDP 11, таких как SIMH и Ersatz 11. Дополнительную информацию можно найти в разделе PDP 11.

Приложения

Компьютерные центры иногда использовали пользователя 11 для управления данными в системах RSTS/E.