Главная Пресс-центр Статьи и публикации OS-9: Архитектура, особенности, перспективы, Мир Компьютерной Автоматизации: ВКС, 1995/3

OS-9: Архитектура, особенности, перспективы, Мир Компьютерной Автоматизации: ВКС, 1995/3

А. В. ПРОНИН, АО РТСофт, Москва

OS-9 — одна из наиболее традиционных операционных систем реального времени. Ее история начинается в 70-х годах. Первая версия системы была написана фирмой Microware Systems Corp. еще для процессора Motorola 6809. В дальнейшем основные идеи, заложенные в систему, стали опорными точками при создании многих известных сейчас систем этого класса и послужили исходным материалом при создании стандарта POSIX 1003.

 
  С самого рождения и в течение долгого времени OS-9 традиционно классифицировалась как операционная система «мягкого» реального времени. Однако развитие системы привело к оформлению ее в виде семейства операционных систем, которое охватывает весь спектр типов систем традиционной классификации.

 
  Аналогичная метаморфоза произошла и с точки зрения поддержки аппаратных платформ. Современное состояние системы позволяет говорить о потенциальной поддержке любых платформ при уже реально существующей поддержке основных.

 
  Эти обстоятельства позволяют поставить OS-9 в ряд ведущих операционных систем и справедливо пробуждают к ней постоянно растущий интерес пользователей. Ниже коротко остановимся на наиболее интересных особенностях системы.

 

