embedded OS куди гребти? в сторону мікроядра?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Така наразі проблема.

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

З одного боку в уатсорсі один лише телеком із Linux, з іншого трохи є автомотивного ПЗ на основі VXWork.

З іншого боку — ембедед — не замикається на рішеннях із указаних галузей, і набагато ширше.

Так що на разі — когнітивний дисонанс.

На очі попала стаття.

Интервью с Эндрю Таненбаумом

Ось із неї витяг.

Так от мене зацікавили так звані мікроядра.

Создатель MINIX, легендарный спорщик и хорошо известный сторонник микроядер — это лишь несколько прозвищ Доктора Эндрю С Таненбаума (Dr Andrew S Tanenbaum); Возможно даже в вашей библиотеке есть один или два учебника написанные им.


Редактор Builder AU Ник Гибсон (Nick Gibson) побеседовал с Доктором Таненбаумом после его доклада на linux.conf.au. Гибсон спрашивал Таненбаума о микроядрах, MINIX и том, что ждет нас в будущем.

— Builder AU: Почему вы считаете, что микроядра лучше, чем монолитные ядра?

Доктор Таненбаум: Если вы посмотрите на системы, в которых жизненно необходима непрерывная работа — например, авиационные системы, вентиляторы в госпиталях — системы, сбой в работе которых может привести к чьей-либо смерти, вы увидите, что в них используются микроядра.

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

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

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

— Микроядра становятся популярными во встраиваемых устройствах, например QNX, купленная Harman International, и L4 — вы думаете стоит сконцентрироваться на области встраиваемых устройств, если вы разработчик микроядра?

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

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

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



Що заінтригувало:
— сама ідея мікроядра;
— фраза Относительно легко взять это новое устройство и сделать для него новую операционную систему, так как никто кроме разработчиков его не видел

Зрозуміло, що мейнстрім тут: ОС які перелічені вище і які вимагає оутсорс.

Але, наскільки то перспективно в іншому масштабі, варіанти:

а) власна розробка встроюваних систем на замовлення тут;

б) затребуваність спеціалістів у даному напрямі за кордоном?

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Мне интересно, можно кинуть ссылку мне на почту?

#include <stdio.h>
#define DOT (0x2E)
int main(){printf("e-%s:\tku%sis%d%cbigmir%cnet\n","mail","rt", (9*11),'@',DOT);
return 0;}

спасибо))

Флаймен прав — тема стоит бложека. И обсудить интересно, и информация ценная, не хабровская, жалко будет, если пропадет.

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

The VxWorks micro-kernel can support preemptive and round robin scheduling policies, and an unlimited number of tasks with as many as 256 priority levels...

Так що в нетах, що хочуть, те і пишуть.
Страхолюдна — не знаю, ще не дивився.
Кажеш, монолітік, хай буде монолітік.
Поки що перечитав повністю доку на scmRTOS і трохи по uCOS-II.
До монстрів ще не добрався.
У функціоналі різниці не бачу.
В обох нема наслідування приорітетів, що ніби погано з точки зору боротьби із інверсією пріоритетів, але з цим можна боротись, наприклад, як написано тут:

«делегирование выполнения кода»:

До речі у сєкас сторі на Марс мікроядро все ж літало.

На Марс летала vxWorks — (en.wikipedia.org/..._using_VxWorks — система: 1.монолитная. 2. концептуально страхолюдная, до состояния коммерческой пригодности доведенная драчевым напильником, что вобщем-то показывает, что при желании и деньгах любое одоробло можно запинать до состояния высокой надежности. Но не повторяемости и масштабируемости.

Со времен эпического спора прошло 20 лет. С тех пор Танненбаум произвел пару толстенных неудобочитемых фолиантов, про то как надо правильно делать ОС. А Линус — несколько ядер, хорошо показавших себя и на сервере, и на десктопе, и на многочисленных встраиваемых архитектурах. Вобщем, как говорится: п-ть — не мешки ворочать.

Я з тих, що за девайси 24/7, а не з любителів моноядро напильничком доточувати.

Предлагаю не сотрясать воздух, а просто сравнить результаты через 2 года например...;) А то Вас на форуме много, а выхлопа пока не заметно.


