RSX-11
RSX-11 | |
---|---|
| |
Разработчик | Digital Equipment Corporation |
Семейство ОС | DEC OS |
Поддерживаемые платформы | PDP-11 |
Состояние | историческое |
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 — «поставить запрос ввода-вывода в очередь данного устройства» (примерный аналог 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
На уровне системных вызовов устройства и дисковые файлы не имели ничего общего.
Интерпретатор команд MCR был в высшей степени особенной программой, драйвер терминала содержал сильные завязки на неё, командная строка выполняемого процесса находилась внутри родительского MCR и обращения к ней производились специальными системными вызовами.
ОС поддерживала аналог hibernate — команду SAVE.
Советские клоны
[править | править код]Ссылки
[править | править код]- Хостинг RSX-11M-PLUS Архивная копия от 13 марта 2010 на Wayback Machine — вход через telnet