Архитектура

  Открытость  
  Основным принципом построения системы является максимальная открытость структур и функций.

 
  Системные таблицы и области памяти функционально строго специфицированы и не меняют своего назначения в процессе работы. Доступ к ним осуществляется стандартными системными средствами. Прикладной процесс в любой момент времени может вмешаться, практически, в любой системный алгоритм, приспосабливая вычислительную среду для нужд прикладного проекта.

 
  Открытость системы достигается за счет последовательного модульного построения. Все программные коды и данные том числе системные) на этапе исполнения могут быть сосредоточены в модулях памяти (областях памяти, снабженных заголовками). Любой системный ресурс полностью описывается своим модулем. Типы модулей соответствуют типам ресурсов:

 
 
 
  Все модули памяти, за исключением самого ядра и модуля данных для него, могут быть добавлены в систему или удалены из нее за ненадобностью в любой момент времени.

 
  В результате, операционная среда может быть легко переконфигурирована в процессе исполнения приложения. «Время жизни» и описание почти любого системного ресурса определяется динамически и не связывает пользователя заранее заданными жесткими рамками. Такой подход к системе органично дополняет понятие реального времени, открывая совершенно новые возможности при проектировании промышленных управляющих систем.

 
  Реентерабельность и перемещаемость исполняемого кода  
  Принципиальным требованием системы является реентерабельность и перемещаемость программного кода. Эти две характеристики кода поддерживаются всеми компиляторами системы автоматически и не требуют от программиста никаких дополнительных усилий.

 
  Реентерабельность достигается за счет сосредоточения постоянных частей кода в модулях памяти, в то время как области глобальных переменных распределяются системой для каждого процесса в момент порождения. Все переменные части кода изначально разделены для задач на уровне системы. Реентерабельность кода естественным образом приводит к аппарату резидентных динамических библиотек подпрограмм, которые могут использоваться всеми процессами одновременно.

 
  Перемещаемость подразумевает создание компиляторами кода, не содержащего абсолютных адресов. Любая программа может быть загружена и исполнена с любого абсолютного адреса, и эта возможность делает тривиальной задачу размещения операционной системы (вместе с приложениями) в ПЗУ.

 
  Масштабирование  
  Развитие операционной системы постепенно привело к трансформации ядра системы в семейство ядер. Традиционное деление на системы «мягкого» и «жесткого» реального времени потеряло свою актуальность. Вместо этого появилось понятие масштабирования ядра.

 
  Смысл масштабирования вытекает из необходимости разрешить изначальное противоречие между желанием обеспечить максимальную реактивность системы реального времени и желанием в то же время предоставить пользователю разумный сервис. Опыт показал, что попытка разрешить это противоречие внутри одного ядра приводит к проигрышным решениям.

 
  Две существенно различные задачи — обеспечение детерминизма и реактивности во время исполнения приложения и построение профессиональной среды в период разработки — лучше всего решаются существенно различными средствами. Ядро реального времени сознательно отказывается от поддержки среды разработки, сосредотачиваясь на временных критериях. Вся же нагрузка по предоставлению сервиса ложится на совершенно независимую часть системы, работающую в максимально приспособленной для этого операционной среде, не имеющей отношения к реальному времени.

 
  С другой стороны, подобный подход страдает тем недостатком, что предполагает обязательное наличие какой-то внешней операционной системы. Мало того, что это на порядок удорожает прикладной проект, — это еще сильно затрудняет динамику перехода от разработки к исполнению и, в особенности, наоборот — в отдельных ситуациях внесение даже мелких изменений в уже работающую систему исполнения практически невозможно.

 
  Вместе с тем для большинства прикладных проектов вполне приемлемо некоторое ухудшение временных характеристик системы взамен минимального сервиса в рамках реального времени, который позволит разрабатывать приложение в той же среде, где оно будет исполняться.

 
  Система OS-9 явилась одной из первых систем, которая последовательно реализовала принцип масштабирования ядер, то есть построения семейства ядер с различным набором предоставляемых функций. В последней версии системы появилось специально спроектированное для встроенных приложений Atomic-ядро.

 
  Данный вариант ядра предельно облегчен с точки зрения наличия сервисных функций. В нем полностью отсутствуют поддержка многопользовательской среды, среды отладки, функции ввода/вывода. В результате объем ядра уменьшился, а реактивность увеличилась на 15%. (Например, на процессоре MC68040 с частотой 25 Мгц время реакции на прерывания составляет 3 мкс, что нисколько не уступает традиционно «жестким» системам реального времени).

 
  С другой стороны, для поддержки локализованной (native) системы разработки по-прежнему поддерживается Standard-ядро, осуществляющее все перечисленные выше функции. Следует отметить, что для некоторых приложений предоставляемый этим ядром сервис не является избыточным и может быть полезно применен во время исполнения приложения.

 
  Масштабирование системы не ограничивается масштабированием ее ядра. Этому способствует высокая степень модульности системы.

 
  Благодаря модульности процесс масштабирования продолжается на этапе формирования конфигурации поставляемой системы. Каждый пользователь может выбрать для себя поддержку именно того набора системных функций, который ему требуется. При этом на поддержку невостребованных функций не будут расходоваться системные ресурсы.

 
  Спектр применения различных системных конфигураций чрезвычайно широк и может быть представлен следующими базовыми моделями:

 
 
  • встроенная система жесткого реального времени на базе Atomic-ядра с драйверами, управляемыми непосредственно из ядра;
 
 
  • встроенная система жесткого реального времени на базе Atomic-ядра с загрузкой из ПЗУ или из сети по протоколу BootP (TCP/IP), включает поддержку SLIP/CSLIP, может использоваться для управления Slave-контроллерами в многопроцессорной VME-среде;
 
 
  • система на базе ПЗУ со Standard-ядром и полной поддержкой ввода/вывода (IOMAN), включает простейшие файловые менеджеры и командный интерпретатор;
 
 
  • эта же модель с поддержкой функций узла сети (возможна сетевая загрузка);
 
 
  • дисковая операционная система с полным сервисом и поддержкой разнообразных внешних накопителей (это минимальная конфигурация для работы локализованной системы разработки);
 
  workstation-модель — та же дисковая операционная система с поддержкой сети и распределенной файловой системы (N.F.S.).

 
  Внесистемная отладка  
  Частным и очень полезным проявлением архитектурной открытости является средство внесистемной отладки системных модулей RomBug.

 
  Обычно RomBug размешается в ПЗУ, что делает его полностью независимым от функционирования системы. В любом случае RomBug -совершенно самостоятельный программный продукт, не требующий для функционирования никаких системных структур. Вместе с тем отладчик понимает форматы системных модулей.

 
  Последнее обстоятельство делает это средство незаменимым для отладки алгоритмов, действующих на грани дозволенного системой, так как дает возможность поставить диагноз и даже иногда «реанимировать» отдельные части или всю систему в целом после ее «гибели».

 
  Наиболее часто RomBug используется для портации системы на нестандартное оборудование. Для этого случая фирмой Microware разработана целая технология отладки системных загрузчиков с использованием RomBug.

 

