RSX-11
RSX-11 — сімейство операційних систем реального часу в основному для комп'ютерів PDP-11 від Digital Equipment Corporation (DEC), які були поширені в кінці 1970-х і початку 1980-х. RSX-11D вперше з'явилася для PDP-11/40 в 1972. Вона була спроектована для контролю процесів, але також стала популярною серед розробників програм, а в СРСР і зовсім використовувалася як найголовніша багатотермінальна ОС для комп'ютерів СМ ЕОМ, навіть при відсутності індустріальних контролерів.
Розробник | Digital Equipment Corporation |
---|---|
Родина ОС | DEC OS |
Стан проєкту | історичне |
Модель коду | Пропрієтарне програмне забезпечення |
Платформи, що підтримуються | PDP-11 |
Версії
Існувало багато версій 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 (Development Program 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, але імена файлів кодувалися в кодуванні RADIX-50 і могли тільки 9.3.
На рівні системних викликів пристрою і дискові файли не мали нічого спільного.
Інтерпретатор команд MCR був у вищій мірі особливою програмою, драйвер термінала містив сильні зав'язки на неї, командний рядок виконуваного процесу перебувала всередині батьківського MCR і звернення до неї здійснювалися спеціальними системними викликами.
ОС підтримувала аналог hibernate — команду SAVE.
Радянські клони
- ОСРВ СМ ЕОМ