<<<предыдущий список следующий>>>

Это - копия документа, находившегося на http://dz.ru. Авторские права, если не указано иначе, принадлежат Дмитрию Завалишину и/или Евгении Завалишиной. Все изменения, внесенные мной, находятся в этой рамочке.Пожалуйста, прочитайте disclaimer.


19 мая 1998    

Что-то на рынке ОС для роутеров, таки, случилось. Cisco, компания, имеющая более чем хорошее положение на рынке роутеров, широко известная своей роутерной же операционной системой IOS внезапно... лицензирует QNX. Это при том, что у неё самой IOS, порой, лицензируют для использования в маршрутизаторах других фирм.

Момент нетривиальный. Конечно, QNX - действительно хорошая система для таких применений. Годами оттачиваемая, удивительно легковесная и мощная. Чего стоит один их демо-диск: ОС, графическая подсистема, поддержка Интернет, броузер, и ВСЕ ЭТО ВМЕСТЕ влезает в 1.44 Мб. Прелесть, а не ОС. Конечно, демо-диск не призван показать, что QNX хороша для шатаний по вебу. Вряд ли она вообще рассматривается как игрок на рынке end-user OSes. Но по нему видно, сколь вылизана система, сколь тщательно написана, как компактна, но мощна. QNX - царь и бог на рынке ОС реального времени для спец-применений - от встраивания в аппаратуру до управления заводами. И она, уверен, хорошо покажет себя и в роутерах.

Однако, переход на нее с IOS для такой фирмы, как Cisco - это, мягко говоря, геморрой. Правда, переход еще не объявлен. Что именно Cisco будет делать с QNX-ом, никто толком не знает, в пресс-релизе это не сказано. Может, купив, сожгут дистрибут на площади под крики "гадкая, гадкая конкурирующая ОС". Может, поставят в один продукт, попродают его месяц и закроют. А может - через год все забудут про IOS.

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


Где-то на сайте, посвященном 1394, прочитал такую мысль. "Ну что за цифровой звук на USB - каналов-то влезает всего ничего. Вот на 1394 - 32 стереоканала в цифре - как нечего делать. Да и всякие аудио-видео железки тоже явно будут поддерживать не USB, а 1394, так что цифровые колонки есть резон делать именно на этом интерфейсе".

И он прав. Так что USB - уже не круто. :-) Однако, первые цифровые колонки будут, все же, с этим интерфейсом. Или уже есть. Как минимум - спроектированы.


Женька тут нашла в журнале двух докторов. Одного по фамилии Ланцет, другого, косметического дерматолога, Мордовцева. В дополнение к уже известным нам историку-кулинару Похлебкину, дирижеру Скрипке и (особый атас) фехтовальщику Кровопускову. Носов, когда писал про своих человечков, фамилии, похоже, не очень-то и выдумывал. Этого и в жизни вагон... :-)


Наш вебмастер, Сергей Трофимовский, сделал систему поиска, с помощью которой можно в момент найти интересующий вас выпуск Онлайна. Адрес системы - http://www.paranoia.ru/htdig/dz.html, пользуйтесь на здоровье. Работает весьма себе шустро! Искалка доступна через раздел "Архив", см. кнопку слева на пульте. :-)


Внимание.

Сервер dz-online.paranoia.ru - уже не зеркало dz online, а основное место дислокации. Если вы читаете нас на dz-online.excimer.ru, то рекомендуем переставить закладку на dz-online.paranoia.ru, чтобы не загружать без лишней необходимости сервер Excimer-а. Да и канал на dz-online.paranoia.ru побыстрее, грузиться будет энергичней.

Переставить закладку очень несложно. Достаточно щелкнуть сюда, а затем нажать ^D.


Норвежский Лесной выложил в онлайне кое-что из последних его работ для "Планеты Интернет". Хит - "18 апреля 2005: Объявляется о выходе нового процессора. Представитель компании говорит: "К лету следующего года наш новый процессор полностью вытеснит с рынка наши старые процессоры!""