Мурзик Васильевич 2 дн. назад...
P.S. На счёт названных вами процессоров (особенно ATMega) мне кажется у нас разное видение автономного робота и решаемых им задач.:) Наверно мы сможем состыковаться только в плане разработки периферийных модулей и “мускулатуры” (я скорее всего буду делать упор на MSP430).
Думаю, у нас різне бачення ембедеда.
Я з тих, що за девайси 24/7, а не з любителів моноядро напильничком доточувати.
Ще одне інтерв"ю про мікроядро:
MINIX3, its kernel has roughly 3800 lines of code, and thus plenty of room for mistakes. However, Andy Tanenbaum and his team believe that these 3800 lines of code can be made close to bug free, which would bring eternal uptime a step closer. Compare that to the 2.6.x series of the monolithic Linux kernel— which has roughly 6 million lines of code to be made bug free (there goes spending time with the family at Easter).

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

До речі у сєкас сторі на Марс мікроядро все ж літало.

Кстати, вот еще один проект похожей тематики нашел pandaboard.org

Да, OMAP4430 — тоже отличнейший проц!

P.S. Есть ещё пару клонов BB: испанская IGEPv2, китайские DevKit 8000 и Mini Board.

А если зайти с другой стороны — где его можно купить в цивилизованных странах?

Я пытаюсь общаться с нашими поставщиками электронных компонентов, но они раньше января-февраля ничего не обещают.

Я мог бы сюда заказать и переслать, но это даже дальше чем Штаты-Канады...

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

Кстати, вот еще один проект похожей тематики нашел pandaboard.org

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

Это желание всех, кто когда-нибудь работал плотно с Linux’ом:)

А я пока не могу определить как мне этот самый beagleboard купить.

Я мог бы сюда заказать и переслать, но это даже дальше чем Штаты-Канады...

Так откуда же растут?

Отсюда (OMAPPSP): arago-project.org/git/projects p=linux-omap3.git; a=summary

Думается, что если гнаться за последним ядром, только патчами и будешь заниматься.

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

тема стоит бложека

Угум, подумаю...

Сегодня например выяснял откуда ноги растут у патчей в сырцах linux kernel для Beagleboard для управления напряжениями для MPU на OMAP (без повышения напряжения нельзя запустить DM3730 на частоте 1 ГГц).

Так откуда же растут?

Последнее стабильное ядро с патчами там 2.6.32 и сейчас чешу репу то ли мержить эти патчи из 2.6.32 в 2.6.36 (неделя-две работы) то ли использовать старое ядро и пробовать пропатчить под LTTng (до недели секаса).

Думается, что если гнаться за последним ядром, только патчами и будешь заниматься.

Такой формат интересен?:)

Вполне интересно. Флаймен прав — тема стоит бложека. И обсудить интересно, и информация ценная, не хабровская, жалко будет, если пропадет. Ну и это, пеарчик аффтору.

А я пока не могу определить как мне этот самый beagleboard купить. С digikey не хотят напрямую слать в наши степи, нужно посредников искать ((

А если зайти с другой стороны — где его можно купить в цивилизованных странах? У меня пара приятелей в Штатах-Канадах есть, но оттуда везти далеко. А если из Германии-Франции-Израиля, то и кто-то командровочный может привезти.

А я пока не могу определить как мне этот самый beagleboard купить. С digikey не хотят напрямую слать в наши степи, нужно посредников искать ((

Может кто-то знает надежных посредников кто с digikey работает?

починали за мікроядро здравіє, кінчили за Лінкус упокой
2Мурзік

Можна завести окремий тред (ЖЖ, хабр і т.п.) і там описувати свій сєкас (сторі) із Beagleboard, кому цікаво, підпишеться на розсилку мил.


Если не затруднит — держите в курсе.
А какой офрмат держания в курсе интересен?:)
Сегодня например выяснял откуда ноги растут у патчей в сырцах linux kernel для Beagleboard для управления напряжениями для MPU на OMAP (без повышения напряжения нельзя запустить DM3730 на частоте 1 ГГц). От человека из TI выяснил что частично используется код из TI DVSDK, кторые в свою очередь юзают наработки этой группы arago-project.org Последнее стабильное ядро с патчами там 2.6.32 и сейчас чешу репу то ли мержить эти патчи из 2.6.32 в 2.6.36 (неделя-две работы) то ли использовать старое ядро и пробовать пропатчить под LTTng (до недели секаса).

Такой формат интересен?:)

Затея интересная. Если не затруднит — держите в курсе.

Хорошо))

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

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

Тогда предлагаю начать с покупки Beagleboard-xM, я помогу всё поднять и по ходу дела определимся как будем действовать дальше (как раз несколько месяцев пройдёт). Т.е. я пока не готов распределять и контролировать задачи, делать code review (хотя возможно Вы не нуждаетесь в review, а как раз наоборот будете меня тыкать носом в мои баги:)) и т.д. Пока мы вполне могли бы поразбираться параллельно.

