Просмотров: 18641

БСД: Большие и Страшные Демоны (1)


Как уже, наверное, читатель догадался из названия к этой статье, сегодня мы поговорим о BSD-системах - свободных и гордых серверных ОС, берущих своё начало из благородного и древнего  берклианского рода ЮНИКС. Впрочем, как будет видно дальше, неизбежно, мы будем невольно касаться рассмотрения и их сравнения с другой суперпопулярной ныне ОС Linux, которая в свою очередь, также представляет свободный клон ЮНИКС, но разрабатываемый c нуля и уже по другой идеологической модели, а также несколько отличной лицензии.

Конечно, проект университета Беркли, в результате развития BSD давший миру стек протоколов TCP/IP, DNS, sendmail, и многое-многое другое,  без чего сегодня невозможно представить тот же Linux, сегодня отчасти незаслуженно находится в тени своего более молодого и шустрого "коллеги" - детища Линуса Торвальдса. FreeBSD - это академическая система, которая  разрабатывалась фактически представителями от науки и по всем канонам науки, используя классические и отточенные временем алгоритмы (до сих пор, почти все рекорды по продолжительности непрерывной работы (uptime) удерживают именно BSD-системы). Процесс проектирования во всем BSD-сообществе более упорядоченный и строгий, а системы, созданные в ходе этого процесса, - более консервативные и менее удалившиеся от оригинального ЮНИКС. С другой стороны Linux - это больше молодежная и анархистская  по духу экспериментальная система, с её ярко выраженным поиском нового и непочтением к авторитетам.

И дело даже не в принципиальном споре Торвальдса с Таненбаумом, где создатель Linux всё-таки пошёл "своим путем", а в том, что экспериментальная суть его ОС слишком очевидна на фоне, к примеру, той же фундаментально-классической FreeBSD. Так, в одном из очередных своих споров, Торвальдс невольно сравнивает со своим Linux и конечно осуждает, как в своё время Minix, теперь уже устройство FreeBSD, а также устройство взявшей её за свою основу MacOS X. Горячий финский парень Линус назвал их создателей "некомпетентными идиотами" ("I claim that Mach people (and apparently FreeBSD) are incompetent idiots").

Именно поэтому, с наиболее частого заблуждения, которое я встречаю у людей далеких от мира ЮНИКС, и с развенчания которого, я бы хотел начать свой обзор BSD-систем, - это попытка рассуждать о FreeBSD как о "некоем клоне Linux", - хотя такое уравнивание этих очень разных систем, на самом деле, мягко говоря, некорректно.

В 2004 году на конференции Microsoft TechEd в Амстердаме с довольно интересным и несколько неожиданным докладом выступил Марк Руссинович  - хорошо известный знаток Windows из Microsoft, а также признанный специалист в области современных операционных систем. Неожиданность его выступления состояла в том, что он посвятил его анализу устройства ядер Windows и Linux, и общий его вывод сводился к тому, что начиная с версии ядра 2.6, архитектура ядра Linux по своему функциональному и системному дизайну ядра стала практически идентична архитектуре ядра детищу команды Дэвида Катлера - Windows Server 2003. По авторитетному мнению Руссиновича, повторная входимость (или реентерабельность) ядра Linux 2.6 стерла последние принципиальные различия в устройстве системной части этих ОС и сместила все видимые и принципиальные отличия этих систем уже в пользовательскую область. Поэтому, как ни странно это звучит, Linux по своей глубинной "начинке" гораздо ближе к Windows, чем например, к FreeBSD, с которой её часто ошибочно сравнивают. Хотя, конечно, если сравнивать по такому критерию как юзерлэнд (пользовательское окружение) - действительно, он у них более или менее похож, что и создаёт некоторую иллюзию общности этих систем.