Ну и вот еще хороший ход: "9 мая 2029: Алексей Соловьев выигрывает тендер на переделку памятника Зураба Церетели в памятник Зурабу Церетели."


Каждому наезду - своя разборка. Первым идет наезд.

From: Alex Dribin
Subject: Cisco and QNX
По поводу Cisco и QNX

Я сразу хочу извиниться за резкий тон моего письма: не хотелось бы Вас обидеть, но просто ужасно забавно видеть как далекие от real-time люди (нет, кстати, ничего плохого в том, чтобы быть далеким от real-time), только что услышавшие о существовании RTOS, носятся с QNX как с писанной торбой (Это не только к Вам относится, но и ко всем остальным, кто слышал звон в "Компьютерре"). Вот Вы пишете: "QNX - царь и бог на рынке ОС реального времени для спец-применений"

Извините, позвольте Вас спросить: а какие еще RTOS Вы знаете, что так говорите?

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

Дело в том, что в мире real-time - OS это последнее дело. Ее может не быть вообще - "легкие аппликации" часто, вообще, работают без OS. Поэтому выбор RTOS (или отказ от него) определяется множеством факторов: железом (в первую очередь), типом и мощностью процессора, типом и сложностью тех функций, которые должен выполнять встроенный софт, ценой (не в последнюю очередь), необходимостью интегрироваться с уже существующими програмными продуктами и.т.д.

Так что все, что тут можно сказать, что, судя по всему, Cisco пришла к выводу, что для некоторой конкретной задачи (задач) применение QNX является оправданным. Вот и все. А проблем совместимости OS во встроенных системах очень часто нет: на одной плате контроллер работает под одной операционной системой, а на другой - под другой.

Еще раз извините за резкость.

Alex Dribin

(А работаю я в фирме ECI telecom, где занимаюсь, как раз, тем, что програмирую Real-time, embedded аппликации в области телекоммуникаций, используя RTOS VxWorks - если, конечно, Вам все это что-либо говорит)

Ну, по поводу Cisco и QNX. Здравствуйте.

Я начну с обобщений, а потом несколько углублюсь в детали.

Обобщения:

Далее. Увы, QNX - система непереносимая (точнее - неперенесенная, что не гарантирует непереносимости), и нацелена исключительно на линейку x86. Включая множественные клоны этого процессора, ориентированные на встроенные системы. Поэтому, увы, мое утверждение достаточно трудно доказать во всей его полноте. Но на том рынке, на который нацелена QNX она  занимает доминирующий сектор, и это можно подтвердить данными от IDC: QNX - 22%, лучший конкурент - 11%. Отсюда, btw, видно, что рынок сильно раздроблен. Кстати, VxWorks тоже представлена в версии для x86, насколько я знаю, и среди x86-х систем отнюдь не лидирует, а, все же, уступает QNX. Отсюда законный вопрос - если бы QNX была перенесена на иные платформы, кто бы еще там лидировал.

Продолжаем по пунктам Вашего письма..

  1. Не важно, какие RTOS я знаю. А) От этого совершенно не зависит положение QNX на рынке. Б) Я, если Вы заметили, журналист. Хотя до сих пор программирую с крейсерской скоростью до 800 строк С++ в сутки, зарабатываю на хлеб я отнюдь не этим. Если бы я писал о том, что сейчас доминирует на рынке, не доверяя стороннему анализу и проверяя все своими руками, я бы делал один выпуск в полгода. Ибо чтобы реализовать маленький проект на базе, скажем, только QNX, VxWorks и OS-9 вряд ли потребуется меньше времени.
  2. Вы так и не сказали, с какими и чем отличающимися от обычных мерками нужно подходить к rt apps.
  3. Утверждение "В мире real-time OS - это последнее дело", мягко говоря, слишком широко, чтобы быть правдой. Это почти справедливо для встроенных микроконтроллеров о 30 байтах ОЗУ, но уже при размере кода в 20-30Кбайт и сколь нибудь разветвленных внешних связях это, как правило, неверно. Причем, что интересно, все это точно так же применимо и ко всем остальным, не realtime задачам. (Кстати. Свой первый и последний realtime-project я написал (ну и спаял, конечно) прошлым летом, по приколу сделав другу PIC-овский микроконтроллер для радиоприемника. С программным PWM-ом. У меня на это ушло три дня на чтение документации на пики, день на покупку программатора и два дня на написание и отладку. Это что касется тех RT проектов, для которых ОС - последнее дело. Я, мягко говоря, в курсе.)
  4. Выбор любой ОС "определяется множеством факторов: железом (в первую очередь), типом и мощностью процессора, типом и сложностью тех функций, которые должен выполнять встроенный софт, ценой (не в последнюю очередь), необходимостью интегрироваться с уже существующими програмными продуктами и.т.д.".
  5. Выбор RT OS для встроенных применений порой, наоборот, влечет за собой выбор процессора. Ибо предложение достаточно ширко и почти в любом диапазоне мощностей процессора и наборов встроенной периферии можно найти несколько вариантов из разных семейств.
  6. "А проблем совместимости OS" и в невстроенных "системах очень часто нет". У меня в доме работают WinNT, Win95 и FreeBSD под столом бурчит, а на лестнице жужжит роутер на Линуксе. Аргумент сознательно того же уровня доказательности, что и оригинальный.

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

Для начала, что это такое - встроенные системы, real time и соответствующие ОС?

Кто-то умный, не помню кто, сказал, что если разница количественная, но более, чем на порядок - ее следует считать качественной. Два, как минимум, типа систем считают работающими в реальном времени. Первые часто умещаются на ладони руки, живут на одном процессоре с 128-ю байтами ПЗУ и 25-ю байтами ОЗУ, и занимаются выключением утюга через 10 минут после того, как вы перестали им двигать. Вторые могут управлять заводом и состоять из многих весьма высокопроизводительных машин, связаных сверхскоростными каналами типа DEC Memory Channel в кластера для гарантии менее чем одного часа простоя в год.

Как уже догадался читатель, это - очень разные области, и, конечно, если в первом случае никакая ОС просто не влезет в память, а программа помещается на пару страниц А4, то во втором выбор ОС может оказаться делом жизни, структурность программы - требованием номер раз, а реальновремённость гарантироваться простым подбором мощности машины, на которой данная ОС и данная программа уложатся в нужные временные рамки. Тут любой специалист по реальному времени опять зарычит, но мы его успокоим в следующем абзаце.

Что такое работа в реальном масштабе времени? Это, грубо говоря, такое программирование, которое позволяет четко предсказывать, сколько времени, как максимум, программа затрачивает на исполнение тех или иных своих фрагментов. Мало (а то и не нужно!) иметь быструю машину. Нужно твердо знать - от момента прихода такого-то сигнала от датчика до выдачи такого-то сигнала на тот-то мотор или этот вот соленоид пройдет не более стольких-то миллисекунд. Это требует определенной культуры программирования - не умения писать быстрые программы, а умения писать предсказуемые программы. (Хотя скорость часто тоже очень даже ценится, нужной скорости можно достичь простым усилением машины - заменой процессора, памяти, etc. Предсказуемости же так не достичь.)

В соответствии с уровнем задачи ОС реального времени тоже делятся на несколько классов. Конечно, многие из них достаточно масштабируемы, но все же.
  • Самые простые ОС РВ действительно очень похожи на ДОС, или, если смотреть с программерской точки зрения - являют собой, скорее, библиотеку функций, чем полноценную систему. В эту категорию входит масса крохотных "операционных систем", разрабатываемых производителями микроконтроллеров для облегчения программирования. Пожалуй, сюда же можно отнести C EXECUTIVE, CRTX
    Можно обеспечить время реакции порядка единиц микросекунд.
  • Средний класс составляют все те же VxWorks, QNX, OS-9, RTEMS, RTXDOS, etc. Принципиальный шаг - многозадачность, а значит - весь комплект радостей и геморроев - IPC, семафоры, приоритеты... Обычно тут же начинается более-менее приличное управление памятью и сетевые функции.
    Характерное время реакции - порядка десятков микросекунд. (Время переключения контекста у этих ОС - единицы мс.)
  • Тяжелая артиллерия - вещи класса VAX VMS, Lynx (real-time Unix). Тут уж все помедленнее, но и задачи решаются иные - более масштабные и менее требовательные к времени реакции. В категорию попадает, к примеру, INtime - прилада к NT, которая превращает ее из непредсказуемо тормозной в предсказуемо тормозную. :-) 

Совершенно не представляю, куда отнести Chorus, очень интересное микроядро, ориентированное на создание РВ версий Юникса. Наверное, к тяжелой...

Это относительно легко достижимо в случае с утюгом и двумя страницами программы. Вся логика перед глазами, и программу можно буквально просчитать по командам, добиваясь нужных времен работы отдельных фрагментов. Отсутствие преемптивной многозадачности позволяет быть уверенным в том, что произойдет именно то, что написано в программе, а вред от прерываний тоже весьма легко предсказуем, поскольку их обработку автор тоже полностью пишет сам. Например, в моем контроллере приемника требовалось только одно - генерировать на одной из ножек скважностно модулированный сигнал с предельно возможной частотой. Я выжал 15 кГц на голых прерываниях и успокоился, так как существенно большего все равно на этом процессоре не сделать, а с 15-ю можно жить. Никакой ОС, никаких проблем, в гробу мы видали QNX, будь он хоть царь Вселенной.

Этого уже труднее достигнуть, когда логику программы нельзя свести к двум-трем квадратикам и прямоугольникам блок-схемы алгоритма. Например, если имеются два-три взаимодействующих процесса, все еще можно обойтись без ОС. Склепав ли переключения контекста руками (20 строк на Си, 40 на ассемблере), или взяв готовую библиотечку... потом потребуется межпроцессное взаимодействие, семафоры, окажется, что у нас уже написан простенький шедулер и кое-какие обобщенные функции ввода-вывода... теперь если из всего этого вычистить саму программу, то есть то, что делает дело, а не занимается косвенным обслуживанием, то останется, как раз, косвенное обслуживание в чистом виде. Его еще, если аккуратно написано и продается отдельно, называют операционной системой. Зачаточного, впрочем, вида. Типа CP/M или ДОС. Кстати, обе эти системы - вполне себе реального времени. Отклик ОС на запросы синхронен и довольно предсказуем, так что ничто не мешает, если нет или не надо лучшего варианта.

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

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

Интересно, что ситуация тут почти ничем не отличается от ситуации с задачами "нереального" :-) времени. Нужда в ОС точно та же, и проявляется так же и при тех же условиях. Так что никакой реальновременной специфики тут, увы, нет. И проблема выбора ОС РВ для проекта не настолько уникальна и своеобразна, чтобы оказаться непостижимой для новичка, буде он сколько нибудет опытен в компьютинге вообще.

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

Не стоит, Алекс. По крайней мере, я - очень неудачный объект для таких наступаний на пальцы. Особенно абсолютно неаргументированных. Я кусаюсь больно. :-F :-)


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


Оказывается, Марк-ИТТ разыгрывает всего одну кружку. Обидно - из рекламы это не просто не очевидно, а и вовсе создается обратное ощущение. Ну да ладно. Так часто бывает. А вот спутники падают редко, и вчерашние пробки на пути к Веблисту были обусловлены именно этим. Сотрудник компании так и написал - "рухнул спутник". Если бы далее не было написано "и надолго", я бы решил, что он действительно на землю сверзился. Оказывается, все проще - упал, конечно, только спутниковый канал.


prev top next

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

Зеркало dz online находится по адресу http://dz-online.paranoia.ru. Если, по какой-либо причине, http://dz-online.excimer.ru недоступен, читайте нас на зеркале.

Infocom Ranker www.reklama.ru. The Banner Network.

Copyright c dz online, 1996-1998, Designed by Denis A. Kim