А у Вас какая специализация и в реализации какой части были бы заинтересованы

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

Интересно было б заняться

1. Подготовка bootloaders, Linux kernel и Root Filesystem + все необходимые libraries и software пакеты (период — 2 месяца, на этапе завершения);

3. Имплементация real-time управляющей программы под Linux для робота (период — 9 месяцев, не начата);

5. Корпус, реализация механики, движители, разводка платы, дополнительные блоки управления на МК, питание (период — 2...3 года, не начата, планирование не осуществлено);
С GUI, DB и web у меня все весьма плохо ((

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

Если честно, то я пока не планировал привлекать людей, т.к. нет смысла например вдвоем пилить ядро или патчить u-boot. Да и на этом этапе Вам как минимум надо купить плату. Попозже, когда начнется имплементация под Linux, можно будет обойтись и без железяки, т.к. буду реализовывать все максимально независимыми портируемыми слоями с симуляцией железа на i386 (для упрощения unit testing и автотестов). Но до этого этапа еще как минимум полгода. Еще и разница во времени — придется делать все удаленно и на общение есть только пару часов в день.

А у Вас какая специализация и в реализации какой части были бы заинтересованы (на всякий случай, если созрею открыть проект для общественности). В принципе, если проект продвинется, то думаю реализовать и GUI для управления, будет и работа с БД, позже возможно простой web интерфейс, но это все мои детские мечты.:)

Я думаю можно будет присоединиться к проекту, но немного попозже.

А как узнать что уже можно присоединяться к проекту?))

Я думаю можно будет присоединиться к проекту, но немного попозже. Для меня сейчас важно окончательно определиться с форматом проекта, т.к. пока морально (и финансово) не готов вести open source проект, больше нравится формат гаражного стартапа. А поделиться наработками, мыслями и опытом с сообществом — это всегда пожалуйста.:)

Мурзик Васильевич

Ой, а можно к вам?

Про то, что уже готово — подобные «робототехнические» наработки имеются у любого эмбеддера.:)
Я пока продвинулся не сильно дальше. Определился с платформой — как уже сказал это совсем недавно выпущенный DM3730 от TI, если кратко, то частота до 1 ГГц + довольно вкусное DSP ядро + куча нужной и ненужной периферии. Готовая отладочная плата на этом проце Beagleboard-xM, на борде есть (почти) всё, чего душа пожелает, так же куча периферии, Ethernet, DVI, USB, порт для камеры (зрение), Audio in/out (слух). Выбрана ОС, как ни странно, но это linux, в дальнейшем скорее всего с rt патчем.
Что сделано: стартовал проект, куплен Trac+SVN репозиторий, потихоньку забиваю wiki, добавляю тикеты и сам их героически закрываю.:) Определены первые milestones. Кратко по фазам (я решил плясать от «мозга», не уверен на 100% что это правильно, но опыта в механике у меня 0):
1. Подготовка bootloaders, Linux kernel и Root Filesystem + все необходимые libraries и software пакеты (период — 2 месяца, на этапе завершения);
2. Имплементация С++ multithreading библиотеки, обертка над POSIX: threads, timers, message queues etc. (период — 4 месяца, в процессе);
3. Имплементация real-time управляющей программы под Linux для робота (период — 9 месяцев, не начата);
4. Имплементация DSP< -> MPU драйверов + программа для DSP — работа с камерой, обработка изображения и звука (?) (период — 9 месяцев, не начата);
5. Корпус, реализация механики, движители, разводка платы, дополнительные блоки управления на МК, питание (период — 2...3 года, не начата, планирование не осуществлено);
Проект хочется сделать хорошо и грамотно, с тщательным профайлингом и вылизыванием linux-а, с удобным debug интерфейсом, с грамотными библиотеками и управляющими программами. Пока что заказана и куплена плата Beagleboard-xM, на стадии завершения стабилизация 2.6.36 ядра под ARM Cortex-A8 (DM3730) + готовы bootloaders и Root Filesystem (с Valgrind, LTTng etc.), написана часть библиотеки.

P.S. На счёт названных вами процессоров (особенно ATMega) мне кажется у нас разное видение автономного робота и решаемых им задач.:) Наверно мы сможем состыковаться только в плане разработки периферийных модулей и «мускулатуры» (я скорее всего буду делать упор на MSP430).

