>Приветствую All.
>
>Загорелось мне проапгрейлить сервачок мой маленький.
>Приобрел мамку GA-6VTXDR-C с процами P-III 1.13G
>поставил в качестве теста на нее FreeBSD 4.6 И погнал на ней
>bytebench.
>на ядре kernel.GENERIC просто чтоб было с чем сравнить.
>После теста перекомпилировал кернел в режим SMP выкинув все лишнее.
>и получил интересный результат после теста bytebench на SMP:
>Может ктото прокоментировать сие?
:) Я повторил подобный опыт на Intel SR1200 (которым я уже, наверное, достал здешний форум). Результаты аналогичные. :) Ну не умеет FreeBSD SMP, не умеет!
Приведу то, что однажды мне в ФИДО сказал наш тульский линуксовый гуру:
// Begin
Max> Это не дает повод судить - это лучше, это хуже. Каждый выбирает сам,
Max> что для него лучше. Другое дело - голословные утверждения, что Линукс
Max> лучше БСД, ничем не подтвержденные кроме личного мнения и заявления
Max> факта об осведомленности.
Зашибись. Развлекаться -- так по полной. Сочинение на заданную
тему: чего мне сильно не хватает во Free/Open/NetBSD.
....
3. В *BSD нет SMP. Причины этого очень лаконично и доходчиво
объяснены на http://www.freebsd.org/smp/: "Due to FreeBSD's history,
this is much like trying to fit a square peg into a round hole, and as
such, the intermediate results aren't pretty in many ways. We are
specifically not attempting to rewrite the kernel from scratch, nor are
we on a crusade to fix all the architectural nits currently present in
the kernel.". Т.е., нормальный SMP обещают в 5.0, но как-то очень-очень
нескоро и невнятно. А это, на самом деле, очень грустно, потому что
отсутствие fine-grained locking делает затруднительными многие вещи
(Вы, к примеру, не задумывались, почему RT линуксов -- несколько, а
RT BSD -- только OpenBSD, да и то с большой натяжкой?). Или, к примеру,
введение в 2.5 preemtible option (в двух словах -- когда исполнение
программы идет в kernel space, то она не может быть прервана более
приоритетной задачей, пока не вернется в user space; в случае
preemtible kernel такое возможно) было, на самом деле, очень простым
патчем -- потому что пользовалось всеми возможностями, которые в ядре
уже были. BFKL (The Big Fucking Kernel Lock) -- это что-то очень плохое
из древних веков, от чего стоит избавиться как можно быстрее. Однако,
Free/Open/NetBSD этого сделать не могу, потому что
4. *BSD медленнее развиваются. Тут много причин, одна из которых --
разница в политике разработки. Я очень рекомендую найти в Сети статью
про Базар vs Собор и почитать, полезно для общего развития. Впрочем,
даже не обращаясь к такой долгой теме -- апологеты *BSD очень часто
ругают линукс за якобы нестабильность (действительно, свежие ядра с
ftp.kernel.org брать не стоит, лучше подождать, пока они появятся в
дистрибутиве). Однако, это лишь следствие того, что делает Линус. Ядро
1.2.13 было совершенно не приспособлено к SMP -- там был тот же самый
BFKL -- и Линус ничуть не постеснялся переписать его, отчего 2.0
уже работало на SMP (т.е., как FreeBSD сейчас), 2.2 уже могло
использовать все плюсы SMP, а 2.4 с O(1) шедулером продуктивно работают
на серверах с восемью Xeons на борту -- все за счет введения
fine-grained locking. Заметьте, необходимость fine-grained locking была
понятна еще тогда даже разработчикам *BSD, но они сочли, что
переписывать ядро -- нереально, и, в результате, остались в
хвосте. Другая причина -- сложность кода. Где-то в районе 2.2 были
мысли по поводу того, что ядро становится слишком сложно, и что скоро
останутся считанные единицы, которые способны с ним разбираться. Опять
же, Линус ничуть не постеснялся принять очень жесткие меры по
исправлению ситуации -- и что-то я таких мыслей больше нигде не видел,
хотя общая сложность ядра только возросла. А дело в том, что потроха
ядра были упрощены везде, где только можно. Линус просто не принимал
патчи, если ему казалось, что они плохо документированы, или вносят
какую-то излишнюю сложность, введение которой неоправданно. Этот
процесс, кстати, продолжается -- см.
http://www.kernelnewbies.org/status/latest.html.
В результате, сейчас есть очень хорошо документированный код ядра (Вы
заглядывали? Загляните и сравните с кодом ядра FreeBSD. Удивительная
разница), и, главное, не усложненный без надобности. Вследствие чего, в
свою очередь, предсказываемое замедление темпов развития так и не
случилось. Даже наоборот -- поскольку писать драйвера и расширения
стало проще, их стало только больше. Кроме того, есть еще одна важная
причина -- популярность. Видите ли, у меня на это слово нет каких-либо
комплексов. Мне главное, чтобы линукс оставался а) свободным б)
пригодным к использованию. Так вот, популярность значительно
увеличивает базу добровольных тестеров, что, в свою очередь,
сказывается и на качестве кода, и на скорости развития. Увы, *BSD тут
ничем похвастаться не могу.
5. FreeBSD распространяется под BSD лицензией. Это
плохо. Opensource софт должен быть под GPL, а библиотеки и SDK к нему
-- под LGPL. Можно долго ругаться на эту тему -- что, типа, BSD
лицензия более свободная, что она не заставляет разработчиков
выкладывать свой код под GPL -- но это все лирика, увы. Реальность --
смотрите форвард про историю появления зебры в другом письме. Очень
настоятельно рекомендую почитать его прежде, чем отвечать на этот
пункт.
Итого, целых пять причин. Это помимо уже сказанных -- отсутствия
нормальной явы; отсутствия коммерческого софта; плохой и откровенно
недостаточно документации и проч. И это при том, что во FreeBSD есть
всего две вещи, которых нет в линуксе -- это IPSec (в линуксе оно есть
отдельным патчем, называется http://www.freeswan.org/), и kernel queues
(собственно, необходимые, на мой взгляд, задачи kernel queues решает
aio, но его в stock kernel пока еще тоже нет -- см. 2.5 kernel
status).
В результате возникает интересный вопрос -- нахрена вообще
связываться с системой, которая, с одной стороны, не очень хороша для
десктопа (не потому что софта мало, а потому что preemtible kernel,
которая делает реакцию системы очень быстрой, там нет и не будет), и, с
другой стороны, не очень хороша для high-end серверов (потому что нету
нормального SMP, нету)? Только ради того, чтобы сделать простой
internet firewall? Так ведь линукс делает тоже самое и за те же
деньги. В чем сокровенный смысл, поясните?