Основные особенности Zephyr таковы:
- Единое адресное пространство. Специфичный код приложения в сочетании с кастомным ядром создают монолитный образ, исполняемый на устройстве.
- Большие возможности настройки. Приложение получает только те возможности, которые ему нужны и когда они ему нужны.
- Ресурсы определяются во время компиляции. Это уменьшает размер кода и увеличивает производительность.
- Минимальный контроль ошибок. Служит для того же самого. При этом во время тестирования есть возможность получать полную отладочную информацию.
- Богатый набор возможностей для разработчика: многопоточность, контроль прерываний, внутрипотоковая синхронизация, средства для работы с памятью, управление питанием и многое другое.
В настоящее время уже доступны как само ядро Zephyr, так и SDK для разработки под него. Список поддерживаемых плат (который, несомненно, будет расширяться) можно найти на странице документации.
Комментарии (20)
tenbits
03.03.2016 12:03А что значит "ОС-система-платформа реального времени"? И какие есть ОС не реального времени, и в чем их разница?
saul
03.03.2016 12:13Это большая тема, в двух словах не объяснишь. Начать изучать можно с вики
tenbits
03.03.2016 12:18Спасибо, а могли бы ещё на второй вопрос ответить? Хотя конечно может и дурацкий вопрос, но всё же — какие есть ОС не реального времени и в чем разница?
gearbox
03.03.2016 15:27ответили ниже + дополню — реал тайм OS дает ГАРАНТИРОВАННОЕ время отклика на событие. В этом вся разница. Обычная ось этого не может. если в быту это не заметно (или заметно по лагам гуя но никто же не умер) то в некоторых отраслях это критично (ядерные объекты всякие если не ошибаюсь в медицине было использование QNX)
tenbits
03.03.2016 15:39Спасибо, такого ответа я и ожидал. В одном приложении понятен замысел, и когда перечитываешь реализацию, много становится понятно, зная для чего всё это.
Indemsys
03.03.2016 16:14ОС не реального времени есть например в облаках или в супер компьютерах, когда задачу ставят на исполнение в очередь, а когда она выполнится никто точно не знает.
А из остальных осей при тех или иных допущениях можно сделать ОС реального времени.tenbits
03.03.2016 16:27Получается ли это, что ОС реального времени не может выполнять задачи, в которых нет возможности заведомо вычислить срок выполнения этой самой задачи?
HomoLuden
04.03.2016 16:03Ситуация обратная… Суть RTOS в том, что она попытается в шишки расшибиться, чтоб выдержать с точностью до миллисекунды заданное вами расписание, если железный таймер выдает с миллисекундами прерывание.
Если у вас два потока с одним приоритетом должны сработать точно в одно время, тогда ситауция усложняется. Это нужно разруливать на уровне прописывания вами пауз в коде.
Общая суть сводится к тому, как точно ОС выдерживает время старта задач и с каким квантом время переключает контекст.olekl
04.03.2016 18:01Ну все же не совсем так. У RTOS лимитировано время между возникновением прерывания и передачей из него управления в ожидающую этого события задачу. В не-реалтайм ОС на этом пути может возникнуть необходимость, например, страницу из свопа на диске в памяти восстановить, что приведет к непредсказуемому увеличению этого времени.
saul
03.03.2016 13:03tenbits, почти все существующие ОС — не реального времени. Реалтайм ОС — очень специфичная штука и очень сложная внутри.
valexey
03.03.2016 19:31-2В первую очередь специфичная, реалтаймовость снижает производительность ОС в среднем. Для выполнение той же задачи реалтайм оси нужно более мощное железо.
olekl
03.03.2016 15:24И чем оно лучше FreeRTOS например?
Indemsys
03.03.2016 16:23+1Видимо тем, что имеет продвигаемый Intel протокол CoAp с защищенным транспортным уровнем с использованием DTLS (Datagram Transport Layer Security). А в остальном операционка очень слабая. Нет GUI, нет файловых систем ни одной,… можно сказать голая.
olekl
03.03.2016 16:56Больше похоже на попытку концепт из "старших" микроконтроллеров CortexA и Линукса перетащить на микроконтроллеры попроще. Оставив разделение на ОС и приложение, в отличие от той же FreeRTOS и ей подобных систем, которые по сути является частью приложения… На первый взгляд мне не понятно, зачем это может быть нужно...
Indemsys
03.03.2016 17:51В книгах встречается утверждение, что RTOS в принципе не могут загружать приложения, иначе они не RTOS.
Не увидел нигде в исходниках Zephyr возможности загрузки приложений.
Там монолитное firmware как обычно для микроконтроллеров.
Линкуется все в один бинарный образ.
Там я вообще не увидел никакой связи с линуксом кроме того что собирается все в GCC.
aronsky
03.03.2016 21:21-1Ничем. На какую целевую аудиторию происходит заточка можно догадаться по списку поддерживаемых "устройств"
MrJeos
Хоть бы расписали, что из себя представляет эта ОС. А то просто какой-то твит получился.