Здравствуйте, iZEN, Вы писали:
ZEN>Основным аргументом Линуса против Таненбаума, как известно, было высказвание об усложнении связей между микроядром и подсистемами/драйверами, из-за чего страдала производительность. Так что на тот момент (1991-92гг.) было лучше делать системы моноядерными в пользу практичности, простоты и быстродействия. Ведь в те времена преобладали в основном машины с процессорами i386 и i486 и объёмом памяти не больше 4МБ.
Имхо, по поводу практичности и быстродействия довольно спорное утверждение, т.к. в тогда уже существовала микро-ядерная ОС QNX. И производительность у нее была вполне достаточной, тем более, что это Real-Time OS.
Насколько я помню, как раз в Real-Time OS микроядро и старались применять, т.к. только этот подход давал возможности для обеспечения надежности и предсказуемости. В частности, вынесение драйверов из ядра позволяло прерывать работу драйвера при более приоритетным прерывания, которое адресовалось real-time процессу. Еще одним фактором в пользу микроядерности в Real-Time OS было то, что OS сама по себе состояла только из минимального набора модулей (главным из которых был диспетчер). А остальные части (такие как GUI, shell-ы, файловая система) были опциональными и могли приобретаться только в случае их необходимости (для многих встраиваемых приложений они были вообще не нужны).
Так что уже в то время были реальные доказательства возможности построения работоспособных систем на базе микроядра. Другое дело, что подобное занятие было более трудоемким. Будучи прагматиком Линус выбрал более простой путь.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.