ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
157413
Evgeny_CD, Архитектор (24.05.2009 16:22, просмотров: 2429)
О! Наконец-то меня дошло, как работают все эти automake и прочие древние тулзы. Разбирался с RTEMS. Все, на самом деле, очень просто. Есть сложное приложение. Его _каркас_ можно представить в виде графа. Т.е. есть какие то основные "сущности", есть "подсущности", и т.д. Есть опции конфигурации - есть у нас сеть или нет и т.д. Это опредеяет какую-то часть набора сущностей графа. Но все сущности, описанные выще - это классы. При преходе к конкретной сборке бинарника нужно выбрать экземляр класса в заивисимости от аппаратных и прочих опций. И все это хозяйство управляется целой кучей конфигурационных переменных. Которые вступают в сложные заивисимости друг от друга и пр. Разробраться во всем этом, лазая по директории RTEMS, бузумно сложно. Т.е. либо ты ставишь "сертифицированный тулчейн" и "нажми на кнопку - получишь результат". Либо, если хочешь вкурить основы, то требуется долгая-долгая уединенная медитация (сразу вспоминается картинка с катаной как символом языка С). Я не сделал ни одного проекта на RTEMS, но мне эта ОСька очень нравится. Я много раз принимался за ее изучение, но каждый раз до сего момента я на некоторой стадии останавливался - не мог понять "базовую систему сущностей", из которой этот RTEMS собирается. И вот теперь, после нескольких лет уединенных размышлений, (я не все время изучал RTEMS :), это было периодами, иногда с интервалами более года), я наконец, понял, как работать с кодом RTEMS. И поняв это, пришел в ярость - почему это не перевели на современные тулзы. Для того, чтобы всесь этот кошмар перевести с нормальное русло, нужно сделать простую вещь - работать не с кучей файлов (которая неторопливо парсится всякими "сочными" тулзами типа препроцессор m4, которые чуть ли не старше меня), а с базой данных кода. Весь код разбивается на "атомы" - некие кусочки, которые неделимы с точки зрения разработки (на всех комплерах, на всех платформах и т.д.) Это все складывается в БД, и прописываются: * зависимости этих кусочков от "внешнего мира" - конфигурации * способ создания больших блоков - какие кусочки в какой последовательности собирать (опять же зависимости) И дается некая тулза на питоне, которая делает сборку исходного кода (все необходимые файлы), которые потом скармливается компилеру. И, самое главное, некая графическая древовидная тулза, которая описывает, из каких "сущностей" может состоять RTEMS, какие заивисимости и т.д. Чтобы было легко и удобно разбираться. Документация в виде отлельных файлов нужна только описательная. Описывать идеологию построения системы. Дока по отдельным сущностям интегрированна в "тулзу" типа MSDN. При таком подходе RTEMS будет проще uCOS. Причем, при использовании современных мощных машин и всяких там MySQL с питоном и графическими фреймворками создание такой системы - не такая уж и страшная задача. Это не мгновенно, но зато затраты на "тупую" разработку - выставил опции, начал собирать - не собралось, или не заработало - сократятся на порядки. Можно, конечно, развивать конспирологические теории - типа и исходники вроде как открыты, но вот так взять и использовать RTEMS пионер не сможет. А !пионер будет аккурутно вести себя на рынке, не будет демпинговать (ему надо было жить на что-то эти годы медитации) и т.д.