На самом деле, гигантскую разницу подходов в идеологии устройств ядер Linux и FreeBSD можно примерно пропорционально проиллюстрировать на примере разницы устройств их дефолтных файловых систем: Linux, также как и Windows - вместе используют журналирование, тогда как у BSD-систем, по-умолчанию, применяется принципиально другая стратегия - soft updates. И такие диаметральные расхождения можно наблюдать на всех уровнях системных решений между ядрами этих ОС. Хотя, ради справедливости нужно отметить, что начиная с ветки FreeBSD RELENG_5 архитектура FreeBSD взяла курс отчасти идентичный с идеологией Linux, категорическое несогласие с чем у группы товарищей и послужило причиной создания форка FreeBSD - DragonFly BSD.

Возвращаясь к историческому и принципиальному спору студента Линуса с профессором Таненбаумом, можно только заключить, что время расставит всё по своим местам, и всё великое, как обычно - видится издалека, в нашем случае - через призму времени.

Давайте посмотрим, на примере Linux и Windows, куда нас ведет модель монолитного устройство ядра. Итак, ядро Linux 2.6 к моменту его анонса насчитывало около 4,2 млн. строк кода - мягко говоря, это гнетущее число (утешения линуксоидов о том, что порядка 50% кода ядра - это фактически "драйверный код", ситуацию нисколько не улучшает). Судите сами, по данным Гэри МакГроу (CTO компании Cigital, специализирующейся на управлении качеством в процессе разработки ПО), непосредственно на само ядро (т.н. Native WinAPI + все вспомогательные сервисы и базовые драйверы) у Windows 2003 приходится примерно около 5000-7000 млн.строк кода, и все эксперты признают, что это очень много. Учтите, что текущая версия ядра Linux уже давно перевалила за 6000 млн.строк, и бешеный рост ядра только продолжается. Я уверен, что с такими темпами, размер ядра Windows будет казаться просто крохотным в сравнении с ядром Linux, уже через лет 5-7 развития Linux по такому сценарию.

В самом деле, тревогу забили уже давно: на конференции LinuxCon 2009 корпорация Intel в связи с этим организовала круглый стол во главе с Линусом Торвальдсом, посвященный проблемам развития ядра. Инженер из компании Novell Джеймс Боттомли, привел данные исследования Intel посвященного Linux. В нем говорится, что производительность Linux падает на два процента с каждым новом релизом, а общее снижение производительности за последние десять релизов достигло 12 процентов. "Мы стали раздутыми и огромными. Да, это проблема", - это все, что сумел тогда сказать парням из Intel Линус Торвальдс. После уточняющих вопросов, он добавил: "Да, мы не располагаем планом по исправлению этой ситуации".

С тех пор прошел почти год, и что вы думаете - рост объема ядра Linux даже ускоряется, на этот раз уже недавно всполошился даже сам Линус: "Я недоволен его (ядра) размером - надо признать, что он не столь велик по сравнению с предыдущей версией, но прошлый наш релиз был и вовсе невероятно большим. Когда я вернусь (из отпуска), я  действительно хотел бы убедиться, что проблемы подобного рода снова не возникнут в последующих релизах".

В этом месте хотелось бы сделать небольшое отступление, и поговорить о символике или талисманах Unix-дистрибутивов, обсудив т.н. mascot проектов. Линуксоиды очень символично выбрали своим талисманов неуклюжего, медленного и жирного пингвина - Тукса. Что любопытно, до 1998 года Тукс всегда изображался на всех логотипах Linux вертикально стоящим на своих лапках, но дальше, наверное, его дела пошли совсем уже плохо и официальное изображение Linux вдруг сменили на новое - сейчас это уже не прямостоящий, а упавший и теперь сидящий на пятой точке ленивый пингвин, навечно протянувший свои ласты, величественно демонстрирующий публике свой большой пивной живот.

