>[оверквотинг удален]
>>- сложность всех систем шаг-за-шагом возрастает. Экспотенциально возрастает неустойчивость, также как
>>и затраты на проектирование отдельных компонент под технические условия.
>>
>>Надо просто за деревьями увидеть лес.
>
>А почему Вы думаете, что микроядерность это именно тот самый путь, о
>котором Вы говорите :)?
>
>Может быть, это все-таки распределенная ОС? Почитайте про Inferno :) Признаюсь, что
>сама про нее знаю мало, но концепция завораживает)) Застал то время, когда с консоли (это не был даже не видео-телетайпный терминал, это панель с кнопками и индикаторами на процессорной стойке) можно было остановить процессирование, загрузить данные кода в произвольный участок памяти и тут же набором адреса начать выполнеение этого кода.
(Сейчас пишу это на нетбуке с бытовой архитектурой такой фичности, что тогда и не представлялась, а сейчас даже сам не верю в прошлое - неужто так было? :) )
Максимальное выделение аппаратно-зависимой части позволит получить свободу процессирования от конкретного оборудования, и управления оборудованием от конкретного процесса.
Представте, у вашего оборудования на гипотетической шине SFI некоторое количество блоков быстрой и медленной памяти, коммуникационных модулей, и несколько процесорных модулей, каждый процессорный модуль работает со своим управляющим процессом.
В случае веделения, скажем, коммуникационного стека в отдельную задачу, вы можете перенести его с одного процессорного модуля вместе с его окружением, на другой процессорный блок, и погасить первый, скажем, с целью уменьшения энергопотребления, или замены в связи с неисправностью.
(Как частный случай, подобное делал с помощью QNX в 1999 году, на двух 486 и 10BaseT ethernet, детали уже с трудом вспоминаются, столько всякого за эти годы, но было жуть как интересно :) )
Более того, за счет компактности управляющего процесса процессорного модуля, можно мигрировать и его на другой (скажем, новый, или проснутый) процессорный модуль.
Так что идеи компактизации ядра и распределенных вычислений - сильно связанные идеи.
А встраиваемые системы с одним универсальным процессором - это возможность получить устойчивость и минимизацию использования ресурсов - проснулся перифирийный блок, по данному событию запущен(ы) процесс(ы)-водители. Уснул - быструю память освободили, нефик занимать место.
Водитель выпал в неадекватность, пытался повлиять на что-то вне своего регламента, или еще как был оценен как неисправный - заменен новым экземпляром, с запуском ремонта и/или оценки состояния оборудования.
И так далее.
Насколько важна для встраиваемых систем устойчивость и собственно робастность, думаю расписывать нет необходимости.
Блин, сколько написал :)
Тема хорошая. За напоминание об Инферно - спасибо, уже закачиваю исходники этого года. Последний раз смотрел релиз 3-бета, давно это было, да и времени-сил не было разобраться получше.