This article needs additional citations for verification. (September 2021) |
Разработчик |
|
---|---|
Написано в | C , язык ассемблера |
Рабочее состояние | Текущий |
Исходная модель | Закрытый исходный код |
Первоначальный выпуск | 1979 (1979) |
Последний релиз | 6.1 / 14 ноября 2017 г. (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 позволяет нескольким независимым приложениям выполняться одновременно с помощью переключения задач и средств межпроцессного взаимодействия. Все программы OS-9 запускаются как процессы, содержащие по крайней мере один облегченный процесс (поток), но могут содержать фактически неограниченное количество потоков. Внутри процесса эти облегченные процессы совместно используют память, пути ввода-вывода и другие ресурсы в соответствии со спецификацией потоков POSIX и API. OS-9 планирует потоки, используя алгоритм упреждающего планирования с фиксированным приоритетом с циклическим планированием в пределах каждого приоритета. Поддерживается квантование времени. Уровни приоритета можно разделить на диапазон, который поддерживает старение , и диапазон с более высоким приоритетом, который использует строгое планирование приоритетов. Каждый процесс может получить доступ к любому системному ресурсу, выполнив соответствующий запрос на обслуживание OS-9. В каждой точке планирования OS-9 сравнивает приоритет потока во главе активной очереди с приоритетом текущего потока. Он переключается на поток в активной очереди, если его приоритет выше приоритета текущего процесса. Старение искусственно увеличивает эффективный приоритет потоков в активной очереди с течением времени. В определенные интервалы времени слайсинг возвращает текущий поток в активную очередь позади других потоков с тем же приоритетом.
Следующий список команд поддерживается оболочкой OS-9.
Встроенные команды оболочки
Утилиты для функций операционной системы
Утилиты управления системой
Общие коммунальные услуги
Понятие процессов и путей ввода-вывода в 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 .