Жирный пингвин       Чертенок
Другое дело в мире BSD - здесь своей эмблемой выбрали энергичного и молодого чертенка, который сжимает в своих руках трезубец, символизирующий многозадачность и системный вызов fork(). Этого чертенка в кедах зовут очень скромно и мило - beastie, что является уменьшительно-ласкательной формой от слова Beast, т.е. Зверь (тот самый, библейский, из Апокалипсиса), так что "бисти" может быть как вариант трогательно переведен как "зверёныш", или даже "антихристик". И хотя у этого чертёнка есть имя собственное - Chuckie, -  многие всё же предпочитают называть его по происхождению. Из истории развития БСД-систем известно очень много анекдотичных историй, когда бородатых и хмурых BSD-администраторов, одетых в майки с символикой FreeBSD, местные власти принимали за отъявленных сатанистов. И хотя по политическим причинам проект FreeBSD уже давно сменил забавного чертика  на правильно-политкорректного "сферического черта в вакууме", комьюнити по-прежнему продолжает ассоциировать BSD с различными ипостасями адского бисти.

Официальная новая эмблема FreeBSD

Конечно, на самом деле, мир ЮНИКС населен не ужасными христианскими демонами, а даймонами - уводя объяснение этой символики к греческой мифологии, где даймон - это бесплотное невидимое глазу бессмертное существо, которое обитает в нулевом кольце (почти по Данте), где трудится день и ночь не покладая своих метафизических рук и не зная усталости, при этом обладая особой, магической силой над миром всех остальных - смертных и непривилегированных (существует версия, которая имеет право на жизнь, что понятие демонов пришло из знаменитого умственного эксперимента с демонами Максвелла, но если это так, откуда взялся тогда этот адский, кромешно черный экран консоли, на фоне которого и развиваются все события в мире ЮНИКС?) .

Ну, а что же насчет мнения Линуса Торвальдса о "некомпетентных идиотах", так упорно разрабатывающих FreeBSD и Apple MacOS X, которое я упомянул вначале статьи? Разработчики как минимум FreeBSD ответили на это Линусу, прислав ему по почте подарок-коробочку перевязанную праздничными ленточками, в которую были заботливо положены накладные рожки чертика Бисти, а также кусочек бумаги, на котором были распечатаны всего три слова: "man zero_copy RTFM". Если таки почитать этот ман во FreeBSD, как настоятельно советует заботливо приложенная записочка, то можно увидеть, что там дословно повторяется всё то, что говорил Линус об опасности техники ZERO_COPY_SOCKET, и потому его страстный монолог-лекция "об идиотах" уж никак не могла стать нравоучительным откровением для разработчиков FreeBSD. Именно поэтому в FreeBSD эта технология отключена по умолчанию. Не знаю, читал ли Линус рекомендованный ему ман, но зато как можно видеть на некоторых фотографиях в сети Линус публично водрузил эти самые рожки себе на свою голову, охотно приняв этот символический жест, который ему заочно предложили в знак покаяния.

 Краткая суть статьи выраженная символически

Мораль всей этой истории как всегда одна - RTFM, RTFM и ещё раз RTFM: будь вы простой смертный работающий под аккаунтом nobody или даже отец мировой операционной системы, но от изучения системных манов вас никто не освобождал - и это общая для всех ЮНИКС-систем жесткая установка.

На этом с введением у меня почти всё, ну а в следующий раз мы поговорим уже о большей конкретике: о дистрибутивах и модели развития BSD, ну и также, конечно, о настоящих BSD-администраторах, которые по старой традиции по ночам собирают FreeBSD из исходников, и лишь под самое утро, после того как пропоют первые петухи, выполняют команду install world, дабы завершить содеянное.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , , , , ,
Эта запись опубликована: Суббота, 11 сентября 2010 в рубрике Unix'овое.

17 комментариев

