>Хорошая архитектура - вещь полезная, но Linux - это паровоз всего свободного
>ПО. Пока академики сравнивают стотысячную красивую архитектуру с каждой из предыдущих,
>дроча на какой-то один конкретный аспект красоты этой архитектуры, Linux пробует Mach2,3,4 - проекты дали жизнь многим идеям и разработкам, использованных в других системах. Wiki/Google. Если не ошибаюсь, nextStep был основан BSD4.4+Math3.
Проблема была вполне логически-техническая - чрезмерно высокие затраты на обработку сообщений между компонентами, IPC.
---
Пока писал с перерывами на работу :)
freebsd# grep -l 'Mach Operating System' /usr/src/sys/vm/*
/usr/src/sys/vm/pmap.h
/usr/src/sys/vm/vm_contig.c
/usr/src/sys/vm/vm_fault.c
/usr/src/sys/vm/vm_glue.c
/usr/src/sys/vm/vm_init.c
/usr/src/sys/vm/vm_kern.c
... Итого - 17 файлов из 44, значительная часть системы управления памятью.
---
Minix3 - совершенно новый проект. Ему по техническим меркам от году неделя. Показывает неплохие результаты, затраты на IPC намного меньше чем в Math - ~6% Minix3 и ~15-80% по разным инкарнациям Math, в сравнении с работой ~того же кода в ядерном режиме.
Не столь большая стоимость за устойчивость.
pf, bgpd, ipsec портированы из OpenBSD в другие системы. Действительно, компактный и устойчивый код.
ну и так далее...
Да, с помощью кода Linux kernel от рабатывается много идей, и хороших.
Но в чем проблема, причем корни ее уходят в саму идеологию разработки.
Fast & dirty. Сейчас работает - и ладно. И можно забыть. Нет вдумчивого пересмотра, нет вдумчивой идеологии с запасом на будущее.
Только появился LVM1 (только - по проектно-техническим меркам), как уже обкатывается LVM2, со структурой c LVM1 несовместимой.
Только-только устаканился Xen - все, извините, в новых ядрах его не будет. Наигрались, объявили устаревшей технологией.
И так далее...
Нет приемственности и переноса кода даже внутри проекта Linux kernel.
И очень плохие возможности переноса кода ядра в другие системы. Этого как бы и не предусматривается в техничеcкой постановке задач на компоненты. Есть только kernel, и все другое пусть идет лесом.
Большинство кода, составляющего дистрибутивы (приложения), с успехом может работать и с другим ядром.
И неисключено, что наступит момент, когда 350Mb+ кода ядра будет проще "покрасить и выбросить", чем использовать в новой инкарнации.
И очередное поколение будет говорить "Linux - старье, L'alix - это ново, это круто, вереди планеты всей".
Не исключено, что (а почему бы и нет?) этой основой станет тот же Minix3,4,5.
Распиаренный "паровоз" - это да.