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

FreeBSD – не черный ящик: Константин Белоусов. 2


Сегодня заключительная часть нашего интервью с Константином Белоусовым (FreeBSD Core Team). Какие самые слабые и сильные места у FreeBSD? откровенный разговор с одним из ведущих отечественных разработчиков этого проекта.

Кто пропустил, начало интервью ищите в прошлом посте.

 

 

Сейчас традиционная парочка для сравнения (для т.н. holy war) — это FreeBSD и Linux, в связи с этим, можно ли услышать ваше экспертное мнение, какие сейчас у них ГЛАВНЫЕ технологические отличия, если оставить в покое разные лицензии и организационные подходы в разработке?

Давайте я на этот вопрос отвечу так — понятия не имею. Мне Linux СОВЕРШЕННО не интересен.

О’кей, тогда давайте это спросим по-другому. Какие, по вашему мнению, сейчас самые слабые стороны/места в FreeBSD 8? Меня интересуют именно технические особенности этой ОС. Если можно, перечислите, по-возможности откровенно.

  • X-ы. Сейчас X-ы крайне активно меняются (рука не поднимается написать «улучшаются»), но это разработка крайне Linux-центрична. В какой-то момент мы должны спортировать новые X-ы;
  • Journaling в UFS еще слишком сырой;
  • usermode tools у нас уделяется гораздо меньше внимания, чем ядру;
  • в базовой системе старый gdb, а релизы gnu gdb не понимают очень многих вещей, специфичных для FreeBSD;
  • драйверы для нового consumer-level железа появляются поздно;
  • многие писатели приложений в последнее время считают единственной Unix-like платформой — Linux (см. выше про X), отсюда частые проблемы с приложениями.

И ещё, сюда же: у FreeBSD нет поддержки NUMA, это правда? Если нету — причины?

Нет, в том смысле, что нет специального allocator’ a, который бы пытался активно угадывать будущее. В HEAD появился примитивный NUMA-aware allocator, который, насколько я понимаю, пытается выделить страницу на той ноде, на которой выполняется нитка. К сожалению,  — от него больше вреда, чем пользы.

Что касается NUMA вообще, то правильно подобранный benchmark может показать, по-моему, 2-х кратное превосходство NUMA-aware планировщика и allocator’ a. В реальных же нагрузках, на обычных x86 SMP машинах, поверьте, вся разница теряется в погрешностях измерений.

Хорошо, теперь давайте сыграем наоборот. В чем сейчас FreeBSD 8 технологически и объективно очень сильна по сравнению с другими ОС?

  • Сейчас «ядро» в очень хорошем состоянии, глубоко отлажено и содержит массу очень правильных и продвинутых архитектурных решений. Как частные примеры, можно упомянуть interrupt threads, крайне малое количество spinlock'ов в системе (это все предмет ещё предстоящих RT-патчей для Linux’a, по крайней мере я об этом читал).
  • Наша VM по-прежнему очень понятна и реализует эффективные алгоритмы.
  • IPv6 стек в FreeBSD считается одним из лучших, например, из совсем недавнего см. http://isoc.org/wp/newsletter/? p=2522 – кстати, это один из наших самых активных разработчиков.
  • Virtual Access Points предоставляют, насколько мне известно, уникальную возможность запускать несколько виртуальных точек доступа на одной wifi-карточке.
  • Совершенно прозрачная реализация superpages, не требующая от приложений никаких усилий для их использования, в отличие от Linux’ а или Solaris’ а.
  • ^T на терминале (почти шутка, этого мне очень не хватало в других Unix’ ах)
  • Jail’ ы “из коробки”. Не нужно ставить какой-то VPS (для Linux’ а). Зоны в Solaris’ e уже переросли наши Jail’ ы, но после того, как VIMAGE все-таки окончательно закончат, это будет эквивалентно.
  • Для кого-то важным будет наличие: DTrace, ZFS, аудита или MAC’ а.

Ко всему этому хочу добавить: очень важным качеством FreeBSD для меня лично является очень понятный и во всем логичный код системы —
она не “черный ящик”.

 Насколько эффективно использует текущая FreeBSD 8 современные многоядерные процессоры, по вашему мнению?

Вопрос совершенно некорректный. Масштабируемость FreeBSD на MP-системах, как и любой современной SMP-aware системы, зависит лишь от нагрузки.

На таких нагрузках, как make -j N buildworld, рост линейный с ростом N до числа процессоров. Известное проблемное место у FreeBSD — одновременные чтения и записи из разных ниток в один файл. Кроме того, у подсистемы VM появляются проблемы с contention при некоторых нагрузках и числе процессоров в районе 32.

 
Константин здесь по-середине: "Хорошая кружка для пива..." 

Как профессиональный системный программист драйверов для Solaris, копались ли вы во внутренностях OpenSolaris? Что можно сказать про эту ОС с технической точки зрения?

Нет, я почти не читал код Solaris’ а.

Но с технической точки зрения система очень интересная. FreeBSD, помимо импорта zfs и dtrace, использовала некоторые важные идеи из Solaris’ a. Как пример, можно упомянуть interrupt threads и turnstiles. Но тут заимствование было только на уровне идей, а не кода. В качестве источника для этого использовалась известная книга «Solaris Internals».

Solaris основан на коде System V Release 4, что делает его фактически reference implementation для ELF и runtime linker.

Да, я знаю, Solaris – это ОС которую вы очень уважаете, но она ныне попала в “кровожадные руки” Oracle, как думаете будут развиваться события далее, какая судьба ждет Solaris? Выступите в роли предсказателя, пожалуйста :)