Система исполнения

  Любая система исполнения реального времени стандартно делится на две части — функции, представленные собственно системной частью, и функции, реализованные пользователем. Вторая часть, хотя и определяется первой, но никак не может быть объективной характеристикой системы.

 
  Таким образом, система исполнения OS-9 сводится к ядру и модулям ввода/вывода. По составу функций она является типичной системой реального времени. Выделяются следующие группы функций:

 
 
  • управление задачами;
 
 
  • управление памятью;
 
 
  • межзадачный обмен;
 
 
  • обработка исключений процессора;
 
 
  • управление внешними устройствами;
 
 
  • поддержка среды отладки;
 
 
  • поддержка многопользовательской среды.
 
 
 
  Функции Atomic-ядра

 
  Управление задачами  
  Центральным местом любой системы реального времени является алгоритм управления задачами. Алгоритм, реализованный в рамках системы OS-9, отличается особой гибкостью и эффективностью. Основной идеей алгоритма является предоставление пользователю возможности динамически выбирать тип алгоритма в зависимости от приложения и складывающейся ситуации.

 
  В результате манипулирования системными константами или изменения системного контекста в каждый момент времени возможен выбор одного из трех типов управления задачами:

 
 
  • однозадачный режим — выделенный процесс монополизирует все системные ресурсы;
 
 
  • круговая (round-robin) диспетчеризация — системные ресурсы разделяются на равных несколькими процессами с самым большим приоритетом;
 
 
  • диспетчеризация на приоритетной базе (priority-based) — все процессы разделяют ресурсы пропорционально приоритетам.
 
  Гибкая система диспетчеризации дополнена гибкой системой управления квантом времени, разделяющим моменты диспетчеризации, что позволяет при правильном пользовании существенно уменьшать общие системные издержки.

 
  Управление памятью  
  Управление памятью в системе OS-9 является одним из самых совершенных среди систем ее класса. В основе лежит процесс «раскрашивания» памяти, который производится пользователем на этапе конфигурирования системы.

 
  «Раскрашивание» состоит в приписывании каждому блоку памяти определенного «цвета» и приоритета. Приоритет позволяет системе распределять в первую очередь более быструю память. «Цвет» служит для того, чтобы выделять области памяти специальных типов, которые должны распределяться только по требованию пользователя.

 
  Эти принципы распределения памяти хорошо дополняют принцип открытости аппаратной конфигурации.

 
  Кроме того, пользователь имеет возможность выбрать один из двух алгоритмов поиска свободной памяти при распределении. Первый алгоритм исходит из наиболее плотной укладки свободных блоков и таким образом повышает коэффициент использования памяти. Второй — заранее сортирует свободные блоки по размеру, что существенно сокращает время поиска подходящего блока.

 
  Межзадачный обмен  
  Способы межзадачного обмена в основном соответствуют стандарту на переносимые операционные системы POSIX 1003. В настоящее время система поддерживает следующие способы:

 
 
  • порождение и сигнализация о завершении процесса с отслеживанием родословной' процесса;
 
 
  • межзадачные сигналы;
 
 
  • программные каналы том числе общесистемные);
 
 
  • механизм событий;
 
 
  • «будильники»;
 
 
  • семафоры;
 
 
  • разделяемые модули памяти;
 
 
  • различные типы файловых систем на внешних носителях.
 
  Обработка исключительных ситуаций  
  Система предоставляет простой механизм управления обработкой исключительных ситуаций (исключений) процессора. Все исключения делятся естественным образом на несколько групп, каждая из которых управляется по-своему.

 
  Наиболее индивидуально обрабатываются аппаратные исключения (такие, как ошибка шины, неверный адрес, нарушение привилегированности и т.д.). Каждый процесс имеет возможность динамически установить собственный обработчик такого исключения, не требующий никаких дополнительных системных структур.

 
  Программные ловушки также обрабатываются каждым процессом индивидуально, но их обработчики сосредоточены в специальных программных модулях, что позволяет создавать универсальные алгоритмы, используемые группой задач, без дополнительных затрат на отладку и экономя память.

 
  Обработчики внешних прерываний объединяются в приоритетные списки, общие для всей системы. Специальные соглашения позволяют каждому обработчику распознавать и обрабатывать «свое» прерывание. Обычно такие обработчики располагаются внутри специальных модулей памяти и используются асинхронно непосредственно ядром системы.

 
  Особым видом обработки исключения является обработка системного вызова. Это, ко всему прочему, означает, что обработка вызова может быть динамически изменена, а система может быть дополнена новыми вызовами.

 
  Управление внешними устройствами  
  Управление внешними устройствами в системе происходит на нескольких уровнях.

 
  Самый верхний уровень представлен менеджером ввода/вывода (IOMAN). Это системный модуль, который содержит обработчики системных вызовов, связанных с вводом/выводом, и производит размещение в памяти необходимых структур. Интерфейс IOMAN к ядру специфицирован, поэтому пользователь может предложить свой модуль вместо стандартного.

 
  Средний уровень состоит из файловых менеджеров, ответственных за управление логическими потоками данных. На этом уровне определяется файловая структура. Таким образом, для поддержки любой нестандартной файловой системы достаточно включить в систему определенный программный модуль, что можно сделать динамически обычными системными средствами.

 
  Вся работа с физическими регистрами сосредоточена на нижнем уровне в драйверах устройств. Здесь же, как правило, происходит первичная буферизация.

 
  Интерфейс между уровнями жестко специфицирован. Таким образом достигается полная независимость разработчиков каждого уровня друг от друга.

 
  Еще одно преимущество многоуровневого строения системы ввода/вывода состоит в том, что поддержка любого устройства и всей системы в целом в любой момент может быть добавлена или удалена из системы. Избавляясь от излишних на текущий момент функций, можно в значительной степени экономить системные ресурсы. Причем удаление более верхнего уровня не означает, что удаляются все нижние. Так, например, драйвер может вызываться прямо из ядра.

 
  Дополнительные функции Standard-ядра

 
  Поддержка среды отладки

 
  Создание среды отладки в рамках системы OS-9 заключается в предоставлении одному процессу возможностей пошагового исполнения другого процесса с полным контролем за глобальными переменными второго процесса. Пользовательский интерфейс со средой представлен стандартными системными вызовами.

 
  Поддержка многопользовательской среды  
  Многопользовательская среда создается за счет распределения системных ресурсов между их владельцами.

 
  В число распределяемых ресурсов входят процессы, модули и блоки памяти, события, части файловой системы. Доступ к каждому ресурсу регулируется владельцем, что позволяет повысить устойчивость системы при некорректной работе прикладных процессов и гарантирует доступ к ресурсам в критические моменты времени.

 

