При всем уважении к linux он становится все более громоздким и сложным. Не так давно заинтересовал меня такой проект http://prex.sourceforge.net/
на arm она уже портирована, собственно для портирования на конкретный soc требуется только таймер реализовать ну и конечно для uart драйвер переписать чтобы консоль иметь. Пробовал гонять ее на эмуляторе integrator/cp (эмулируемая система по умолчанию на qemu-system-arm) - не получилось запустить вариант с MMU, без поддержки MMU работает. Что привлекает - простота, микроядерная архитектура (размер микроядра < 25 кб), хорошее описание (документация идет в архиве с исходниками), полностью открытая bsd лицензия позволяет использовать в коммерческих проектах без ограничений, реалтайм из коробки, эмуляция posix (не полностью реализована) - можно портировать готовые приложения при желании. Больше всего она меня привлекает конечно в познавательных целях :) По мне так идеальная система для экспериментов в изучения процессоров и операционных систем вообще.
ps есть большой минус - пока вообще нет поддержки tcp/ip и вообще сетевой подсистемы.
ну сеть у них в планах. глянул мельком - в принципе натянуть ее на местный платы можно. вопрос - накуа? =) если только сунуть во внутренний флэш ХЕ512-го.
Лично для меня - в тренировочно-познавательных целях :) Мне показалось в ней есть то чего не хватает существующим ОС. linux- громоздкий и не реалтаймовый (то же самое с xBSD), qnx- стоит денег и несвободная лицензия, большое количество разных открытых и не очень проектов в основном для микроконтроллеров с сильно ограниченными ресурсами - при современном темпе развития микроконтроллеров такие скоро будут вообще не востребованы да и просто не интересны.
там последнее обновление - август 2008-го. в планах - поддержка сети. или скоро появится версия 2.хх или бобик сдох.
з.ы. код с "интегратора" хорошо ложится на 926-е ядро. с напильником, ессно.
У них список рассылки девелоперский есть http://sourceforge.net/mailarchive/forum.php?forum_name=prex-devel
судя по нему проект живет, есть git с текущей девелоперской версией, ссылка есть там в архиве рассылки где-то. В git-е есть порт для beagleboard, правда он без mmu. Я сейчас занялся портированием на 9260ek, но опыта нет - много времени уходит на понимание того как все работает, а без полного понимания опять-же неинтересно :)
решил собрать в дебиане. с первого пинка - нифига. скачал последний билдрут, собрал. скачал последний гсс (4.4.3), ему понадобились еще два компонента. скачал, собрал. собрал гсс. начал компилировать прекс. ошибка! в debug.c нет __std_startup чего-то там. погуглил. нашел патч для убунту =) глядя на него поправил include\arm\stdarg.h. собрал для и386 и арм-интегратор. вечер убил. поглядел, что нужно поправить для перехода с "интегратора" на 9260-й. я его по куниху хорошо знаю. работы примерно на пару часов. там же только уарт поправить =) вот когда сеть добавят - тогда прийдется поплясать. так что, Александр, если вопросы будут - задавай смело.
1) gcc я не патчил а собрал тулчейн для голового железа - arm-elf-gcc и тд (не linux-тулчейн) потому что в линуксовом нет ф-ции для обработки ошибки деления на 0 - это первое с чем я столкнулся и почему не собиралось, думаю еще есть отличия.
2) может работы и на пару часов но у меня больше ушло :) и пока есть проблема с tty драйвером, непонятно ядро на trap выскакивает при вызове tty драйвера, само ядро в принципе работает. tty допинаю - перепишу uart драйвер на работу с dma.
3) планирую написать драйвер для lcd от сименса для консоли, с клавиатурой только не знаю как поступить - с usb не охота заморачиваться, проще ps/2 прикрутить, там протокол очень простой, правда нужно 5 В, с gpio проблемы опять же, думаю стабилитроны повесить 3 В на лапы gpio, скорей всего клавиатурному контроллеру хватит и 3 В.
вопросы конечно есть, но я привык сам доходить - если упрусь на чем-то - будет повод поговорить :) Командировка тут назревает в конце недели в севергазпром на неопределенный срок - так что придется наверно прерваться на время..
Для сборки голово тулчейна брал скрипты здесь http://tuxotronic.org/wiki/tutorial/arm7-build-toolchain
там с newlib собирается, версии gcc newlib binutils можно на свои поменять. Пробовал собирать bar metal gcc в crosstool-ng - почему то не срослось, собирается но не работает.