Следите за комментариями по RSS
  1. бред...

    5000-7000 млн.строк кода????? исправьте ошибку. и вместо придумывания дурацких сравнений эмблем займитесь сравнением по существу.

  2. анонимус

    Статья ни о чем. Вода-вода-вода. И кстати, демоны так называются в честь демона Максвела (я думаю, вы легко найдете информацию об этом мысленном эксперименте).

  3. Дааа чувак! это пять!!!отличная годная для троллинга линуксоидов статья. Полностью с тобой согласен.

  4. Спасибо! Интересный рассказ о BSD, написанный понятным языком )

  5. 6000 млн строк кода :) может все же просто 6 млн строк кода? и винды явно не 7000 млн строк кода. Автору неплохо бы перечитать содержимое

  6. сто тыщь мильёнов строк кода, ага.

  7. ядро винды составляет более сорока миллионов строк кода

  8. Хорошая общеобразовательная статья. Полезна как новичкам, так и знатокам. Различным будет восприятие материала. А по поводу опечаток - так они есть (кое-где падежи не сходятся :). Можно не так уж и внимание обращать на это.

  9. Доброго дня!

    Информация о демонах и даймонах взята с русской Википедии, где она тоже кем-то откуда-то содрана. Концов не найти, и вряд ли удастся достоверно ее подтвердить. Версия о демоне Максвелла, приведенная в одном из комментариев выше, выглядит более вменяемой.

    С другой стороны, в подобных "версиях" отчасти и заключен таинственный дух загадочных BSD-систем, которого лишен Linux. Зато у Линуксоидов есть Торвальдс, который все больше себе позволяет: если сначала просто срывался в рассылке на программистов, присылавших ему патчи, то теперь перешел к прямым оскорблениям авторов более совершенных (в техническом плане) систем. Жалкое зрелище.

    Главный минус материала вижу в ссылке: bsd-big-scary-daemons-freebsd-vs-linux-1. Достопочтенный автор материала слишком любит красавицу Free, чтобы написать хотя бы полуобъективный versus.

    Прочел с удовольствием, Игорю спасибо.

  10. Словарик

    Демон Максвелла совершенно не причем. Это легко заметно, для тех кто знает английский:

    Maxwell's demon,

    А в юниксах daemon - это разные слова, с разной этимологией.

  11. автор статьи некомпетентный идиот и придурок. прежде чем Linux хаять, сначала дорасти до этого уровня!

  12. Вот зачем сравнивать тёплое с мягким? FreeBSD - это ОС, а Linux - ядро.

  13. Ariel Feinerman

    >устройство взявшей её за свою основу MacOS X

    во-первых, она основана на NextStep, не на Free BSD, во-вторых, она использует соглашения и утилиты консоли наиболее близкие к BSD (но не тупо взятые), в-третьих сервисы, запускаемые поверх микроядра , естественно переписаны, но сами они транслируют все вызовы Mach, просто чтобы использовать основанные на них стеки протоколов и код из Free / Net / Open BSD

  14. "суперпопулярной ныне ОС Linux"

    Ядра Linux.

  15. "у BSD-систем, по-умолчанию, применяется принципиально другая стратегия - soft updates."

    Во FreeBSD по умолчанию уже тоже применяется журналирование точнее "journaled soft-updates".

  16. Нормальная статья. До сих пор не могу понять, почету мне надоел Linux (Debian). Что-то тупит. Хочу перейти на FreeBSD. Всё больше скланяюсь к тому, что единая система разработчиков Это всё же лучше Для ОС чем "с миру по нитке". //Может я и не прав

  17. действительно, FreeBSD это вещь. не знаю чем бы я пользовался если бы не не эта ОС. на данный момент, то есть на начало 2016 года, разница в производительности пусть с тем же стабильным выпуском Debian-а видна невооруженным глазом. про какую нить Бубунту я вообще даже молчу, это земля и небо.

    FreeBSD это полноценная операционная система, в то время как GNU/Linux это набор с костылей-заплаток разного качества, порой очень даже сомнительного, так же как и их авторы, которые порой тоже вызывают некоторого рода сомнения, как например пульсаудио и системд всем известного "программиста".

    да и на десктоп как по мне очень даже даже годиться -- только FreeBSD и юзаю, в то время как PC-BSD это имхо не то совсем, как и по уровню производительности, так и по юзабельности -- не очень она у них получилась, очень много лишнего, в то время как на FreeBSD можно настроить и поставить то ПО и функции, которые тебе нужны. в итоге получаем самую годную на данный момент UNIX-подобную операционную систему, с которой не сравниться ни один GNU/Linux дистрибутив.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз