Применение KolibriOS. Часть 1: Обзорная
Очень часто нам задают вопросы «Для чего разрабатывается КолибриОС?» или же «Какова область применения ОС?» Поэтому было решено рассказать подробнее о том где и как можно применять КолибриОС, а также, что возможно даже более интересно, где и как она УЖЕ применяется. Данная статья по большей части является обзорной. В ней будут описаны идеи и возможности применения КолибриОС как теоретические, так и доведенные до реализации. О том, как её используют уже сегодня, будет рассказано в следующей статье.
Наиболее перспективным направлением, является промышленное применение и embedded-разработка. Особенности KolibriOS, которые делают привлекательным её применение в данных областях:
Компактное ядро с открытым кодом; Минималистская простота и удобство графической подсистемы; Достаточно развитый пользовательский интерфейс; Приличный низкоуровневый системный сервис; Поддержка наиболее популярных сетевых протоколов и файловых систем. Ярким доказательством этого является Kolibri-A, форк от art_zh.Колибри-А — экспериментальная система, полезная только для квалифицированных системотехников, системных программистов, а также разработчиков и наладчиков компьютерного оборудования. Многие стандартные механизмы системной защиты и контроля доступа к критическим системным ресурсам в Колибри-А отключены с целью облегчения максимально свободного и удобного доступа к оборудованию.
Некоторые особенности Колибри-А Повышенные требования к аппаратной платформе. Дополнительный API-сервис, предоставляющий пользователю расширенный и быстрый доступ к низкоуровневому вводу/выводу. Бездрайверный ПДП и контроль нестандартной аппаратуры через доступный из пользовательского пространства статический системный буфер. Расширенная поддержка функций PCI-express с элементами тренинга шины, MSI и контроля режимов питания. Размер ядра заметно сокращен — исключены многие избыточные, узкоспециальные и рудиментарные системные структуры и функции: исключены видеорежимы низкого разрешения (ниже 800×600); оставлен единственный видеорежим (VESA2, глубина цвета 32bpp); из файловых систем оставлена только FAT. убирается поддержка APM; реализовано прямое управление электропитанием. Её вполне реально вшить в ROM и поставлять компактные энергоэффективные x86-компьютеры с KolibriOS вместо BIOS, пригодные для использования во встроенных системах, или в качестве центральных узлов различных систем.Что и было продемонстрировано art_zh (тема на форуме).
Скрытый текст А теперь — собственно сабж:(kolibri.img прошит в ROM, мышь и клавиатура отключены за ненадобностью) Позже это же достижение повторил Anthony Lu на промышленном мини-компьютере eBox (тема на нашем форуме).[embedded content]Для большей эффективности применения в данных областях необходима разработка специализированной платы под KolibriOS (возможно подпилить немного и саму КолибриОС), которая наиболее полно будет использовать возможности ОС. При наличии заинтересованных людей, готовых финансировать идею, реализация возможна текущими участниками проекта.Из уже доступных на рынке плат подходит 86Duino. Одним из наших участников, hidnplayr, была проведена успешная загрузка на 86duino one с использованием Vortex86 VGA card (для этого им же в ревизии 5154 была реализована поддержка 16bpp VESA режима в ядре) и подготовлена инструкция по загрузке.[embedded content]
Ну, а теперь пару примеров реального применения KolibriOS:
Использование при наладке железа (будет рассказано в следующей статье) Использовали на заводе для SCADA-системы; На железнодорожном транспорте для автоматического контроля состояния контактного кабеля на основании анализа видеоинформации с проезжающего поезда.Цитата одного из разработчиков art_zh (оригинал — на нашем форуме): Скрытый текст Встраиваемые системы — это не только роботы.Хотя и роботы тоже.
Возьмем, к примеру, «одноглазого» робота, который движется по скоростной железной дороге со скоростью 200 км/ч и наблюдает за состоянием контактной электросети.Контактный кабель — стальной пруток диаметром 20 мм, вихляющий над токоприёмником из стороны в сторону с амплитудой 50 см. На этом кабеле надо разглядеть зазубрины размером не менее 0,5 миллиметра.При обнаружении такой зазубрины — сохранить её фотографию и запомнить время и место (чтоб ремонтники знали где её искать), а если все нормально — сохранять только один кадр из тысячи.
Элементарный анализ такой (реальной!) задачи ставит очень жесткое ТЗ: надо оцифровать 112 тыс. строк в секунду, по 2048 пикселей в строке, 2 байта на пиксель. Итого — 460Мбайт/с.
Эти полгига надо успеть протолкнуть в память, провести первичную обработку (определить положение троса), найти зазубрины, отобразить 10 картинок на экране, посчитать силу натяжения троса (по частоте биений) и отправить отчет на сервер.В QNX задачу решить до сих пор не удалось — жуткие дыры в видеопотоке (возможно, что причина не в системе, а в говнокоде). В Колибри принципиальных проблем (почти) нет. Аппаратная часть готова, причем наладка и тестирование нового железа проведены исключительно средствами Колибри.
Проводили численное моделирование спектров для задач радиофизики (Мессбауэровская спектроскопия) и даже защищали диссертацию — vak2.ed.gov.ru/idcUploadAutoref/renderFile/80179 (программа CMspectra сперва была написана для KolibriOS, затем портирована в другие операционные системы — соавтор Андрей Игнатьев, aka andrew_programmer); Исходя из вышесказанного можно выделить несколько направлений использования:
«Умный дом»; Автоматизация процессов промышленного производства; Бортовая электроника транспортных средств (почему бы и нет?); Сбор и обработка большого объема данных (например, метеостанции). Также, следует отметить, что MenuetOS/KolibriOS успешно ставили в банкомат, и, в принципе, вполне реально написать соответствующий банковский софт.
Скрытый текст Это намекает на возможность использования КолибриОС в качестве замены DOS и старых версий Windows на компьютерах различных гос. организаций, таких как ЖД управление и Почта. При этом обновление оборудования вовсе не обязательно, а софт (при наличии исходного кода) можно портировать.