Разработчик | Microware куплена Radisys в 2001 году (с 2013 года принадлежит Microware LP ) |
---|---|
Написано в | C , язык ассемблера |
Рабочее состояние | Текущий |
Исходная модель | Закрытый источник |
Начальная версия | 1979 |
Последний релиз | 6.1 / 14 ноября 2017 г . |
Маркетинговая цель | высокопроизводительное программное обеспечение с высокой доступностью в реальном времени для современной промышленной автоматизации и управления, медицинского оборудования, аэрокосмических и транспортных систем |
Доступно в | английский |
Платформы | Motorola 6809 , процессоры Motorola 680x0 , ColdFire , SuperH , ARM / XScale , MIPS , PowerPC , архитектура Intel x86 |
Тип ядра | Ядро реального времени |
Пользовательский интерфейс по умолчанию | CLI во всех версиях, некоторые платформы поддерживают графический интерфейс |
Лицензия | Проприетарный |
Официальный сайт | www |
OS-9 представляет собой семейство в реальном времени , основанная на процессах , многозадачности , многопользовательские операционные системы , разработанные в 1980 - х годах, первоначально Microware Systems Corporation для Motorola 6809 микропроцессора . Он был куплен Radisys Corp в 2001 году и снова выкуплен в 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 («Уровень два») использует преимущества аппаратного обеспечения отображения памяти, поддерживает до 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 (и позже)В любом случае все MPU напрямую поддерживают гораздо больше 1 МБ памяти.
Как следствие ранних широко распространенных проектных решений, использующих преимущества легко используемых возможностей реентерабельного объектного кода процессора 6809, программы, предназначенные для OS-9, должны быть реентерабельными; компиляторы автоматически создают реентерабельный код, а ассемблеры для OS-9 предлагают значительную поддержку для него. OS-9 также использует независимый от позиции коди данные, потому что 6809 также поддерживает это напрямую; компиляторы и ассемблеры поддерживают независимость позиции. Ядро OS-9 загружает программы (включая общий код) и распределяет данные там, где на карте памяти доступно достаточно свободного места. Это позволяет размещать всю ОС и все приложения в ПЗУ или флэш-памяти и упрощает требования к управлению памятью, когда программы загружаются в ОЗУ и запускаются. Все программы, драйверы устройств и менеджеры ввода-вывода под OS-9 являются «модулями» и могут динамически загружаться и выгружаться (в зависимости от количества ссылок) по мере необходимости.
OS-9/6809 работает на системах Motorola EXORbus с использованием систем Motorola 6809 , SS-50 Bus и 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 было возможно иметь более одного интерактивного пользователя, работающего одновременно (например, один на клавиатуре консоли, другой в фоновом режиме и, возможно, третий интерактивно через последовательное соединение), а также несколько других неинтерактивных процессов. Вторая реализация процессора для BBC Micro была произведена Cumana . Он включал в себя встроенную оперативную память, интерфейс жесткого диска SCSI и процессор MC68008 . [1]
OS-9 также была перенесена на Commodore SP-9000 или SuperPET, у которого был 6809 в дополнение к 6502 базовой модели 8032, а также на 64 КБ. Группа пользователей ПЭТ Торонто спонсировала проект HW / SW, который включал дочернюю плату с MMU, а также распределительные диски OS-9. С двумя процессорами, 96 КБ, экраном 25 × 80, последовательным, параллельным портами и портами IEEE-488, а также множеством периферийных устройств, это была одна из самых функциональных систем OS-9.
На таких компьютерах, как SS-50, машинах с большим объемом памяти (например, от Gimix, Southwest Technical Products и т. Д.) И контроллерах ввода-вывода, которые не загружали ЦП, как CoCo, часто использовалось несколько пользователей. , даже с 64 КБ ОЗУ (т. е. первого уровня). Благодаря аппаратному обеспечению, поддерживающему схемы управления памятью (то есть трансляции адресов) и OS-9 Level 2, использование графического интерфейса было успешно рутинным, даже на CoCo с минимальными ресурсами. Это было за несколько лет до успешных графических интерфейсов на 16-битных машинах класса IBM PC и за много лет до того, как правильно работали многозадачные, многопользовательские операционные системы с контролируемым доступом на машинах типа IBM PC или на любых машинах Apple. [ необходима цитата ]
Многопользовательские и многозадачные возможности OS-9 позволяют использовать ее в качестве интерактивной компьютерной системы общего назначения. Для него было написано множество сторонних интерактивных приложений, таких как электронная таблица Dynacalc , средство форматирования текста VED и текстовые процессоры Stylograph и Screditor-3 WYSIWYG . TSC «s Nroff Эмуляция форматировщик была портирована на OS-9 по Microway, а также.
В середине 1980-х OS-9 была выбрана для операционной системы CD-i . Примерно в то же время Microsoft обратилась к Microware с просьбой о приобретении компании, прежде всего потому, что ее привлекла CD-RTOS, операционная система CD-i. Переговоры провалились, и сделка не состоялась; Microware решила остаться независимой.
В конце 1980-х Microware выпустила OS-9000, более портативную версию операционной системы. Подавляющее большинство ядра операционной системы было переписано на C, оставив несколько аппаратно-зависимых частей на языке ассемблера. Было добавлено несколько «более продвинутых функций», таких как древовидное пространство имен модулей ядра. OS-9000 изначально была перенесена на процессоры семейства Motorola 680x0 , Intel 80386 и PowerPC . OS-9000 / 680x0 потерпела неудачу с маркетингом и была снята с производства очень быстро, вероятно, потому, что немногие клиенты хотели попробовать более мощную и медленную операционную систему вместо существующей, проверенной временем стабильности OS-9 / 680x0. Что семейство Motorola 680x0 и VMEСрок службы поставщиков систем для бортовых компьютеров подходил к концу, возможно, это повлияло на непопулярность OS-9000 / 680x0. Позже Microware начала называть все свои операционные системы - включая то, что изначально называлось OS-9000 - просто OS-9, и начала смещать свой бизнес-интерес в сторону рынков портативных потребительских устройств, таких как мобильные телефоны, автомобильная навигация и мультимедиа.
В конце 1980-х - начале 1990-х годов компьютеры-генераторы символов, используемые в Broadcast Systems, широко использовали OS-9 и OS-9000. Ныне несуществующая Pesa Electronica использовала OS-9 в своих CG, таких как CG 4722 и CG4733.
Конфликты имен и судебные решения [ править ]
В 1999 году, через девятнадцать лет после первого выпуска OS-9, Apple Computer выпустила Mac OS 9 . В том же году Microware подала в суд на Apple за нарушение прав на товарный знак [2], хотя судья постановил, что вероятность путаницы между ними невелика. Некоторые пользователи Macintosh, которые не знают о менее известной OS-9 Microware, отправили сообщения в группу новостей comp.os.os9, не понимая, что такое OS-9.
В 2001 году RadiSys приобрела Microware, чтобы получить ресурсы сетевого процессора Intel IXP-1200 . Это приобретение обеспечило Microware капиталом и позволило Microware продолжить разработку и поддержку OS-9.
21 февраля 2013 года Microware LP (партнерство, образованное Freestation of Japan, Microsys Electronics из Германии и RTSI LLC из США) объявила о подписании Соглашения о покупке активов для покупки прав на имена Microware, OS-9 и все активы. от RadiSys .
Технология [ править ]
Современный и архаичный дизайн [ править ]
OS-9 (особенно версия 68k и последующие) явно отличается от предыдущего поколения встраиваемых операционных систем во многих аспектах.
- Работает на 8-битных, 16-битных и 32-битных процессорах .
- Четкое разделение между пользовательским режимом и режимом супервизора (ядра).
- Динамическое использование индивидуально и отдельно созданных программных компонентов (исполняемых программных образов и модулей ядра ) вместо статически связанного единого монолитного образа.
- Unix-подобная модель пространства имен процессов (не модель памяти ) и программа пользовательской оболочки.
- Четкое разделение между аппаратно-независимыми (например, файловыми менеджерами) и аппаратно-зависимыми (например, драйверами устройств ) слоями.
По сравнению с более современными операционными системами.
- Ядро полностью написано на ассемблере (только версия 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, Random Block (дисковые устройства)
- SBF, последовательный блок (ленточные устройства)
- Устройства NFM, NULL (USB и другие устройства)
- MFM, Сообщение
- Файлы PCF, PC FAT
- PIPEMAN, Pipe менеджер
- Каталоги модулей памяти Modman
- SSM - Безопасность системы (обработка MMU)
- Cache - Управление кешем,
- VectXXX - обработчик векторов / PIC
- FPU - Эмуляция с плавающей запятой
- Align - Обработчик ошибок выравнивания адресов
Команды [ править ]
Следующий список команд поддерживается оболочкой OS-9.
Встроенные команды оболочки
- chd
- chx
- убийство
- ш
- ждать
- setenv
- unsetenv
- Setpr
- выйти
- профиль
- бывший
- -e
- -ne
- -п
- -p = <str>
- -np
- -t
- -nt
- -v
- -nv
- -Икс
- -nx
Утилиты для функций операционной системы
- attr
- копировать
- датировать
- деиниз
- дель
- Дельдир
- dsave
- свалка
- эхо
- fixmod
- бесплатно
- Идентификатор
- iniz
- связь
- список
- нагрузка
- Макдир
- mdir
- слить
- mfree
- pd
- пр
- printenv
- прока
- переименовать
- спасти
- оболочка
- время
- спать
- тройник
- tmode
- трогать
- разорвать связь
Утилиты управления системой
- резервный
- dcheck
- разработчики
- формат
- Frestore
- fsave
- irqs
- авторизоваться
- os9gen
- цмон
- xmode
Общие коммунальные услуги
- бинекс
- строить
- cfp
- cmp
- код
- компресс
- считать
- EDT
- exbin
- расширять
- grep
- помощь
- делать
- qsort
- tr
- umacs
Сравнения с 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 / non-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 годом, когда была создана последняя версия для решения проблем 2000 года.
- Версии OS-9 / 68K работали на широком спектре платформ семейства 68000 , включая Sharp 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 от Дигби Тарвина.
- OS-9 / 68K санкционирована Caltrans для использования в платах контроллеров 2070-1B и 2070-1E, и поэтому в конечном итоге используется для запуска многих североамериканских систем управления дорожными сигналами.
- OS-9 / 68K также присутствует в некоторых других встроенных приложениях, включая генератор символов телевизионного вещания Quanta Delta, который все еще находится в производстве ScanLine Technologies в Юте. Хотя код интерфейса на уровне пользователя в этой системе запускался во время загрузки, была скрытая, недокументированная последовательность клавиатуры, которая предоставляла пользователю приглашение оболочки root в окне прокрутки на мониторе канала редактирования устройства.
- На рынке встраиваемых систем, где OS-9 нашла применение в таких устройствах, как синтезаторы Fairlight CMI , робототехника, автомобильные навигационные системы и отраслевой стандарт Philips Compact Disc-Interactive ( CD-i ).
- В TRS-80 Color Computer (и клоны) по- прежнему имеет пользователей и ежегодную конференцию в Чикаго; в 2018 году 27-й ежегодный «Последний» Чикагский CoCoFEST [3] был запланирован на 21-22 апреля 2018 года. Группа канадских программистов переписала OS-9/6809 Level II для CoCo 3 (с аппаратным обеспечением для преобразования адресов) для повышения эффективности, и воспользоваться родным режимом в Hitachi 6309 . Сегодняшние серьезные пользователи CoCo обычно заменяют 68B09E в CoCo 3 на Hitachi 63B09E и запускают перезапись под названием NitrOS9 . Комбинация удивительно быстрая, учитывая, что она работает на явно недорогой 8-битной компьютерной системе.
- CoCo3 FPGA Гэри Беккера - это синтезированный цветной компьютер TRS-80, работающий под управлением NitrOS9 на плате разработки Altera DE-1. Ядро процессора 6809 было разработано Джоном Кентом и в настоящее время работает на частоте 25 МГц.
- OS-9000 / 80x86 может работать на машинах типа ПК, построенных на процессорах Intel x86. OS-9000 также был портирован на PowerPC , MIPS , некоторые версии Advanced RISC Машины " ARM процессора, и некоторые из семейства Hitachi SH процессоров.
- Устройство воспроизведения звука DigiCart / II Plus работает под управлением OS-9 / 68K. Это твердотельная замена для тележек в стиле радиостанций . Эти устройства используются на радио и в таких местах, как «Мир Уолта Диснея», где звучат объявления парков.
- Немецкий производитель электроники 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. [4]
Ссылки [ править ]
- ↑ Фоглер, Джон (июнь 1987). «К делу: Кумана / Апгрейд». A & B Computing . Публикации специалистов Argus . С. 80–86.
- ^ Смит, Тони (1999-09-03). «Разработчик OS-9 подает в суд на Apple из-за MacOS 9» . Регистр Великобритании . Публикация ситуации . Проверено 1 июня 2014 .
- ^ CoCoFEST
- ^ "Учебное пособие АН 2.4" (PDF) . industrial.omron.eu/NA . Проверено 16 марта 2019 .
Дальнейшее чтение [ править ]
- Пол С. Даян (1992). Гуру OS-9 - 1: Факты . Галактик Индастриал Лимитед. ISBN 0-9519228-0-7.
- Марк А. Хейлперн (1995). ОС-9 Грунтовка . ISBN корпорации Microware Systems 0-918035-04-X.
- Питер Диббл (1994). OS-9 Insights . ISBN корпорации Microware Systems 0-918035-05-8.
Внешние ссылки [ править ]
- Microware LP
- DTR - доступ к диску OS-9 на ПК
- Список часто задаваемых вопросов OS-9
- Архив информации и ПО ОС-9 от ООО «РТСИ».
- OS-9 в Керли
- Репозиторий инструментов командной строки для управления образами дисков 6809 OS-9 на SourceForge
- Среда выполнения программ пользовательского режима OS-9 в ОС Mac / Win / linux
- Официальный сайт NitrOS-9 , на SourceForge
- Порт OS-9 для Thomson MO5 , эмуляция (fr)
- Запуск OS-9 на цветном компьютере TRS-80 (CoCo)
- comp.os.os9 через веб-интерфейс групп Google.
- Официальный блог OS-9
- Эмулятор 6809 на базе системы SWTPC 6809, на которой работают OS9 и UniFLEX, а также FLEX.
- XiBase9 (графический интерфейс)
- DragonWiki