Краще добавитися в Скайп, мені так зручніше для комунікацій.

А електронна почта дуже тепер забита, і щоб щось знайти, тре довго ритись.

ситуація приблизно така
1) є студент, який взявся тема дипломного проекту щось на кшталт «станок для віризання РСВ плат»
2) є куски периферії, частково апаратно і програмно відлагоджені із різними процами (сжімо модулі CAN, Ethertnet, USB...)
3) основна шина — SPI, тобто майже всі контролери на ній
4) є готові розводки для плат керування кроковими двигунами (плати під клемники — аля breakout board, — одна на струм до 1А при чому відпрацювано код СПЛД роботу на макетці, через тиждень-другий деталі з макети будуть перепаяні на готову плату, виготовлену ксеросно-утюжним методом. — інша на 10А-20А, там ще кіт не валявся)
Чого ще нема.
а) ядра (не вибрано МСU, про РТОС іще ідуть роздуми, в принципі дана гілка — їх наслідок).
б) задач, які могли б стимулювати проект
Резюме:
Є периферія в тій чи іншій формі, нема ядра.
Нема хоча б 50% реалізації живого прототипу.
Наразі тре визначатись, що буде в якості процесора (ADUC841, BF53x, AT91SAM7xx, ATmega32/64/128) і, заодно яка ОС (хоча я майже на 90% вже переконаний, що scmRTOS, хоча залишається питання потім щодо імплементації Етзернета та ТСР/ІР, хоча є інші ОС із готовим стеком).
Кожен камінь має + та -, але навіть 8080/86 і Z80 колись було достатньо для ЧПУ (колись їх ремотнував).
Що я бачу на найближчий час -
1) завершення вагань із ядром (до нового року)
2) вибір інтерфейса із РС — CAN/Modbus/Ethernet (те саме)
3) складання принципової схеми ядра і розводка РСВ (+2 або 3 місяці)
4) написання тестового коду для того, щоб покрутити ½/3-ма кроковими двигунами використовуючи G-команди (до липня 2011)

5) складання живого прототипу його випробовування. (хз, літо 2011)

задач ніяких не ставилось і зустрічних пропозицій не спостерігалось

Именно.:) Статья опубликована год назад, примерно в это же время после короткой переписки вы пообещали сообщить что-то, когда будут ясны детали. Могу я поинтересоваться что там с деталями? На каком этапе проект? Готов внести посильный вклад, даже пожертвовать часть времени, запланированного под свой проект.;)

P.S. Как мне показалось, статья носила лёгкий рекламный оттенок...

Я уже “научавствовался” с уважаемым flyman в открытом проекте по робототехнике

Розкаже як же ти научавствовався, якщо задач ніяких не ставилось і зустрічних пропозицій не спостерігалось (наприклад зробити якийсь модуль)?

Може є бажаючі поучавствовать?

Мдя... Я уже “научавствовался” с уважаемым flyman в открытом проекте по робототехнике (www.developers.org.ua/...artup-idea/).: В итоге начал свой полузакрытый проект по робототехнике на DM3730 (Beagleboard-xM).

Конечно. Это у всех ембедеров вместо «посадить дерево»:)

Як тоді нащо порта, скажем scmRTOS наADUC841.
Порт зарахується як «посаджене дерево»?
Наскільки зрозумів доку — проблема портування теоретично вирішуєтться,
так як для АДУКа стек може мати глибину до 2КБ (тобто вся набортна RAM).

Може є бажаючі поучавствовать?

Про ОС не уверен, но планировщик написать обязан.

а кожен уважаючий себе ембедер повинен написати свою РТОС (чи хоча б спробувати)?

Конечно. Это у всех ембедеров вместо «посадить дерево»:)

Вопрос, ,

а кожен уважаючий себе ембедер повинен написати свою РТОС (чи хоча б спробувати)?

А еще она на С++ писана

а ще має доку на общєпанаятном


alcosar 2 дн. назад

scmRTOS (ARM, blackfin, msp430, avr)

люди кажуть

і я думаю, що ніби то шо надо

Таки да, это не филиал LOR’а...

Ваш разговор сильно напоминает:

Засуха. К цадику приходят е#вреи — хуторяне и просят устроить чудо, чтобы пошел дождь — Нет, — отвечает цадик, — чуда не будет, ибо нет в вас веры в Господа — Но почему же, ребе? — Если бы вы действительно верили в Иегову, то пришли бы с зонтами

