RSX-11

RSX-11 (англ. Resource Sharing Executive) — операционная система, разработанная компанией Digital Equipment Corporation (DEC) для использования на своих компьютерах в 197x—199x годах.
RSX-11 является одной из первых и наиболее популярных операционных систем для компьютеров PDP-11, которые были широко используемыми в среде разработки и научных исследований. Она обеспечивала многопользовательскую работу и многозадачность, распределение ресурсов и обмен данными между программами.
RSX-11 имела несколько версий, включая RSX-11D, RSX-11M и RSX-11S. Каждая из них предлагала различные возможности и набор программного обеспечения, а также различные уровни надежности и производительности. Также было возможно добавить в RSX-11 среду исполнения программ, созданных для операционной системы RT-11.
В 1990-х годах Digital Equipment Corporation ушла от производства компьютеров PDP-11, и RSX-11 постепенно вышла из активного использования. Однако, она все еще остается важным историческим примером операционной системы для платформы PDP-11 и оказала влияние на развитие последующих ОС.Она была спроектирована для контроля процессов, в частности в АСУТП, но также была популярна среди разработчиков программ, а в СССР и вовсе использовалась как главнейшая многотерминальная и многозадачная ОС для компьютеров СМ ЭВМ, даже при отсутствии индустриальных контроллеров.

PDP-11 был 16-битным компьютером с 16-битными адресами, но поддерживал физическую память свыше 64 К с помощью переключения кадров страниц — в 64 К адресное пространство процесса отображались некоторые страницы из общего множества до 4 М, у каждого процесса это отображение было своим.

Это в полной мере использовалось в RSX-11. Кроме того, ядро исполнялось в отдельном 64 К пространстве, и каждый системный вызов означал смену контекста страниц.

Память выделялась из дальнего недоступного пространства, далее страницы из выделенной области могли отображаться в адресное пространство и становились доступны.

Понятие о процессе (как позднее и в Win16) состояло из двух сущностей — модуль (бинарный образ с уже загруженным в память заголовком) и задача (модуль в процессе исполнения, имеющий стек и текущий контекст процессора). Исполняемые файлы имели оверлейную структуру (похожее было позднее и в Win16), и создавались программой TKB (аналог link и ld).

Для обработки всех операций ввода-вывода с устройств использовался системный вызов $QIO — «поставить запрос ввода-вывода в очередь данного устройства» (примерный аналог IRP в ядре Windows NT или Overlapped I/O в Win32 API). Имелся также системный вызов $QIOW, ожидающий выполнения операции.

Файловая система Files-11 стала прототипом, на основе которого позднее была создана NTFS, но здесь для имён объектов файловой системы используется кодировка RADIX-50, что позволяет поддерживать только имена в формате «9.3» (одно 16-битное слово позволяет кодировать три символа, символ точки не записывается). Полная спецификация имени файла включает: устройство, директория (9 символов или User Identification Code (UIC)), имя файла (9 символов), тип файла (3 символа), номер версии. Например (директория задана через UIC): DL2: [46.63] INDIRECT. TXT;3

На уровне системных вызовов устройства и дисковые файлы не имели ничего общего.

Почти на все версии этой операционной системы можно было установить поддержку как DECnet, так и TCP/IP, а в последних версиях такая поддержка входила в комплект поставки операционной системы.

Интерпретатор команд MCR был в высшей степени особенной программой, драйвер терминала содержал очень сильные завязки на неё, командная строка выполняемого процесса находилась внутри родительского MCR и обращения к ней производились специальными системными вызовами.

ОС поддерживала аналог hibernate — команду SAVE.

Обсуждение закрыто.