ОС-9

Операционная система реального времени

Operating system
ОС-9
Разработчик
Написано вC , язык ассемблера
Рабочее состояниеТекущий
Исходная модельЗакрытый исходный код
Первоначальный выпуск1979 ; 46 лет назад (1979)
Последний релиз6.1 / 14 ноября 2017 г. ; 7 лет назад (2017-11-14)
Маркетинговая цельвысокопроизводительное и высокодоступное программное решение реального времени для современной промышленной автоматизации и управления, медицинского оборудования, аэрокосмических и транспортных систем
Доступно вАнглийский
ПлатформыMotorola 6809 , процессоры Motorola 680x0 , ColdFire , SuperH , ARM/XScale , MIPS , PowerPC , архитектура Intel x86
Тип ядраЯдро реального времени

Пользовательский интерфейс по умолчанию
CLI во всех версиях, некоторые платформы поддерживают GUI
ЛицензияЗапатентованный
Официальный сайтwww.microware.com

OS-9 — это семейство многозадачных многопользовательских операционных систем реального времени , основанных на процессах , разработанных в 1980-х годах корпорацией Microware Systems для микропроцессора Motorola 6809. В 2001 году она была куплена корпорацией Radisys Corp, а в 2013 году — ее нынешним владельцем Microware LP .

Семейство OS-9 было популярно для вычислений общего назначения и по-прежнему используется в коммерческих встраиваемых системах и среди любителей. Сегодня OS-9 — это название продукта, используемое как для машинного языка ОС серии Motorola 68000 , так и для портативной ( PowerPC , x86 , ARM , MIPS , SH4 и т. д.) версии, написанной на языке C , изначально известной как OS-9000 .

История

Первая версия («OS-9 Level One»), которая датируется 1979–1980 годами, была написана на языке ассемблера для процессора Motorola 6809 , и все ее процессы работали в адресном пространстве процессора размером 64 КБ без блока управления памятью. Она была разработана как вспомогательная операционная система для проекта BASIC09 , контракт на который был заключен Motorola в рамках разработки 6809. Более поздняя версия 6809 («Level Two») использует преимущества аппаратного отображения памяти, поддерживает до 2 МБ памяти (около 1980 года) в большинстве реализаций и включает графический интерфейс на некоторых платформах.

В 1983 году OS-9/6809 была перенесена на язык ассемблера Motorola 68000 и расширена (названа OS-9/68K); а еще более поздняя (1989) версия была переписана в основном на C для большей переносимости. Портативная версия изначально называлась OS-9000 и была выпущена для систем ПК 80386 около 1989 года, затем перенесена на PowerPC около 1995 года. Эти более поздние версии лишены возможностей отображения памяти OS-9/6809 Level Two просто потому, что они им не нужны. Они использовали единое плоское адресное пространство, которое разделяют все процессы; аппаратное обеспечение отображения памяти, если оно присутствует, в основном используется для того, чтобы гарантировать, что процессы получают доступ только к той памяти, к которой у них есть право доступа. Микропроцессоры 680x0 и 80386 (и более поздние) напрямую поддерживают гораздо больше 1 МБ памяти в любом случае.

В результате ранних всеобъемлющих проектных решений, использующих преимущества легко используемых возможностей реентерабельного объектного кода процессора 6809, программы, предназначенные для OS-9, должны быть реентерабельными; компиляторы автоматически создают реентерабельный код, а ассемблеры для OS-9 предлагают значительную поддержку для него. OS-9 также использует позиционно-независимый код и данные, поскольку 6809 также поддерживает его напрямую; компиляторы и ассемблеры поддерживают позиционную независимость. Ядро OS-9 загружает программы (включая общий код) и выделяет данные везде, где в карте памяти доступно достаточно свободного места. Это позволяет размещать всю ОС и все приложения в ПЗУ или флэш-памяти и упрощает требования к управлению памятью, когда программы загружаются в ОЗУ и запускаются. Программы, драйверы устройств и менеджеры ввода-вывода в OS-9 являются «модулями» и могут динамически загружаться и выгружаться (в зависимости от количества ссылок) по мере необходимости.

OS-9/6809 работает на системах Motorola EXORbus, использующих системы шин Motorola 6809 , SS-50 и SS-50C от таких компаний, как SWTPC , Tano , Gimix , Midwest Scientific и Smoke Signal Broadcasting , системы STD-bus 6809 от нескольких поставщиков, персональные компьютеры, такие как Fujitsu FM-11 , FM-8 , FM-7 и FM-77, Hitachi MB-S1  [яп.] и многие другие.