Linux далеко не самая POSIX ориентированная ОС. Поддержка целых подклассов стандартов, включая опциональные, отсутствует. А так всё правильно написано, только изучать нужно POSIX (для начала) сам по себе.

Полностью с Вами согласен, в Linux нет официальной поддержки POSIX. Однако это пока что не мешает (во всяком случае мне) писать программы с поддержкой POSIX стандартов.:)

P.S. Да, QNX полностью POSIX совместимая ОС, тут не могу не признать Ваше превосходство.:)

Обоснуйте, если не составит труда.:)

Linux далеко не самая POSIX ориентированная ОС. Поддержка целых подклассов стандартов, включая опциональные, отсутствует. А так всё правильно написано, только изучать нужно POSIX (для начала) сам по себе.

Обоснуйте, если не составит труда.:)

Гребите лучше в сторону Linux multithreading real-time programming — без работы не останетесь. POSIX — наше все!:)

Как говорит ТС, это вызывает когнитивный диссонанс. Linux! = POSIX, особенно в RT части.

Гребите лучше в сторону Linux multithreading real-time programming — без работы не останетесь. POSIX — наше все!:)

Женя, тут розумієш, є дядьки, які і51 тягнуть ще з доперестроєчних часів, хочуть тепер мати для нього Езернет стек і графіку на ЛСД.

Питання дискусійне, але як на мене, для 8-бітки важливіше бібліотеки, ніж класична ОС з її перемиканням задач і міжпроцесною взаємодією.
ОС починає грати, коли вже є кілька десяткив задач, і діапазон зовнішніх носіїв з різними файловими системами. От тоді знадобляться і пріорітети, і букет засобів сінхронізації, і права доступу.
Дядькам скажи, що і51відійшов вже 10 років тому, а зараз вже відходять класичні Меги. І взагалі мейнстрім — це зв’язка ДСП і АРМ9 на одному кристалі.

Ну, а якщо зовсім глухий кут — www.ethernut.de/...ware/nutos.html

ну на

www.eetimes.com

навіть розсилка імєєтсо,

Ти б ще не IEEE б кунув сцилко (а ще лучше підписко) і для повного щастя на pudn.com теж


Это сарказм, да?

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

а можна детальніше про нові віяння

www.eetimes.com

немного однобоко, но чем сейчас дышит весь мир понять можно

у меня камера в глазке двери работает под дуал корный, четырёх тредный Intel Atom N550

Это сарказм, да?


с 51 вы сильно загнули. Сейчас во всю ломают стереотипы что 1 ядро хорошо, а много ядер — лучше, а вы тут про какие-то 51 вспоминаете...

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

Сейчас во всю ломают стереотипы что 1 ядро хорошо, а много ядер — лучше,

, а можна детальніше про нові віяння

А якщо є набортна XRAM в кілька КБ і подвійний вказівник?

Все равно доступ через movx — 2 такта на команду в классическом ядре (24 такта осциллятора). Двойной указатель (dptr?) тоже нужно сохранять в контексте задачи. Стек организуется программный, не push/pop, а загрузка указателя dptr адресом в ОЗУ и затем сохранение контекста. Да и максимальный размер ОЗУ для силабсов, кажется, чуть больше 8 килобайт.

с 51 вы сильно загнули. Сейчас во всю ломают стереотипы что 1 ядро хорошо, а много ядер — лучше, а вы тут про какие-то 51 вспоминаете...

Женя, тут розумієш, є дядьки, які і51 тягнуть ще з доперестроєчних часів, хочуть тепер мати для нього Езернет стек і графіку на ЛСД.
Про осі мовчать, але мій внутрішній голос каже, що це просить якусь ОСьку.
Для дядьків навіть Атмега — ломання стереотипів.
Також для них поставити на плату CPLD/FPGA — нереально, краще наваляти море розсипухи та логіки.
І це ще півбіди, але і51 ще іде від них у руки студентам і аспірантам.
Тому питання дещо політичне.

Сказати дядькам — голий метал і все — не поймуть.

стек задач должен быть во внешнем ОЗУ (доступ через movx)

А якщо є набортна XRAM в кілька КБ і подвійний вказівник?

Які ще варіанти?

scmRTOS (ARM, blackfin, msp430, avr), chibios (ARM, PPC, st8, avr, msp430), tnkernel (ARM, шестнадцатибитные PIC, hs08), nutxx, bertos, state machine framework от Миро Самека.

не згадуються Блекфіни і Атмеги: для i51 — тільки супершвидкі Сігнали

