18 мая 2015 в 23:37

Применение 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 (тема на нашем форуме).


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

Из уже доступных на рынке плат подходит 86Duino. Одним из наших участников, hidnplayr, была проведена успешная загрузка на 86duino one с использованием Vortex86 VGA card (для этого им же в ревизии 5154 была реализована поддержка 16bpp VESA режима в ядре) и подготовлена инструкция по загрузке.


Ну а теперь пару примеров реального применения KolibriOS:
  1. Использование при наладке железа (будет рассказано в следующей статье)
  2. Использовали на заводе для SCADA-системы;
  3. На железнодорожном транспорте для автоматического контроля состояния контактного кабеля на основании анализа видеоинформации с проезжающего поезда.
    Цитата одного из разработчиков art_zh (оригинал — на нашем форуме):
    Скрытый текст
    Встраиваемые системы — это не только роботы.
    Хотя и роботы тоже.

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

    Контактный кабель — стальной пруток диаметром 20мм, вихляющий над токоприёмником из стороны в сторону с амплитудой 50см. На этом кабеле надо разглядеть зазубрины размером не менее 0,5 миллиметра.

    При обнаружении такой зазубрины — сохранить её фотографию и запомнить время и место (чтоб ремонтники знали где её искать), а если все нормально — сохранять только один кадр из тысячи.

    Элементарный анализ такой (реальной!) задачи ставит очень жесткое ТЗ: надо оцифровать 112 тыс. строк в секунду, по 2048 пикселей в строке, 2 байта на пиксель. Итого — 460 Мбайт/с.

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

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


  4. Проводили численное моделирование спектров для задач радиофизики (Мессбауэровская спектроскопия) и даже защищали диссертацию — vak2.ed.gov.ru/idcUploadAutoref/renderFile/80179 (программа CMspectra сперва была написана для KolibriOS, затем портирована в другие операционные системы — соавтор Андрей Игнатьев, aka andrew_programmer);


Исходя из вышесказанного можно выделить несколько направлений использования:
  • «Умный дом»;
  • Автоматизация процессов промышленного производства;
  • Бортовая электроника транспортных средств (почему бы и нет?);
  • Сбор и обработка большого объема данных (например, метеостанции).


Также, следует отметить, что MenuetOS/KolibriOS успешно ставили в банкомат, и, в принципе, вполне реально написать соответствующий банковский софт.
Скрытый текст

Это намекает на возможность использования КолибриОС в качестве замены DOS и старых версий Windows на компьютерах различных гос. организаций, таких как ЖД управление и Почта. При этом обновление оборудования вовсе не обязательно, а софт (при наличии исходного кода) можно портировать.
Автор: @Punk_Joker
KolibriOS Project Team
рейтинг 72,66
Быстрая операционная система для бизнеса и хобби

Комментарии (14)

  • +4
    Почему тогда старые Windows заменять не на React OS? Тогда изменения в софте вообще могут не потребоваться…
    • +7
      Ну, зато могут потребоваться изменения в самой React OS…
    • +1
      Можно оставить и как есть. Это был лишь пример одного из вариантов.
  • +3
    Прочитал, что возможно использование GCC.
    А реально в КолибриОС скомпилировать интерпретатор Ruby или Python, например?
    Какие трудности при этом могут возникнуть?
    • 0
      Оказывается есть упрощенный питон TinyPy — это интересно.
    • +2
      Какие трудности при этом могут возникнуть?
      1. Придётся компилировать ещё и все библиотеки-зависимости.
      2. Какая-то системная библиотека может отсутствовать. Например, нет pthread.
      3. Какие-то функции в libc могут отсутствовать или быть заглушками. Например, clock() из POSIX возвращает суммарное процессорное время, использованное программой, ядро KolibriOS не отслеживает эту информацию; clock() из menuetlibc возвращает wall clock, clock() из newlibc возвращает ошибку (clock_t)-1.
  • +1
    Мне кажется было бы разумно взять ядро от helenos.org (Оно на Си) и продолжить поверх него писать Колибри. Просто ассемблер это конечно прикольно, но выйти на реальный рынок можно только с чем-то более высокоуровневым. Просто мне кажется сейчас порт на ARM был бы крайне востребован.
    • +1
      Можно и Windows пилить на ядре Linux, вот только это уже будет не совсем Windows, а лишь старое название. Так и в этом случае, КолиьриОС это и есть, это саммое монолитное ядро (helenos если не ошибаюсь микроядерная) на ассемблере
  • 0
    KolibriOS — система очень заманчивая для embedded-применений. Но не хватает нескольких ключевых приложений — нормально работающего терминального клиента (есть только зародыш VNC), броузера и полноценного HTTP-сервера.
  • +1
    Банкоматы — это тема! Но нужно серьёзно вложиться, сначала в разработку, а потом вложиться х10, чтобы внедрить в реальном банке
    • 0
      Ну как тема… в банкомате внутри, по сути, обычный x86 компьютер, причем если лет… надцать назад они были в основном под полуосью, то сейчас там как правило просто Windows стоит.Поэтому то, что туда установили Колибри, само по себе ничего не означает. Я и в «Сапер» на банкомате играл когда-то давно, когда работал в ИТ-управлении банка :) Ключевой вопрос в банкомате, это специализированный софт, который управляет периферией, и обеспечивает безопасный шифрованный канал с банковской сетью. А с этим в Колибри вообще никак. И объем разработки тут будет, пожалуй, вполне сравнимый со всей Колибри на текущий момент.
  • 0
    как вариант юзать в аудиофильских компах?
    звуковую подсистему сделать максимально для этого (типа аналог asio) ну и дрова под хорошие звуковухи портировать как-то
    • 0
      Каков смысл?
  • 0
    спец версии линукса для аудио есть, вот типа того

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

Самое читаемое Разработка