Системы разработки

  Как уже отмечалось выше, система OS-9 перекрывает весь традиционный спектр систем разработки — от локализованных, исполняемых в той же аппаратной конфигурации, что и приложение, до удаленных, использующих принципиально отличные операционные среды.

 
  Локализованная система разработки  
  Локализованная система разработки основана на Standard-ядре и функционирует в той же вычислительной среде, что и разрабатываемое приложение. Достоинством локализованной системы разработки является простота (следовательно, невысокая стоимость), мгновенный переход от разработки к исполнению и наоборот, дополнительные возможности управления исполнением.

 
  Элементами описываемой системы разработки служат компиляторы, отладчики, текстовые редакторы, средства поддержки проектов, утилиты управления файловой системой, утилиты управления процессами, статистические утилиты, средства поддержки внешних накопителей.

 
  Компиляторы  
  Фирма-разработчик операционной системы Microware Systems Corp. (США) поставляет и поддерживает компиляторы для наиболее распространенных языков высокого уровня: С, C++, FORTRAN, Pascal, BASIC. Все эти компиляторы поддерживают стандарт ANSI.

 
  Наибольший интерес в этой области представляет новое поколение компиляторов, первый из которых Ultra-C. Новое семейство отличается современной технологией получения исполняемого кода, когда на определенной стадии компиляции получается так называемый «промежуточный код» (I-Code). Этот формат представления программного алгоритма специально спроектирован для осуществления оптимизации кода еще на доассемблерной (алгоритмической) стадии.

 
  I-Code может быть получен из исходного кода, написанного на любом языке высокого уровня. После этого происходит сборка и глобальная алгоритмическая оптимизация полученных модулей. Далее прооптимизированный код транслируется в ассемблерный и еще раз локально оптимизируется обычным ассемблерным оптимизатором. Уровень оптимизации и соотношение между оптимизацией «по времени» и «по объему» задается опциями компилятора.

 
  При максимальной оптимизации по времени исполнения получающийся код в 1,5-2,5 раза эффективнее полученного обычным компилятором.

 
  Благодаря широкому распространению системы, базовые и прикладные средства для нее пишут десятки крупных разработчиков программного обеспечения. В каталоге программных продуктов для OS-9 можно найти, наряду с уже упомянутыми, компиляторы Forth, Ada, PROLOG, LISP, Modula и другие, менее распространенные.

 
 
 
  Отладчики

 
  Система предоставляет три вида отладчиков: пользовательский символьный, системный символьный и пользовательский уровня исходного кода.

 
  Символьный пользовательский отладчик ориентирован на отладку в кодах ассемблера с использованием таблицы глобально определенных символов и предназначен для отладки несложных, не затрагивающих систему, приложений. Его достоинства — простота использования и «незаметность» для системы.

 
  Системный отладчик позволяет отлаживать непосредственную работу с системными ресурсами и обработку исключительных состояний и предназначен прежде всего для системных программистов.

 
  Каждый отладчик уровня исходного кода ориентирован на определенный язык высокого уровня и незаменим при отладке больших, разветвленных прикладных проектов. Фирма-разработчик поставляет и поддерживает отладчик только для языка С.

 
  Текстовые редакторы

 
  Разнообразие текстовых редакторов, работающих под системой, не поддается описанию. По крайней мере, каждый, кто придет в систему из ОС UNIX, почти наверняка сможет продолжить работу в привычной для себя среде редактирования.

 
  Однако стандартно в системе поддерживается только один полноценный экранный редактор — микро-EMACS. Это довольно распространенный в мире редактор со стандартными функциями вплоть до поддержки многооконности. От своих собратьев он отличается только другими командными последовательностями.

 
  К услугам разработчиков большой выбор двоичных редакторов, большинство из которых распространяются как freeware.

 
  Средства поддержки проектов

 
  Простейшим средством поддержки проектов в системе является утилита make. Она предназначена для создания командных процедур сборки программных проектов и по своим возможностям практически не отличается от аналогичной UNIX-утилиты.

 
  Более продвинутые средства представлены пакетом поддержки версий проекта POLYTRON.

 
  Данный пакет состоит из нескольких утилит, позволяющих группе разработчиков вести независимую разработку частей проекта, автоматически разветвляя, сливая и фиксируя новые версии.

 
  Кроме того, в состав пакета входит утилита polymake со значительно более богатым синтаксисом, нежели стандартный make. Грамотно написанные командные файлы для polymake позволяют разработчикам на протяжении всей разработки только перечислять файлы с исходными текстами, не вспоминая об алгоритме сборки.

 
  Утилиты

 
  Утилиты разработчика служат для организации процесса разработки и контроля за вычислительной средой. В частности, они позволяют организовать разработку на фоне исполнения уже готовых частей прикладного проекта.

 
  Особое место среди утилит занимает командный интерпретатор. Новый интерпретатор Mshell фирмы Microware снимает с оператора большую часть рутинной работы за клавиатурой, используя большое число управляющих последовательностей. Си-подобный командный синтаксис интерпретатора позволяет на высоком уровне программировать часто используемые командные процедуры. По отдельным параметрам он превосходит известный UNIX-интерпретатор csh, ни в чем ему не уступая.

 
  Среди других командных интерпретаторов стоит отметить интерпретатор с экранным интерфейсом zsh.

 