В FreeRTOS Атмеги поддерживаются. А надо ли чтобы все поддерживалось?

i51 — не совсем подходящая архитектура для вытесняющих ОС — стек задач должен быть во внешнем ОЗУ (доступ через movx)

FreeRTOS (www.freertos.org/

не згадуються Блекфіни і Атмеги: для i51 — тільки супершвидкі Сігнали

Гы только все на 90% заимствовано с открытых проектов... И все развитие сводится к очередному портированию.

Почему? Все новое — это самописные продукты, либо переработанные коммерческие решения с других платформ. Из коробки идут gcc компилятор, eclipse и GNU тулзы (опционально). Возьмём GCC, пара человек в штате целенаправленно работает над развитием GCC в общем, не только касательно поддержки QNX. Eclipse — над ним работает целая команда в компании, в рамках open source. Портированием это сложно назвать, это полноценное участие, а не только потребление.

Если это так, то должно быть большое количество вакансий по миру, а их почти нет...

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

Лицензия на устройство стоит немалых денег... Например Wind River Linux смотрится куда интереснее чем QNX для 99% применений.

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

Поточна ідея із поста № 1: контролер дупогрійки, так щоб
на Атмегу або і51 клон або чи АТ64SAM7 або BF531 мона було поставити мікроядро — фрішне ядро з відкритим кодом і яке легко портується або вже портоване на широкий набір каменів; — ядро має бути популярне, щоб можна було як і відносно легко найняти кодерів, так і самому щоб потім десь пригодилось при наймі; — ядро може бути безплатне для навчальних цілей; , — до ядра можна легко за потреби підчіпляти/відчипляти модулі:
стек етзернета та при потребі ТСР/ІР і вищі рівні;
USB стек;
який бись стек радіоканала;
файлову систему на флешь/ЕЕПРОМ;
ЛСД графіку
периферію всяку вішати (ЦАП/АЦП/дискретні ІО, і контролери ETH/CAN/USB і т.д.) на SPI/parallel..
Наскільки я зрозумів кандидати: — QNX (платне?) — ecos (платне?) — uClinux (та інші колин Лінкса:, а влізе?) — uCOS (платний однозначно чи для навчальних цілей фрішний?) .

Які ще варіанти?

QNX — это уже давно не только микроядро, это полноценная платформа

Гы только все на 90% заимствовано с открытых проектов... И все развитие сводится к очередному портированию.

RIM — это даже не вершина айсберга

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

Например Wind River Linux смотрится куда интереснее чем QNX для 99% применений.

Очень большой спрос, но не на микроядерщеков:), а на эмбеддеров в общем.

Жаль что я живу в другом «закордоне»...:)

Появляются мысли после получения паспорта с кунгуру попытать счастье в америкосии.

Первые луноходы таки-да были без ОС — например, наши первые автоматические лунные аппараты сажались в одно касание с использованием аналогового вычислителя на нескольких лампах, в то время как америкосы разбили не один девайс на программной логике, по их идее, решавший ту же задачу. Последние же разработки, без ОС и специальных технических решений позволяющих удаленно поднять аппарат с уровня bare metal, не применяются, так как сложность задач и неопределенность среды выполнения возросла по сравнению с 60-ыми в очень много раз;)
Про флеш: срок хранения инфы в consumer флешках составляет, в лучших случаях, 10−20 лет. Про запись речь пока не идет, так как ресурс записи меряется не временем, а циклами, которые при неумелом применении можно израсходовать за считанные секунды.
TCP/IP+SSH для дупогрейки это мысль! Но даже в этом случае Linux тут не обязателен. Есть ecos/ucos/rtems/ethernut/freertos/etc. со своими стеками или портированными lwip/uip. А сложившаяся тенденция выпускать 32-ые ARM чипы со стоимостью меньше доллара дает много свободных ресурсов для реализации firmware с использованием этих монолинков.
Констатировать можно лишь один факт — сложность разработки встраиваемого ПО сейчас компенсируется незначительным повышением цены конечного продукта, поэтому мы и имеем Linux’ы в часах, телефонах, телевизорах, а в будущем, возможно, получим его и в дупогрейках. Нет смысла перечислять причины тому, что платформа, которая способствует открытой и легкой разработке приложений нравится людям и бизнесменам — оставим это «онолитикам».
Вовращаясь к теме: все очень сильно зависит от конечной стоимости дупогрейки, выбранной элементной базы и функциональной спецификации ее firmware. Я бы рассмотрел использование следующих вариантов:
1. Монолитное firmware (core api linked with application) — ecos-подобные OS
2. MMUless OS (uClinux)
3. Linux

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

