>>>микроядро XNU
>> EPIC FAIL. XNU -- это монолит-гибрид, полученный сливанием в кучу микроядра
>> Mach из NeXT и FreeBSD-шного BSD
> Ну не монолит же! XNU — это ГИБРИД, больше нацеленный в сторону
> микроядерности.это как это? если гибрид, то это уже не микроядро, где менеджеры в userspace
монолит, неважно что из 2х подсистем, важно, что
ни одна подсистема без другой не работает
cм со стр 66 в [*]
> Из BSD в XNU взята модель процессов, VFS и IP-stack.
а также pthreads, сигналы, процессы, планировщик, интерфейс сисколлов. см. этот[*] pdf начиная с 21 страницы -- чётко видно трамплин из ipc в сисколлы и наоборот, collocation гибридного ядра
см. также "Mach Interface Generator (MIG)" с 30 страницы -- интерфейс int 0x80, >0 -- BSD, <0 -- Mach
>> Ознакомьтесь: http://events.ccc.de/congress/2007/Fahrplan/events/2303.en.html
>> http://osxbook.com/book/bonus/ancient/whatismacosx//arch_xnu...
> Где там про FreeBSD хоть упоминание есть?
[*] http://events.ccc.de/congress/2007/Fahrplan/attachments/1053...
на 4 странице: "with its stable open-source core based on FreeBSD 5.0"
сейчас уже убрали с оффсайта
>> Вот L4/Darbat http://www.ertos.nicta.com.au/software/darbat/
>> ещё более-менее интересен,
> Чем интересен бздунам? Микроядро L4/Darwin может быть интересно в качестве полурабочей
> модели для умозрительной модели серверов GNU Hurd, не более. :))
Интересно как гипервизор для MacOSX -- перетянуть готовые драйвера и готовый пользовательский API из макоси под новое микроядро L4. Примерно с теми же целями, как и L4/Linux.
Выкидываем из макоси Mach, ставим L4 -- получаем L4/Darwin, который в случае более-менее полной реализации эмуляции "верхнего" API будет работать точно так же, только ещё быстрее :))
бида-бида в том, что всего "верхнего" API полностью в открытом виде нет, поэтому нужен Darwin, а не BSD, к примеру :))
хотя всё верхнее может и под Darwin не работать, а под полноценный MacOSX работать.
даёшь L4/BSD вместо XNU=Mach/BSD :)))
> P.S.
> Ощущение такое, что GNU специально создана, чтобы тормозить ВЕСЬ процесс создания опенсурса
> от низкоуровневых вещей, таких как ядро, до прикладных и пользовательских программ.
эээ.. я как бы тупо сравниваю прогресс того же GNU Hurd и того же L4 -- явно не в пользу Хурда :))
вон, Qt довольно легко портировали что в Haiku, что в L4/Genode. Почему в GNU осях с этим сложности?
почитал бложик разработчиков Etoile. Они в общем переписали GCC ObjC рантайм под Clang, он заметно упростился и ускорился (путём выкидывания половины кода + некоторыми оптимизациями под LLVM, правда и в GCC тоже в среднем ускорилось). Это мода такая в GNU выдумывать ненужные сложности на ровном месте? :))