Удаленные (внешние) системы разработки

  Профессиональная графическая среда разработки

 
  На уровне целевой системы «жесткое» реальное время в OS-9 представлено уже упоминавшимся Atomic-ядром. Это ядро способно полностью удовлетворить приложение на этапе исполнения. Однако разработка приложения нуждается во внешней поддержке. Подобная архитектура имеет смысл только тогда, когда внешняя система разработки исполняется в мощной графической среде и пользуется всеми ее ресурсами.

 
  В прошлом году была завершена разработка подобной инструментальной среды. Речь идет о профессиональной графической среде FasTrak.

 
  FasTrak поддерживает все функции оболочек подобного типа:

 
 
  • выбор текстового редактора;
 
 
  • кросс-компиляция;
 
 
  • средства удаленной отладки;
 
 
  • профилирование процессов в целевой системе;
 
 
  • средства поддержки проекта.
 
  В качестве операционной среды для FasTrak можно выбрать одну из мощнейших графических сред:

 
 
  • OS Macintosh;
 
 
  • MS Windows;
 
 
  • UNIX Sun 3, Sun 4 или HP 9000 Series 700.
 
  Коммуникации с целевой системой и смежными системами разработки осуществляются с использованием Internet-протоколов, поддержка которых на время разработки добавляется к целевой системе. Характерной особенностью FasTrak является возможность вести сетевую отладку одновременно нескольких узлов аппаратно-программного комплекса.

 
  Связка Atomic-ядро — FasTrak пo реактивности периода исполнения и мощности поддержки разработок ни в чем не уступает аналогичным парам современных систем реального времени, традиционно считающихся системами «жесткого» времени.

 
  Кросс-системы

 
  Более простые удаленные системы разработки представляют собой традиционные кросс-системы.

 
  Стандартный состав кросс-системы: кросскомпилятор в инструментальной среде, средства коммуникации и загрузки в целевую систему, средства отладки со стороны целевой системы.

 
  Именно такой состав имеют кросс-системы для OS-9. Здесь мы упомянем две наиболее распространенные из них.

 
  PC-Bridge кросс-система для исполнения под управлением DOS на PC. Данная система может исполняться в стандартной PC-конфигурации на любой платформе, начиная с 80286. Связь с целевой системой осуществляется через СОМ-порт с использованием пакета kermit.

 
  UniBridge — кросс-система, исполняющаяся в многопользовательской UNlX-среде. Конкретный состав системы сильно зависит от используемой платформы и разновидности UNIX. Наиболее популярны следующие операционные среды: UNIX Sun3 и UNIX Sun4.

 
 
 