а) власна розробка встроюваних систем на замовлення тут;

Встречается иногда.

б) затребуваність спеціалістів у даному напрямі за кордоном?

Очень большой спрос, но не на микроядерщеков:), а на эмбеддеров в общем.
По-большому счёту микроядро — это маркетинг для 90% embedded разработчиков, никто из них сталкиваться с ним напрямую не будет за всю карьеру, но все знают что оно где-то там есть, оно работает и все нутром чувствуют, что это круто;) А вот технологии, которые являются следствием использования микроядра — это как раз то, что должно интересовать разработчиков: Message Passing, Resource Managers в Message Passing средах.

Многие вакансии висят больше года: www.qnx.com/...opportunities/ Там есть две OS Developer, причём и Junior и Senior. Дерзай, всё не так страшно как кажется:)

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

Ширпотребовские изделия от RIM — это даже не вершина айсберга, а где-то 1/10000 того, что видно. А перепродают QNX не из-за проблем, а просто чтобы не платить за лицензии:) QNX — это уже давно не только микроядро, это полноценная платформа. На счёт развития самой операционной системы и её архитектуры — да, она развивается довольно-таки медленно, но вот всё окружение, благодаря разным компаниям-хозяевам, развивается бешенными темпами. Я давно физически не могу даже вникнуть в то, что уже создано, жизни будет мало...

> Нет конечно, это были многоядерные Коре2Дуо

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

Тоненбаум с микроядром был, страшные проблемы с монолитным ядром Линукса были. Вы еще про российский Эльюрус вспомните:) Чтоб троллей по лучше прикормить. Может кто-то еще на ЛОРе не до питался:)

, а это, однюдь, не устройства на 1 однокристальном проце с десятком КБ памяти.

Нет конечно, это были многоядерные Коре2Дуо с 4 гигабайту озу и крутой видеокартой он нвидиа. Я угадал?

> Само понятие операционной системы родилось на машинах по сравнению с которыми атмега просто супер-вычислитель

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

Для такого брухту програми на C пишуть та в асемблер транслюють. Не впевнений, що на ці проци, навіть якись мікроядра налізуть.

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

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


У РФ розробляють.

Думаю, що в Україні теж.

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

Пока есть..., но есть определенные тенденции...:)

В Люксе тенденции, в ГЛ тенденции...Да куда оно все вообще катится?

> Може збереш мені описані модулі і компільнеш на Атмегу або і51

Для такого брухту програми на C пишуть та в асемблер транслюють. Не впевнений, що на ці проци, навіть якись мікроядра налізуть.

2maxdz,
хто-хто, а ще виявляється і тут ти спец.

Може збереш мені описані модулі і компільнеш на Атмегу або і51 клон або чи АТ64SAM7 або BF531із кількома десятками КБ RAM (ROM/EEPROM)?

есть еще L4. авторы ядра вроде математически доказывали его безглючность...

uOS микроядро для контроллеров, платное, живое, рассылка приходит ежемесячно...

> Все ж Лінукс затяжкий і не RT, а для цього мікроядро, ніби саме те.
Ядро Лінукса можливо було компілювати самому, та задавати пiдсистеми, які ти хочеш мати у кінцевому результаті (скомпільованному ядрі).

П.С. Останній раз я цім займався років 12 тому — міг відірватися від сучасних реалій.:)

Если интересуют вопросы надежности простых систем, то там как бы ОС и не используют совсем

А если TCP/IP стек + SSH это уже сложная система? так и до рубильника можно опуститься...

аптаймом в десятилетия (больше просто флеш не держит)

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

Если интересуют вопросы надежности простых систем, то там как бы ОС и не используют совсем — дупогрейка с аптаймом в десятилетия (больше просто флеш не держит) тупо делается на примитивном контроллере с одним единственным прерыванием таймера + watchdog.

тре для трохи продвинутішого варіанту дупогрійки, так щоб
при потребі щоб можна було: — стек етзернета та при потребі ТСР/ІР і вищі рівні; — USB стек; — який бись стек радіоканала; — яку втиснути файлову систему на флешь/ЕЕПРОМ; — ЛСД графіка. — периферію всяку вішати (ЦАП/АЦП/дискретні ІО, і контролери ETH/CAN/USB і т.д.) на SPI/parallel.
В принципі, майже те все є потрохи пороблено, але як би то все стягнути в один флакон і насадити на яку ось реального часу.
Все ж Лінукс затяжкий і не RT, а для цього мікроядро, ніби саме те.
Так що QNX і усьо?

