RSX-11 — семейство операционных систем реального времени в основном для компьютеров PDP-11 от Digital Equipment Corporation
(DEC), которые были распространены в конце 1970-х и начале 1980-х.
RSX-11D впервые появилась для PDP-11/40 в 1972. Она была спроектирована
для контроля процессов, но также была популярна среди разработчиков
программ, а в СССР и вовсе использовалась как главнейшая
многотерминальная ОС для компьютеров СМ ЭВМ, даже при отсутствии
индустриальных контроллеров.
Версии
Существовало много версий RSX-11:
- RSX-11A, C — небольшая операционная система реального времени на магнитной ленте;
- RSX-11B — ОС на основе RSX-11C с поддержкой жёсткого диска. Для того, чтобы начать работу с системой, было необходимо загрузить DOS-11, а после RSX-11B. Программы для RSX-11B использовали макросы DOS-11 для операций ввода-вывода на диск;
- RSX-11D — многопользовательская дисковая система;
- IAS — вариант RSX-11D с разделением времени, выпущенный
примерно в то же время, что и PDP-11/70. Первая версия RSX, включающая
DCL (Digital Command Language), первоначально известный как PDS (Program
Development System);
- RSX-11M — многопользовательская версия, популярная на всех разновидностях PDP-11;
- RSX-11S — версия RSX-11M с виртуальной памятью для встроенных приложений реального времени;
- RSX-11M-Plus — улучшенная версия RSX-11M, изначально
разработанная с целью поддержки многопроцессорного компьютера PDP-11/74,
который не был выпущен; также использовалась как стандартная ОС для
PDP-11/70;
- RSX-20F — PDP-11/40 система для процессора DEC KL10 на основе RSX-11M;
- Micro/RSX — укороченая версия RSX-11M-Plus, разработанная специально для Micro/PDP-11;
- P/OS — версия RSX-11M-Plus для линейки персональных компьютеров DEC Professional на базе PDP-11.
Архитектура
PDP-11 была 16битной машиной с 16битными адресами, но поддерживала
физическую память свыше 64К с помощью переключения кадров страниц - в
64К адресное пространство процесса отображались некоторые страницы из
общего множества до 4М, у каждого процесса это отображение было своим.
Это в полной мере использовалось в RSX-11. Кроме того, ядро
исполнялось в отдельном 64К пространстве, и каждый системный вызов
означал смену контекста страниц.
Память выделялась из дальнего недоступного пространства, далее
страницы из выделенной области могли отображаться в адресное
пространство и становились доступны.
Понятие о процессе (как и в Win16) состояло из двух сущностей -
модуль (бинарь с уже загруженным в память заголовком) и задача (модуль в
процессе исполнения, имеющий стек и текущий контекст процессора).
Исполняемые файлы имели оверлейную структуру (опять же похожую на
Win16), и создавались программой TKB (аналог link и ld).
Для всего ввода/вывода на устройства использовался системный вызов
$QIO - "поставить запрос ввода-вывода в очередь данного устройства"
(примерный аналог overlapped IO в Win32).
Файловая система FILES-11 напоминала раннюю версию NTFS (и очевидно
была тем прототипом, на основе которого была создана NTFS), но имена
файлов кодировались в кодировке RADIX-50 и могли быть только 9.3.
На уровне системных вызовов устройства и дисковые файлы не имели ничего общего.
Интерпретатор команд MCR был в высшей степени особенной программой,
драйвер терминала содержал сильные завязки на нее, командная строка
выполняемого процесса находилась внутри родительского MCR и обращения к
ней производились специальными системными вызовами.
ОС поддерживала аналог hibernate - команду SAVE. |