System Industries , сторонний поставщик оборудования, совместимого с DEC, использовал процессор 68B09E под управлением OS9 в своих контроллерах резервного копирования на ленту QIC ( четвертьдюймовый картридж ) в установках VAX .

Самым известным оборудованием (благодаря низкой цене и широкому распространению) был цветной компьютер TRS-80 (CoCo) и похожая серия Dragon . Даже на CoCo, довольно минималистской аппаратной платформе, под управлением OS-9/6809 Level One можно было иметь более одного интерактивного пользователя, работающего одновременно (например, один на клавиатуре консоли, другой в фоновом режиме и, возможно, третий интерактивно через последовательное соединение), а также несколько других неинтерактивных процессов. [ необходима цитата ] Одна система, Positron 9000, позиционировалась как многопользовательская система для образовательных целей, предлагающая среды BASIC и Pascal от Microware, оснащенная 64–512 КБ ОЗУ и имеющая от четырех до двенадцати последовательных портов. Однако, как сообщается, на быстродействие влияли многопользовательские операции в минимальной конфигурации системы. [1] Вторая реализация процессора OS-9 для BBC Micro была создана Cumana . Он включал в себя встроенную оперативную память, интерфейс жесткого диска SCSI и процессор MC68008 . [2]

OS-9 также была портирована на Commodore SP-9000 или SuperPET, который имел 6809 в дополнение к 6502 базовой модели 8032, а также 64 КБ больше. Toronto PET Users Group спонсировала проект HW/SW, который включал дочернюю плату с MMU, а также дистрибутивные диски OS-9. С двумя процессорами, 96 КБ, экраном 25×80 и последовательными, параллельными и IEEE-488 портами и множеством периферийных устройств это была одна из самых мощных систем OS-9 из доступных.

Многопользовательские и многозадачные возможности OS-9 делают ее пригодной для использования в качестве интерактивной компьютерной системы общего назначения. Для нее было написано множество сторонних интерактивных приложений, таких как электронная таблица Dynacalc, текстовый форматер VED и текстовые процессоры WYSIWYG Stylograph и Screditor-3 . Эмулирующий форматер nroff от TSC также был перенесен в OS-9 компанией MicroWay.

В середине 1980-х годов OS-9 была выбрана для операционной системы CD-i . Примерно в то же время Microsoft обратилась к Microware с предложением о приобретении компании, в первую очередь потому, что ее привлекала CD-RTOS, операционная система CD-i. Переговоры провалились, и сделка не была заключена; Microware решила остаться независимой. [3]

В конце 1980-х годов Microware выпустила OS-9000, более портативную версию операционной системы. Большая часть ядра операционной системы была переписана на языке C, оставив несколько аппаратно-зависимых частей на языке ассемблера. Было добавлено несколько «более продвинутых функций», таких как древовидное пространство имен модулей ядра. OS-9000 изначально была портирована на процессоры семейства Motorola 680x0 , Intel 80386 и PowerPC . OS-9000/680x0 оказалась маркетинговой неудачей и была очень быстро отозвана, вероятно, потому, что немногие клиенты хотели попробовать более толстую и медленную операционную систему вместо существующей OS-9/680x0, которая доказала свою стабильность. Позже Microware начала называть все свои операционные системы — включая то, что изначально называлось OS-9000 — просто OS-9 и начала смещать свой деловой интерес в сторону рынков портативных потребительских устройств, таких как мобильные телефоны, автомобильные навигаторы и мультимедиа.

В конце 1980-х и начале 1990-х годов компьютеры Character Generators, используемые в Broadcast Systems, широко использовали OS-9 и OS-9000. Ныне несуществующая Pesa Electronica использовала OS-9 на своих CG, таких как CG 4722 и CG4733.

Конфликты имен и судебные решения

В 1999 году, через девятнадцать лет после первого выпуска OS-9, Apple Computer выпустила Mac OS 9. В том же году Microware подала в суд на Apple за нарушение товарного знака, [4] хотя судья постановил, что вероятность путаницы между ними мала. Некоторые пользователи Macintosh, не знающие о менее известной OS-9 от Microware, написали в новостную группу comp.os.os9, не понимая, что такое OS-9.

В 2001 году RadiSys приобрела Microware , чтобы получить ресурсы сетевого процессора Intel IXP-1200 . Это приобретение дало Microware капитал и позволило Microware продолжить разработку и поддержку OS-9.

21 февраля 2013 года компания Microware LP (партнерство, образованное Freestation из Японии, Microsys Electronics из Германии и RTSI LLC из США) объявила о подписании Соглашения о покупке активов с целью приобретения прав на названия Microware, OS-9 и все активы у RadiSys .