Понятия не имею. Возможно, он окончательно откатится в ту же нишу, в которой сейчас прозябают HP-UX и AIX. Другими словами, он будет безразличен большинству.

Все-таки, что вы можете сказать новичкам — годится ли FreeBSD как десктопная система в настоящий момент… Всё-таки превалирует то мнение, что FreeBSD — это более серверная ОС, негодная для десктопа.

Разъясните мне разницу между «десктопной» и «серверной» ОС, иначе я просто не смогу ответить на этот вопрос… На моем лэптопе и домашней рабочей workstation стоит FreeBSD (stable/8 latest). Я использую машины для почты, браузинга web’а, моих репозиториев кода, компиляции и отладки (ядро — в QEMU), просмотра фильмов, музыки, IRC, чтения документации и иногда книжек и т.д. 

Чем FreeBSD непригодна для всего перечисленного?

Что конкретно можно пожелать людям, мечтающим стать настоящими системными программистами или продвинутыми администраторами в FreeBSD? Какие есть вспомогательные источники информации для этого старта?

Сначала нужно уверенно освоить базовое администрирование Unix, научиться программировать на C, освоить API Unix’а и работу с CVS/SVN. Потом нужно разобраться с архитектурой ядра FreeBSD, и научиться непосредственно читать сам код.

Что касается вспомогательной информации… Очень много полезного для новичка есть в системных man’ах, кроме того, очень давно в начале своего пути я прочитал книжку Кернигана и Пайка «Unix Programming Environment». Именно после нее мне начала нравиться система, и у меня возникло желание разобраться с ней лучше.

Нужно также помнить, что у проекта для этого случая есть свой FreeBSD Developers' Handbook.

Более общий вопрос. Какие технологии из мира open source вы считаете по-настоящему перспективными и считаете, что за ними будущее, можете их перечислить? Какие проекты лично вас впечатляют? Например, сейчас очень много восхищений и эпитетов можно услышать про ZFS…

ZFS я не пользуюсь. Мне тяжело что-либо сказать о “новых технологиях”, я человек сравнительно консервативный и ничем новым в последние 10 лет пользоваться не начал, разве что nginx’ ом, и совсем недавно стал использовать Cassandra.

Cassandra действительно произвела на меня большое впечатление.

Скажите, работа в FreeBSD на таком высоком посту — это полностью бесплатный труд, или все же есть гранты, или ещё какая-то система материальной стимуляции вашей работы в Core Team?

Полностью бесплатный, в том смысле, что я не получаю никаких материальных поступлений от проекта. Скорее, я сам трачу свои средства на интернет, нормальное железо для себя, свое время и т.д. С другой стороны, — статус в проекте производит впечатление на работодателя.

Конечно, мне бы хотелось заниматься только FreeBSD, и иметь за это денег не меньше, чем я сейчас зарабатываю, но это нереально, скорее всего…

Как вы относитесь к современным высокоуровневым языкам программирования, типа Java или C#? Какие ваши предпочтения как программиста вне проекта FreeBSD?

Нормально отношусь. Я всегда предпочитаю кодировать usermode-код на языках достаточно высокого уровня, т.е. по крайней предоставляющие встроенные средства работы с развитыми структурами данных, type safety и GC.

Если бы была возможность, то на работе я бы использовал Common Lisp. Пару раз так и делал. Если нету, то Perl, Python (раньше любил Python, в последнее время больше Perl), Java.


 Смотрите начало этого интервью здесь.

Интервью взял Игорь Савчук, 2011 ©  «Системный администратор” (samag.ru)


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

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

Следите за комментариями по RSS
  1. Спасибо за оба интервью! Прочитал с удовольствием

  2. А кто или что подразумевается на картинке в начале второй части интервью?

  3. Какой-то коммунистический чорт, судя по всему (на картинке в самом верху).

  4. Stringer, да, слово коммунистический не пришло в голову, вертелось "сионистский" и это слово никак не приклеивалось к FreeBSD.

  5. "Сионистский черт" - Лев Тройцкий (Лейба Бронштейн). Стыдно, товарищи.

  6. Я конечно всё понимаю, но после слов «раньше любил Python, в последнее время больше Perl» становится ясно, почему FreeBSD стремительно теряет пользователей.

  7. Комментатор 21

    Мда...

    ты явно неадекватен. Python еще более кривой чем Perl, у перла хоть из-за синтаксиса только проблемы (и то это очень спорный вопрос), а у питона явные проблемы с архитектурой языка.

  8. а правда что создатели и те кто пользуется FreeBSD это заядливые олдфаги которым нравится командная строка ? и больше им ничего от ОС ненадо

  9. Очень интересное интервью. Побольше бы таких!

  10. Комментатор 23 явно не влдеет vi

  11. аноним, до написания предыдущего поста я владел vi, vim, ee, согласен разница есть, я не спрашивал у гуру как выйти с vim, у меня была тяжолая и упорная учеба на Linux сначала, в момент написания поста, я бегал с одного дистрибутива Linux на другой, честное слово устал, и читал про FreeBSD, и ктото сказал смысл моего предыдущего поста, а я лишь спросил ( разьве я виноват что в интернете пишут что FreeBSD это только командная срока ). Но я уже на FreeBSD & PC-BSD, прочитал документацию на русском языке для пользователя, все понятно и меньше дурных вопросов.

    думаю на линукс я врятле вернусь после установки BSD, идеального ничено нету, но FreeBSD для себя я вижу только +, всем удачи!

  12. Что то этот жирный очкарик нагловато себя ведет, хамит, дерзко отвечает на безобидные вопросы. Он себя богом что ли представил? Взять такого и башкой в унитаз пару раз окунуть. Король бсд блять

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

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

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

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

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

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


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