Аппаратные платформы

  Ценность операционной системы во многом определяется количеством аппаратных платформ, которые она поддерживает, и качеством этой поддержки.

 
  OS-9 зародилась как операционная система для процессоров фирмы Motorola и почти целиком написана на ассемблере семейства Motorola 68k. Этим объяснялась генетическая сложность ее переноса на другие платформы.

 
  Однако этим же объясняется ее необыкновенная эффективность на родственных процессорах. Как факт можно констатировать, что в настоящее время система не имеет себе равных на платформах MC68020 и MC68030.

 
  Усилия фирмы-разработчика с определенного времени и до сих пор были сосредоточены на двух направлениях: во-первых, максимальная адаптация ядра к конкретному процессору семейства 68k, во-вторых, создание максимально переносимой между платформами системы.

 
  На обоих этих направлениях уже достигнуты ощутимые результаты. Ныне уже существует 7 специально адаптированных ядер, каждое для своего процессора, которые используют особенности платформы максимально эффективно. Спектр ядер охватывает ключевые процессоры в сериях Motorola 680х0 и Motorola 683хх.

 
  На другом направлении значительные успехи появились благодаря двум обстоятельствам: созданию в конце 80-х системы OS-9000 и в начале 90-х нового поколения высокоэффективных компиляторов языка С.

 
  Система OS-9000 по системным алгоритмам и интерфейсам является почти точной копией OS-9. Отличается она только тем, что на 95% написана на языке С. Это сразу же означает высокую степень портабельности на большинство платформ. С другой стороны, новая технология компиляции способна обеспечить эффективность получаемого кода, достойную операционной системы реального времени, и помочь осуществить реальную, а не формальную портацию системы.

 
  Последнее, что осталось сделать фирме и что интенсивно производится, — осуществить абсолютную совместимость кода в системах OS-9 и OS-9000 (для приложений это уже сделано и даже обещан эмулятор для OS-9000, исполняющий загрузочные модули системы OS-9). Таким образом, сейчас уже принято говорить о семействе 0S-9, подразумевая здесь все ядра OS-9 и OS-9000.

 
  Возвращаясь к аппаратным платформам, поддерживаемым этим семейством, можно констатировать, что в настоящее время OS-9, наряду с вышеперечисленными, уже портирована на Intel-семейство процессоров 80386/80486/Pentium. Находятся в завершающей стадии работы по портации системы на семейства PowerPC4xx, 5xx, 6хх.

 
  Не менее важный вывод состоит в том, что современная концепция системы исключает принципиальные трудности при портации на любую другую платформу.

 
 
 