Може хоть де uCOS де завівся чи ще який звір?

С другой стороны, из монолитности линукса много нехороших огранизационных и лицензионных следствий. Во первых, если драйвер в конце концов не попадет в основное дереве линукса, считай, он мертв. Но там надо GPL. Не-GPL модули ядра, во первых, не могут вызывать всех «API» ядра (API в кавычках, потому что как такового официального API нет, есть просто подмножество достаточно хорошо известных и документированных ф-й и переменных), а во вторых, даже если есть исходники, на них особо не смотрят, поэтому частенько есть вопросы к качеству не-GPL драйверов. Поэтому драйвер таки должен попадать в основное дерево с GPL. В результате уже сейчас линуксовое ядро просто невероятно раздуто, и управлять разработкой становится все сложнее. Будь линукс микроядерным, возможно, большинство драйверов спокойно жило бы за пределами проекта, и не было бы этого бардака, Но это был бы не линукс.

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

Если интересуют вопросы надежности простых систем, то там как бы ОС и не используют совсем — дупогрейка с аптаймом в десятилетия (больше просто флеш не держит) тупо делается на примитивном контроллере с одним единственным прерыванием таймера + watchdog.

Харман уходит с QNX массово в сторону Линуха... И QNX он уже продал. Вот так вот. А так да, под QNX еще есть проекты, в основном на мейнтенсе.

Тебе к Mike Gorchak, расскажет про QNX если захочет, там вроде микроядро.

Самое настоящее микорядро... прямо как в букваре:) Кому интересно, может почитать «Роб Кертен Введение в QNX/Neutrino» Правда в свете последних событий полезность этого сомнительна...

Кто нибудь в Украине разрабатывает свои ОС?

Нет смысла разрабатывать всю ОС (я про нормальные ОС:)). Есть только багфиксинг... И миграции на более распространенные ОС.
Таненбаумом это чистый теоретик который проедает государственное бабло причем не маленькое... Типичный хороший преподаватель без особых достижений и оторванный от бизнеса... Чем то напоминает преподавателей в вузе... помните сказочников:) У него много интересных высказываний было... которые сейчас кажутся смешными... Слушать надо тех, кто сумел сделать что-то успешное...
Вызов функции в монолитном ядре всегда быстрее посылки сообщения в микорядре... По ходу дела коммерчески успешных мкорядер почти и не осталось:)
Под VXWork в основном багфиксы... Ее создатель медленно и уверенно ползет в сторону Linux дистр с использованием схемы их двух ядер (RT и Linux) Типа это уже летает в космос и прочие понты... Видимо слишком дорого двигаться вперед не отставая и не теряя в надежности.

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

знаю що є/був QNX (ніби в Люксі).

Пока есть..., но есть определенные тенденции...:)

Куда копать... надо смотреть по вакансиям... Если конечно это ради денег:) если нет, то есть куча всего интересного... время улетит со свистом:)

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

Тебе к Mike Gorchak, расскажет про QNX если захочет, там вроде микроядро.

Линукс — монолитное ядро, не важно ембед, десктом или сервер. Таненбаум теоретик, известен спор начала 90-х где-то Таненбаума с Товарльдсом насчет преимуществ/недостатков монолинтых ядер / микроядра, Таненбаум утверждал что линукс «не взлетит» из-за своей монолитности. Был еще Mach, Сейчас осталась только MacOS на основе Mach, но в нем от микроядра только название, в реальности там все в одном адресном пространстве в одном кольце привилегий, т.е. оно по факту монолитное, мессаджинг — простые call, от микроядерности осталось лишь разбиение на модули.

Андроид на Линуксе, чем не микроядро?

У РФ розробляють.
Думаю, що в Україні теж.
Але мене цікавить не розробка нового, а використання того, що так званого мікроядра або мікроосі в вбудованих системах.
Наприклад жопогрійку яка працює 24/7, або кондицінер аля Вентс, чи холодильник аля Норд чи ще щось.
Ясно, що тут не так розвите приладо і машинобудування, але ще не вмерла...
Цікаво знати, хто, що де, коли.

Може аутсорсери підтягнутся, знаю що є/був QNX (ніби в Люксі).

Вопрос тебе в догонку

Кто нибудь в Украине разрабатывает свои ОС?

Підписатись на коментарі