Технологии

Современный и архаичный дизайн

OS-9 (особенно версия 68k и более поздние версии) во многих аспектах явно отличается от предыдущего поколения встраиваемых операционных систем.

По сравнению с более современными операционными системами:

  • Ядро полностью написано на языке ассемблера (только версия OS-9/68K) и C (переносимая версия на другие архитектуры) с использованием простых внутренних структур данных, что снижает гибкость и объем усовершенствований, одновременно улучшая определяемость, необходимую для операционных систем реального времени .
  • Производительность некоторых операций также снизилась, но язык ассемблера помог решить проблему скорости.
  • Системы без блока управления памятью (MMU) не имеют защиты памяти от несанкционированного доступа, а также защиты памяти на уровне процесса, в то время как системы с MMU могут иметь включенную защиту памяти. Модуль, управляющий MMU, может быть включен или исключен системным интегратором для включения или отключения защиты памяти. Это позволяет OS-9 работать на старых системах, которые не включают MMU.
  • Более старые версии OS-9 не поддерживают потоки POSIX , в то время как все процессоры, поддерживаемые OS-9, поддерживают потоки POSIX.
  • Отсутствует поддержка SMP для нескольких сокетов, ядер или аппаратных потоков в одном экземпляре OS-9 (может работать как RTOS на одном из ядер двухъядерных процессоров, таких как Core Duo и Core 2 Duo , когда Linux работает на другом ядре, выполняя задачи общего назначения).

Планирование задач

Ядро реального времени OS-9 позволяет нескольким независимым приложениям выполняться одновременно с помощью переключения задач и средств межпроцессного взаимодействия. Все программы OS-9 запускаются как процессы, содержащие по крайней мере один облегченный процесс (поток), но могут содержать фактически неограниченное количество потоков. Внутри процесса эти облегченные процессы совместно используют память, пути ввода-вывода и другие ресурсы в соответствии со спецификацией потоков POSIX и API. OS-9 планирует потоки, используя алгоритм упреждающего планирования с фиксированным приоритетом с циклическим планированием в пределах каждого приоритета. Поддерживается квантование времени. Уровни приоритета можно разделить на диапазон, который поддерживает старение , и диапазон с более высоким приоритетом, который использует строгое планирование приоритетов. Каждый процесс может получить доступ к любому системному ресурсу, выполнив соответствующий запрос на обслуживание OS-9. В каждой точке планирования OS-9 сравнивает приоритет потока во главе активной очереди с приоритетом текущего потока. Он переключается на поток в активной очереди, если его приоритет выше приоритета текущего процесса. Старение искусственно увеличивает эффективный приоритет потоков в активной очереди с течением времени. В определенные интервалы времени слайсинг возвращает текущий поток в активную очередь позади других потоков с тем же приоритетом.

Модули ядра

  • Ядро — содержит переключение задач, распределение памяти и большинство вызовов, не связанных с вводом-выводом.
  • IOMAN – обрабатывает вызовы ввода-вывода к различным файловым менеджерам и драйверам.
  • Базовый набор файловых менеджеров:
    • SCF, Последовательные файлы (последовательные устройства)
    • RBF, Случайный блок (дисковые устройства)
    • SBF, Последовательный блок (ленточные устройства)
    • Устройства NFM, NULL (USB и другие устройства)
    • МФМ, Сообщение
    • SPF, устройства стекового протокола (сетевые)
    • Файлы PCF, PC FAT
    • PIPEMAN, менеджер по трубам
    • Modman - Каталоги модулей памяти
  • SSM – безопасность системы (обработка MMU)
  • Кэш – обработка кэша,
  • VectXXX – векторный/PIC-обработчик
  • FPU – эмуляция чисел с плавающей точкой
  • Align – обработчик ошибок выравнивания адресов

Команды

Следующий список команд поддерживается оболочкой OS-9.

Встроенные команды оболочки

Утилиты для функций операционной системы

Утилиты управления системой

Общие коммунальные услуги

Сравнение с Unix

Понятие процессов и путей ввода-вывода в OS-9 во многом похоже на то, что есть в Unix, почти во всех отношениях, но есть и некоторые существенные различия. Во-первых, файловая система — это не одно дерево, а лес, где каждое дерево соответствует устройству. Во-вторых, в OS-9 нет системного вызова fork() в стиле Unix — вместо этого у нее есть системный вызов, который создает процесс, запускающий указанную программу, выполняя во многом ту же функцию, что и fork-exec или spawn . Кроме того, процессы OS-9 отслеживают два «текущих каталога», а не один; «текущий каталог выполнения» — это то место, куда он по умолчанию будет сначала загружать программы для запуска (что похоже на использование переменной среды PATH в UNIX). Другой — это текущий каталог данных.