Поддержка внешних устройств

  Разнообразие существующих в мире внешних устройств и интерфейсов к ним исключает возможность их поддержки одной фирмой-разработчиком. В этом смысле важно, насколько просто та или иная операционная система позволяет интегрировать в вычислительную среду новые устройства.

 
  Для того чтобы справиться с этой проблемой, приходится решать две, часто разнесенные во времени и пространстве задачи: управление логическими потоками данных и управление физическими потоками.

 
  На принципиальном уровне для решения этой проблемы OS-9 предоставляет многоуровневую систему управления вводом/выводом. Две упомянутые задачи реально разводятся на системном уровне. За логические потоки отвечают файловые менеджеры, за физические — драйверы устройств. И те и другие специфицированы и доступны для написания и интеграции в систему.

 
  Драйверы по своей природе, естественно, более многообразны и ответственность за их написание чаще приходится брать на себя конечным или, во всяком случае, менее квалифицированным пользователям. Поэтому для их создания в рамках поддержки системы существует специальный инструмент разработки — пакеты разработчиков.

 
  Пакеты разработчиков

 
  Стандартный пакет разработчика, как правило, создается совместно фирмой-разработчиком системы и фирмой-поставщиком конкретной аппаратуры. В пакет входят исходные тексты драйверов всех входящих в конфигурацию устройств, спецификации, примеры, руководства по реконфигурации.

 
  Microware связана OEM-соглашениями практически со всеми крупнейшими поставщиками аппаратуры для промышленных комплексов. Ведущие фирмы в обязательном порядке поставляют свои наиболее популярные конфигурации вместе с пакетами разработчика. Среди них отметим следующие фирмы:

 
 
  • Creative Electronic Systems S. A.,
 
 
  • Eltec Elektronik,
 
 
  • Force Computers Inc.,
 
 
  • Gespac Inc.,
 
 
  • GreenSpring Computers,
 
 
  • Motorola Inc. Computer Group,
 
 
  • OR Industrial Computers GmbH,
 
 
  • PEP Modular Computers,
 
 
  • Philips Industrial Automation Systems,
 
 
  • Themis Computer,
 
 
  • General Instrument Corp.,
 
 
  • Bell Atlantic Corp.,
 
 
  • Nynex Corp.,
 
 
  • Pacific Telesis Group и другие.
 
  Пакеты разработчика значительно ускоряют и упрощают процесс адаптации оборудования ко всему комплексу и позволяют приобрести разработчикам конечного уровня необходимые системные навыки, повысив их квалификацию в целом.

 
 
 
  Файловые менеджеры

 
  Термин «файловый менеджер» является обобщенным для обозначения модулей управления логическими потоками данных, удовлетворяющих определенной спецификации.

 
  Выделение и спецификация на уровне системы этого класса модулей имеют огромное значение, так как в большинстве случаев избавляют конечного пользователя от забот об управлении достаточно сложными структурами данных. В то же время при возникновении потребности в создании своих специфических структур, пользователь может легко и без ограничений на использование интегрировать собственные менеджеры в систему

 
  Стандартные менеджеры

 
  Стандартно с системой поставляются менеджеры для наиболее употребительных структур потоков:

 
 
  • pipeman — менеджер программного канала (обслуживает чисто логические структуры, построенные по принципу FIFO);
 
 
  • scf — менеджер байтового последовательного ввода/вывода (например, на терминал);
 
 
  • sbf — менеджер блочного последовательного ввода/вывода (например, на магнитную ленту);
 
 
  • rbf — менеджер блочного прямого доступа (например, к диску).
 
  Огромное множество других существующих менеджеров можно разделить на группы. (Список не претендует на полноту и содержит только наиболее известные менеджеры).

 
  Менеджеры специального ввода/вывода

 
 
  • pcf — менеджер поддержки файловой системы DOS
 
 
  • spf — менеджер пакетного ввода/вывода (LАР-В,X.25)
 
 
  • nrf — менеджер энергонезависимого ОЗУ (nonvolatile RAM)
 
  Сетевые менеджеры  
 
  • nfm — специализированный менеджер сети реального времени
 
 
  • ifman
 
 
  • sockman
 
 
  • pkman — менеджеры Internet-протоколов
 
 
  • profiman — менеджер PROFlBUS-протокола
 
 
  • smpf — «почтовый» сетевой менеджер (SMTP)
 
 
  • ism — менеджер ISDN
 
  Графические менеджеры

 
 
  • gfm — специализированный графический менеджер реального времени
 
  Менеджеры мультимедиа

 
 
  • mpfm — менеджер управления движущимися изображениями (MPEG)
 
 
  • mfm — менеджер прикладного пользовательского интерфейса с мультимедиа (Multimedia Application User Interface)
 
 
 

