ОС/8
Разработчик | Корпорация цифрового оборудования |
---|---|
Рабочее состояние | Снято с производства |
Исходная модель | Закрытый исходный код |
Первоначальный выпуск | 1971 год |
Платформы | ПДП-8 |
По умолчанию пользовательский интерфейс | Краткий командный язык (CCL) ( Интерфейс командной строки ) |
Лицензия | Собственный |
Предшественник | ПС/8 |
OS/8 является основной операционной системой, используемой на Digital Equipment Corporation компании PDP-8 миникомпьютере .
Операционные системы PDP-8, предшествующие OS/8, включают:
- РЛ Монитор, [1] также называемый MS/8 .
- П?С/8, [а] требуется всего 4 КБ памяти.
- PDP-8 4K Disk Monitor System [2]
- PS/8 («Система программирования/8»), требующая 8K. Именно это стало OS/8 в 1971 году.
Другими/родственными операционными системами DEC являются OS/78 , OS/278, [3] и ОС/12. Последняя представляет собой практически идентичную версию OS/8 и работает на компьютере Digital PDP-12 .
Цифровые выпущенные образы OS / 8 для некоммерческих целей. [4] который можно эмулировать через SIMH .
Обзор
[ редактировать ]OS/8 предоставляет простую операционную среду. [5] это соизмеримо по сложности и масштабу с компьютерами PDP-8, на которых он работал. Ввод-вывод поддерживается с помощью ряда поставляемых драйверов, которые используют методы опроса (не управляемые прерываниями). Драйверы устройств должны быть грамотно написаны. [6] поскольку они могут занимать только одну или две страницы памяти из 128 12-битных слов и должны иметь возможность работать на любой странице в поле 0. Это часто требует значительной сообразительности, например, использование инструкции OPR (7XXX) для небольших отрицательные константы.
Резидентный «след» памяти OS/8 составляет всего 256 слов; 128 слов вверху поля 0 и 128 слов вверху поля 1. Остальная часть операционной системы (USR, «Процедуры обслуживания пользователя») прозрачно перемещается в память и из нее (относительно программы пользователя), как нужный. Эта резидентная на диске (или, точнее, резидентная на системном устройстве) часть OS/8 представляет собой первые 14 КБ слов (56 блоков) устройства SYS:, включая пространство подкачки.
Оставшееся содержимое памяти сохраняется между некоторыми основными командами пользователя. Это используется в процессе сборки исполняемых программ: например, программа на языке ассемблера сначала собирается в файл .BN (двоичный). Затем один или несколько файлов .BN загружаются в память с помощью команды ЗАГРУЗИТЬ (ABSLDR). Затем вы можете выполнить загруженную программу с помощью команды START, отладить ее с помощью ODT или СОХРАНИТЬ в файл .SV, который позже можно будет получить с помощью команды GET или немедленно выполнить с помощью команд R или RUN. Информация о загруженной в данный момент программе хранится в CCB (Core Control Block), который расположен на устройстве SYS:. Эта информация включает в себя, какие части памяти используются программой (какие части следует сохранить), а также стартовый адрес программы.
Эта концепция сохраненной памяти, связанной с пользователем или заданием, также появляется в других операционных системах DEC, включая TOPS-10 для PDP-10 , где такая память известна как контекст.
OS/8 может загружаться с жесткого диска и отображать командную строку менее чем за полсекунды.
Краткий командный язык
[ редактировать ]Ранние версии OS/8 имели очень элементарный интерпретатор командной строки с очень небольшим количеством основных команд : ПОЛУЧАТЬ , СОХРАНЯТЬ , БЕГАТЬ , НАЗНАЧАТЬ , ОТМЕНА НАЗНАЧЕНИЯ и ОДТ . В версии 3 они добавили более сложное наложение под названием CCL ( язык кратких команд ), которое реализует гораздо больше команд. Digital PDP-10, CCL OS/8 напрямую создан по образцу CCL, найденного в системах работающих под управлением TOPS-10 . Фактически, большая часть программной системы OS/8 намеренно спроектирована так, чтобы максимально точно имитировать операционную среду TOPS-10. (Командный язык CCL используется на PDP-11, компьютерах работающих под управлением RT-11 , RSX-11 и RSTS/E , обеспечивая аналогичную рабочую среду пользователя во всех трех архитектурах: PDP-8, PDP-10 и PDP-11. )
Базовая ОС и CCL реализуют множество довольно сложных команд, многие из которых до сих пор не существуют в современных командных языках, даже в MS-DOS , Windows или Unix-подобных операционных системах.
Например, Команда COMPILE автоматически находит правильный компилятор для данного исходного файла и запускает цикл компиляции/ассемблирования/компоновки.
The НАЗНАЧИТЬ и Команды DEASSIGN позволяют использовать в программе логические имена устройств вместо физических имен (как того требует MS-DOS). Например, программа может записывать на устройство FLOP:AAA.TXT и с начальной буквой " ASSIGN FLOP: RXA2: », то файл создается на физическом устройстве RXA2 (второй дисковод гибких дисков). VAX / VMS и Amiga для операционная система AmigaOS (и другие операционные системы, построенные на базе TRIPOS ) широко используют эту функцию.
The Команда SET позволяет устанавливать многие параметры системы путем исправления мест в двоичном коде системы. Один из них, командный под ОС-78, [7] является SET SYS OS8 , который повторно включает команды MONITOR, которые не являются частью OS-78.
The Команда BUILD позволяет переконфигурировать ОС на лету, даже добавляя драйверы устройств , зачастую без необходимости перезагрузки ОС.
Файловая система OS/8
[ редактировать ]OS/8 поддерживает простую плоскую файловую систему на различных устройствах хранения данных , включая:
- TU56 DECкассеты
- DF32 32кВт [б] [8] диски с фиксированной головкой
- РФ08 256кВт [с] диски с фиксированной головкой
- РК01/02/03/04/05 Картриджные дисководы
- RL01/02 Картриджные дисководы
- RX01/02 гибких дисков Дисководы
Имена файлов на PDP-8 имеют вид FFFFFF.XX , где «F» представляет собой буквенно-цифровой символ имени файла в верхнем регистре, а «X» представляет собой буквенно-цифровой символ расширения (типа файла) в верхнем регистре.
- .PA: язык ассемблера
- .SV: сохраненные образы ядра (исполняемые программы).
- .FT: исходные файлы Фортрана.
- .DA: файлы данных [д]
Содержимое любого файла хранится непрерывно в одном «экстенте». Распределение работает следующим образом: [9] программа сначала открывает предварительный файл (используя функцию «ВВОД» маршрутизатора служб пользователей (USR). При этом файлу назначается либо самый большой свободный экстент, либо, если желаемый размер файла известен заранее, наименьший экстент, в который он помещается. ENTER возвращает номер начального блока и размер файла программе, которая затем записывает в файл. путем прямого вызова драйвера устройства. После завершения записи программа вызывает функцию USR «CLOSE». CLOSE помечает предварительный файл как постоянный файл и создает экстент для оставшегося свободного пространства для будущих выделений. Он также удаляет (помечает как доступное свободное пространство) любой другой файл с тем же именем. Это облегчает замену существующего файла новой версией, например, после редактирования («ЗАКРЫТЬ» дублируется как вызов удаления файла). Одновременно может быть открыт только один предварительный файл на том. Это кажется ограничением, но работает для чего-то вроде ассемблера PAL8, поскольку для каждого прохода за раз генерируется только один выходной файл.
PIP включает возможность сжатия («сжатия») файловой системы, так что все нераспределенное пространство перемещается в один экстент в конец диска. Это можно вызвать с помощью команды SQuish CCL , так же, как MUNG можно использовать для запуска макроса TECO . [ нужна ссылка ]
Тома OS/8 имеют ограниченный максимальный размер хранилища (4096 блоков по 256 двенадцатибитных слов), а диск с подвижной головкой RK05 (2,4 МБ) превышает этот размер: «1,6 миллиона слов хранилища». [10] Из-за этого картриджи РК05 разделены на две перегородки. Например, первый RK05 в системе известен как RKA0: (SY:) и RKB0:. Это разделение относится к «внешним цилиндрам» и «внутренним цилиндрам».
ASCII-код
[ редактировать ]Существует две системы обработки текста ASCII. Файлы ASCII хранятся в виде трех 8-битных символов на пару 12-битных слов. Первые два символа (отмеченные ниже битами a0–a7 и b0–b7) сохраняются целиком в своих словах, а третий символ (биты c0–c7) сохраняется с половиной своих битов в слове 1, а другая половина — в слове. 2. [7]
- СЛОВО 1: c0 c1 c2 c3 | а0 а1 а2 а3 а4 а5 а6 а7
- СЛОВО 2: c4 c5 c6 c7 | б0 б1 б2 б3 б4 б5 б6 б7
Файлы ASCII заканчиваются на CTRL/Z (ASCII 232).
Также используются строки ASCII, состоящие только из 6-битных символов в верхнем регистре. В этом случае в каждое слово эффективно помещаются два символа. Это используется для имен файлов в записях каталога, а также для строк в BASIC. В BASIC, хотя в строках используются 6-битные символы, вы можете напечатать любой 8-битный код, используя функцию PNT() в PRINT, например, используйте PNT(27) для печати символа ASCII ESC.
Формат даты OS/8
[ редактировать ]OS/8 выделяет 12-битные слова PDP-8 для хранения дат по:
Недостаточность трехбитного поля года, способного хранить только восемь лет, была осознана при COS-310 . разработке [12]
OS/8 CUSP (служебные программы)
[ редактировать ]CUSP (обычно используемые системные программы, то есть утилиты), поставляемые с OS/8, включают:
- BUILD (программа для установки настроенной системы OS/8 на запоминающее устройство)
- DIR (программа просмотра каталогов)
- EDIT (строчно-ориентированный редактор) [13]
- MACREL (Перемещаемый ассемблер, который, в отличие от PAL, реализует макросы. Написан Стэнли Рабиновицем из группы малых систем DEC. У Стэна в офисе было изображение рыбы в формате ASCII с надписью «MACREL — ЭТО РЫБА») [ нужна ссылка ]
- FLAP (абсолютный ассемблер, производный от RALF)
- ФОРТРАН -II. [14]
- FOTP (программа файлово-ориентированной передачи, альтернатива PIP)
- PAL (Ассемблер)
- PIP (Программа обмена периферийными устройствами, используемая для копирования файлов)
- PIP10 (версия PIP, используемая для копирования файлов с DECtapes PDP-10)
- RALF (Еще один перемещающийся ассемблер для FPP)
- TECO (Текстовый редактор и корректор, сложный редактор). Команда MUNG запускает макросы TECO.
- CCL, интерпретатор командной строки , поставляемый в исходной форме и расширяемый пользователем.
Языки программирования
[ редактировать ]БАЗОВЫЙ
[ редактировать ]В качестве опции доступны однопользовательская версия BASIC и две многопользовательские версии BASIC.
Однопользовательский BASIC использует несколько оверлеев для обеспечения полной функциональности языка; когда OS/8 загружается с DECtape, заметная задержка возникает каждый раз, когда BASIC требуется для переключения оверлеев, поскольку их необходимо прочитать с ленты.
Многопользовательские версии BASIC (EDU20 и EDU25) отличаются только тем, поддерживают ли они блочно заменяемые устройства (DECtape или диск). Из-за ограничений по стоимости многие PDP-8 используют считыватели перфоленты в качестве единственного запоминающего устройства ввода-вывода. EDU20 загружается с бумажной ленты и может выполнять вывод на устройство записи на бумажную ленту, если оно есть в машине, тогда как EDU25 понимает структуру файловой системы, может загружать с DECtape или диска и может создавать файлы на DECtape или диске. Оба могут одновременно запускать несколько программ BASIC, используя примитивный планировщик задач, который выполняет циклический перебор между подключенными терминалами. Памяти всегда мало, потому что PDP-8 использует основную память, которая была чрезвычайно дорогой по сравнению с технологией RAM. В 8K 12-битных слов EDU20 может поддерживать до 4 терминалов одновременно, хотя рекомендовалось больше памяти. EDU25 требует дополнительного банка памяти размером 4 КБ (минимум 12 КБ), поскольку код содержит драйвер дискового устройства и обработчик файловой системы. Во время работы EDU20 и EDU25 являются автономными программами, которые не используют системные вызовы OS/8. Сразу после вызова из командного интерпретатора OS/8 они перезаписывают всю резидентную часть OS/8 – все ее 256 слов. При запуске EDU25 сохраняет содержимое памяти на DECtape или диск и восстанавливает его при выходе. Но EDU20 не может этого сделать, поскольку он ориентирован на аппаратные конфигурации без какого-либо блочно заменяемого устройства.
ФОРТРАН
[ редактировать ]Помимо бесплатно доступного компилятора FORTRAN II , существует также довольно полный компилятор FORTRAN IV . Этот компилятор генерирует код для дополнительного процессора с плавающей запятой FPP-8, который по сути представляет собой отдельный ЦП, разделяющий память только с ЦП PDP-8. Если установлена опция FPP-8, код выполнения FORTRAN обнаруживает ее и использует FPP-8 для запуска основного программного кода, а ЦП PDP-8 работает как процессор ввода-вывода. В отсутствие FPP-8 код выполнения вместо этого вызывает интерпретатор FPP-8, работающий на ЦП PDP-8, поэтому программа работает с пониженной скоростью.
В этом компиляторе FORTRAN IV версии 1 есть интересная ошибка, заключающаяся в неправильном подсчете циклов DO: циклы DO будут считаться 1,2,3,5,6,7,… (пропуская 4). Чтобы исправить это, был выпущен быстрый патч. [ нужна ссылка ]
См. также
[ редактировать ]Сноски
[ редактировать ]Ссылки
[ редактировать ]- ^ Ричарду Лэри, который также участвовал в разработке OS/8 и RTS8. «Что такое PDP 8?» . Архивировано из оригинала 25 августа 2004 г.
- ^ «Система мониторинга дисков» (PDF) . БитСейверы .
- ^ COMPUTERWORLD, июнь 1984 г.: «OS/278 доступна за 74 доллара». «Decmate II 08/278 Компания Digital Equipment Corp. представила новую версию своей OS/8…» Computerworld . 11 июня 1984 г. с. 130.
- ^ Файл: /Licenses/os8_license.txt в os8swre.tar.Z
- ^ Аннотированный список команд доступен по адресу «КОМАНДЫ МОНИТОРА OS/8» .
- ^ «Мой PDP8/E» .
- ^ Перейти обратно: а б Мур, Рик. «Брошюра по выездному обслуживанию OS-8» .
- ^ «Жесткий диск DF32/DS32» .
DF32 Disk File and Control представляет собой жесткий диск с фиксированной головкой общей емкостью 32 КБ 12-битных слов.
- ^ Объяснение алгоритма распределения см. в главе 2 документа. «Руководство по поддержке программного обеспечения OS / 8» (PDF) . Битсейверы . Корпорация цифрового оборудования.
- ^ стр. 6–67 в PDP 8/e Справочник по малому компьютеру . Корпорация цифрового оборудования. 1973.
- ^ «Каталог linctape-images/os8l/ps-8-system-25.linc» . Домашняя страница онлайн-PDP-8 .
Этот каталог имеет формат, используемый операционной системой OS/8. OS/8 может хранить даты только за 8-летний период, поэтому даты будут отображаться как 1970–1977, если на носителе не будет печатного каталога или другой информации, позволяющей найти правильный диапазон дат.
- ^ «Корпорация цифрового оборудования PDP-8: часто задаваемые вопросы» .
COS-310 был производным от MS/8 и OS/8, но с новым форматом текстовых файлов. Файловая система почти такая же, как в OS/8, но даты записываются по-другому[...].
- ^ Обзор OS/8 EDIT для программистов см. «Редактирование файлов на PDP-8 с помощью OS/8 EDIT» . 24 мая 2014 г.
- ^ «Справочное руководство программиста на Фортране 4K» (PDF) .
Внешние ссылки
[ редактировать ]- Комплекты программного обеспечения SIMH, включая образ OS/8.
- Руководства по OS/8 на сайте Bitsavers.
- Ссылки на лицензию и документацию для любителей DEC