Другое отличие заключается в том, что в OS-9 родительские каталоги могут быть обозначены повторением точек три или более раз без каких-либо промежуточных слешей (функция, также встречающаяся в 4DOS / 4OS2 / 4NT / TC ). Например, ..../fileв OS-9 похоже на ../../../fileв Unix. Но .и .., с одной или двумя точками, работают одинаково как в OS-9, так и в Unix.

OS-9 изначально имела модульную конструкцию, на которую повлияли идеи разработчиков 6809 и то, как они ожидали, что программное обеспечение будет распространяться в будущем (см. серию статей из трех частей в журнале Byte за январь-март 1979 года , написанную Терри Риттером и соавторами из Motorola, которые разработали этот процессор).

Структура модуля требует дополнительных пояснений: OS-9 хранит «каталог модулей», резидентный список всех модулей, которые находятся в памяти, либо будучи загруженными, либо будучи найденными в ПЗУ во время начального сканирования во время загрузки. Когда кто-то вводит команду в оболочку OS-9, она сначала будет искать в текущем каталоге модулей модуль с указанным именем и будет использовать его (и увеличивать его количество ссылок), если он будет найден, или будет искать на диске файл с соответствующим именем, если нет. В OS-9/6809 и OS-9/68000 каталог модулей плоский, но OS-9000 сделала каталог модулей древовидным. Оболочка OS-9000 ищет в альтернативном каталоге модулей переменную среды MODPATH, аналогичную переменной PATH во всех версиях, указывающую последовательность каталогов модулей, в которых следует искать предварительно загруженные модули.

Модули не только используются для хранения программ, но также могут создаваться «на лету» для хранения данных и являются способом, которым OS-9 поддерживает общую память. OS-9/не-68000 поддерживает потоки POSIX . Один процесс может запустить любое количество потоков.

Статус

OS-9 вышла из популярного использования, хотя Microware LP все еще поддерживает ее и она работает на современных архитектурах, таких как ARM и x86. Предоставленный компилятор Ultra C/C++ поддерживает C89 , но не поддерживает ни C99 , ни C++98 . Ultra C++ обеспечивает ограниченную поддержку шаблонов C++. Она также поддерживается популярными библиотеками SSL/TLS, такими как wolfSSL .

  • Версия OS-9, работающая под управлением G-Windows Стива Адамса, присутствует на полупроводниковых пластинных скрубберах, производимых Ontrak Systems / Lam Research. Тысячи таких систем используются сегодня, однако программное обеспечение, работающее на них, датируется 1999 годом, когда была создана последняя версия для решения проблем Y2K.
  • Версии OS-9/68K работали на самых разных платформах семейства 68000 , включая X68000 в Японии, некоторые персональные компьютеры, задуманные их разработчиками как обновления Color Computer (например, MM/1 на базе 68070 и 68340 , и на других компьютерах от Frank Hogg Laboratories, PEP Modular Computers и Delmar Co.). Она также была портирована на Atari ST компанией Recc-o-ware в начале 1990-х годов и распространялась Cumana в Европе. Существует порт для Apple Macintosh на базе 68000, распространяемый Ultrascience. Также предполагается существование порта на Amiga от Digby Tarvin.
  • Caltrans требует использования OS-9/68K в платах контроллеров 2070-1B и 2070-1E, поэтому она применяется во многих североамериканских системах управления светофорами.
  • OS-9/68K также встречается в некоторых других встроенных приложениях, включая генератор символов телевизионного вещания Quanta Delta, все еще находящийся в производстве ScanLine Technologies в Юте. Хотя код интерфейса уровня пользователя в этой системе запускался во время загрузки, существовала скрытая, недокументированная последовательность клавиш, которая предоставляла пользователю приглашение оболочки root в окне прокрутки на мониторе канала редактирования устройства.
  • На рынке встраиваемых систем OS-9 нашла применение в таких устройствах, как синтезаторы Fairlight CMI , робототехника, автомобильные навигационные системы и промышленный стандарт Compact Disc-Interactive ( CD-i ) компании Philips .
  • У цветного компьютера TRS -80 (и его клонов) все еще есть пользователи и ежегодная конференция в Чикаго; по состоянию на 2018 год 27-й ежегодный «последний» чикагский CoCoFEST [5] был запланирован на 21–22 апреля 2018 года. Группа канадских программистов переписала OS-9/6809 Level II для CoCo 3 (с аппаратным обеспечением трансляции адресов) для эффективности и использования собственного режима Hitachi 6309. Сегодняшние серьезные пользователи CoCo теперь обычно заменяют 68B09E в CoCo 3 на Hitachi 63B09E и запускают переписанную версию, называемую NitrOS-9. Эта комбинация на удивление быстра, учитывая, что она работает на явно недорогой 8-битной компьютерной системе.
  • CoCo3 FPGA Гэри Беккера — это синтезированный цветной компьютер TRS-80, работающий под управлением NitrOS-9 на плате разработки Altera DE-1. Ядро ЦП 6809 было разработано Джоном Кентом и в настоящее время работает на частоте 25 МГц.
  • OS-9000/80x86 может работать на компьютерах типа ПК, построенных на базе процессоров Intel x86. OS-9000 также была портирована на PowerPC , MIPS , некоторые версии процессоров ARM компании Advanced RISC Machines и некоторые процессоры семейства Hitachi SH .
  • Устройство воспроизведения звука DigiCart/II Plus работает на OS-9/68K. Это твердотельная замена для проигрывателей картов в стиле радиостанций . Эти устройства используются на радио и в таких местах, как Walt Disney World, где они проигрывают объявления в парках.
  • Немецкий производитель электроники Eltec выпускает платы ЦП модели Eurocom для промышленных целей с конца 1970-х годов, начиная с 6802 и 6809 Eurocom-1 и Eurocom-2, и далее с 68K и производных плат ЦП до сегодняшнего дня. Современные платы могут поставляться с рядом операционных систем, среди которых OS-9.
  • Omron использовала OS-9 в своих панелях HMI серии NS. Однако для своей новой серии NA компания Omron выбрала Windows Embedded Compact 7. Компания Omron указала, что с OS-9 почти все драйверы, например для USB-накопителя, должны быть написаны компанией Omron. [6]
  • OS-9000/SH4 можно найти в загрузчике (внутри контейнера формата KIWI LOADING.KWI) на CD/DVD с картами для старых автомобильных навигационных систем GPS, производимых Matsushita для внутреннего рынка Японии.