Поддержка стандартов

  Поддержка основных типов приложений в системе и системы в целом опирается на основной принцип поддержки стандартов в каждой предметной области. Поддержка стандартов является единственной гарантией существования системы при любой конъюнктуре в аппаратной сфере или в сфере развития коммуникаций.

 
  Для каждого типа программного обеспечения ведущие разработчики, создающие свои продукты на базе OS-9, стараются следовать наиболее признанным в мире стандартам:

 
  Система в целом:

 
 
  • POSIX1003
 
  Компиляторы:

 
 
  • ANSI-стандарты
 
  Графические интерфейсы:

 
 
  • X-Window, Motif
 
  Сетевые интерфейсы:

 
 
  • TCP/IP, N.F.S., RPC (Поддержка серверной и клиентской части протоколов SLIP, telnet, ftp, tftp. bootp);
 
 
  • PROFIBUS
 
  Базы данных:

 
 
  • SQL-интерфейс, классические сетевые модели (dbFile)
 

Важный пример использования системы

  Приведенный ниже пример важен с двух точек зрения: во-первых, он демонстрирует выдающиеся возможности и признание системы в мире, во-вторых, позволяет предположить основные направления развития.

 
  Речь идет о большом проекте по созданию современных информационных магистралей, в котором базовым программным средством избрана система OS-9. Основным партнером Microware со стороны аппаратной поддержки является такая крупная и признанная во всем мире фирма как Philips.

 
  Первым шагом в реализации проекта стали уже существующие и завоевывающие все большую популярность системы цифрового хранения и доступа к видеоинформации CD-I (москвичи, например, могут увидеть их в действии в салоне Philips на Новом Арбате).

 
  Вся система подразумевает создание глобальной информационной сети с крупными интегрированными базами видеоданных, коммуникационной инфраструктурой и системами кодирования и передачи видеоизображений в реальном масштабе времени (то есть со скоростью отображения на экране). В качестве узлов сети предполагается использовать бытовые и промышленные видеосистемы DAVID, управляемые программным обеспечением на базе OS-9.

 
  Программный состав системы DAVID представляет собой ядро системы, программную поддержку стандартного протокола передачи видеоизображений MPEG, поддержку физических устройств, подключаемых к системе, средства интерактивного управления и средства поддержки небольших баз данных. Модульный принцип построения системы позволяет легко адаптировать ее к различным типам управляющих и отображающих внешних устройств простой заменой части модулей.

 

Заключение

  Операционная система OS-9 справедливо входит в число ведущих систем своего типа. О популярности системы свидетельствует 2,5 млн. работающих в мире копий системы и сотни квалифицированных коллективов, разрабатывающих программное обеспечение на ее базе.

 
  Гарантии будущего системы заключаются в том, что на протяжении всего существования и до сих пор ее архитектура совершенствовалась в соответствии с требованиями времени и самыми современными представлениями о назначении систем. Более того, новые системные решения порождают новые идеи и представления в этой области деятельности.

 
  На сегодняшний день OS-9, наряду с немногими другими системами, обладает самой совершенной архитектурой, предельно оптимизированными алгоритмами ядра и ясным направлением дальнейшего развития.

 
  Можно смело утверждать, что любой ответственный подход к построению промышленного комплекса с использованием вычислительных средств не может обойтись без рассмотрения данной системы в качестве одного из основных претендентов на место базового программного обеспечения.

 
  Автор выражает признательность сотрудникам АО РТСофт за ценные консультации и помощь в подготовке статьи.

21.04.2014