Ссылки

  1. Оливер, Роджер; Сэдлер, Крис (октябрь 1982 г.). «Positron 9000». Personal Computer World . стр.  128–129 , 131–134 , 222. Получено 26.04.2024 .
  2. ^ Фоглер, Джон (июнь 1987 г.). «Вперёд к делу: Кумана / Модернизация». A & B Computing . Argus Specialist Publications . стр.  80–86 .
  3. ^ «Заявка Microsoft на OS-9 отклонена». Practical Computing . Июль 1987. С. 18. Получено 16 июля 2024 г.
  4. ^ Смит, Тони (1999-09-03). "Разработчик OS-9 подает в суд на Apple из-за MacOS 9". The Register UK . Situation Publishing . Получено 2014-06-01 .
  5. ^ КоКоФЕСТ
  6. ^ "NA Training Book 2.4" (PDF) . industrial.omron.eu/NA . Архивировано (PDF) из оригинала 2022-10-09 . Получено 2019-03-16 .

Дальнейшее чтение

  • Пол С. Даян (1992). Гуру OS-9 - 1: Факты . Galactic Industrial Limited. ISBN 0-9519228-0-7.
  • Марк А. Хейлперн (1995). OS-9 Primer . Microware Systems Corp. ISBN 0-918035-04-X.
  • Питер Диббл (1994). OS-9 Insights . Microware Systems Corp. ISBN 0-918035-05-8.
  • Микропрограммное обеспечение LP
  • DTR - Доступ к диску OS-9 на ПК
  • Список часто задаваемых вопросов по OS-9
  • Архив информации и программного обеспечения ОС-9 от ООО «РТСИ».
  • Репозиторий инструментов командной строки для работы с образами дисков 6809 OS-9 на SourceForge
  • Среда выполнения для программ пользовательского режима OS-9 на хост-ОС Mac/Win/linux
  • Официальный сайт NitrOS-9 на GitHub
  • Порт OS-9 для Thomson MO5, эмуляция (fr)
  • Запуск OS-9 на цветном компьютере TRS-80 (CoCo)
  • Группа новостей comp.os.os9 через веб-интерфейс групп Google.
  • Официальный блог OS-9
  • Эмулятор 6809 на основе системы SWTPC 6809, работающий под управлением OS9 и UniFLEX, а также FLEX
  • XiBase9 (графический интерфейс)
  • DragonWiki
Retrieved from "https://en.wikipedia.org/w/index.php?title=OS-9&oldid=1272203029"