FreeBSD

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску
FreeBSD и Linux всегда были близки
Мальчик Livejournal user icon.pngshadowlamer застукал меня за чтением bdsm-howto.ru. Я отмазался, сказал, что искал howto по BSD системам, но опечатался.

FreeBSD (бздя, фришка, фря, фряха, фрибээсдэ, фриэлэсдэ, фрибэдээсэм, фриэбэсодэ) — UNIX-подобная операционная система, основанная чуть менее, чем полностью на коде BSD Unix (на самом деле UNIX-код был вычищен еще до 1995, к моменту выхода версии 2.0). В отличие от многочисленных кучек задротов, высерающих 9743 вариации линуксов с использованием ядра от Линуса Торвальдса, FreeBSD разрабатывается как целостная операционная система.

Не путать с AT&T BSD, который и является прямым продолжателем UNIX и также является коммерческим.

Для конечного пользователя ничем не отличается от Linux, так как Апач и GNOME работают одинаково. Для сисадмина это не так[1].

Область применения[править]

Родители FreeBSD: Marshall Kirk McKusick — папа.
Родители FreeBSD: Eric Allman (справа) — мама.

В этих ваших интернетах применяется в основном в качестве роутеров, шлюзов, прокси- и веб-серверов и иже с ними, а также в Sony PlayStation 3 и 4. Некоторые задроты ставят FreeBSD на свои домашние компьютеры и очень этим гордятся.

FreeBSD, не так часто, как Линукс, но все же регулярно является предметом срача в холиварах:

— Чем «BSD круче Linux»
— У БСД демоны в кедах, а у линуха — в ластах. Плавают они быстрее, но и склеивают их чаще.

  • Mustdie vs FreeBSD (конечно, серверный маздай).
  • GPL vs BSD, что свободнее.

Доподлинно известно, что FreeBSD основана на кодовой базе BSD, в разработке которой участвовал Маршал Кирк МакКузик (Marshall Kirk McKusick). Также доподлинно известно, что оный является сексуальным партнёром соавтора FreeBSD и разработчика sendmail — Эрика Олмана (Eric Allman), с коим открыто сожительствует в течение over 20 лет в любви и согласии.

В частности, среди трезвосмыслящих линухоидов распространена известная шутка:

Вопрос: Какой пидорас изобрёл ебанутый формат конфигов Sendmail? (вариант: протокол syslog, по которому можно передать сообщение длиной не больше 1 Кб, etc.)
Ответ: Eric Allman.

— Задорные пингвинятники

Надо сказать, что сам Олман не только спокойно относится к таким шуткам, но и сам подшучивает над ситуацией, сказав однажды: «There is some sort of perverse pleasure in knowing that it’s basically impossible to send a piece of hate mail through the Internet without its being touched by a gay program. That’s kind of funny.», что переводится так: «Есть определенно некое извращенное удовольствие от осознания того, что невозможно послать письмо ненависти [к геям] через Интернет без того, чтоб его не тронула гейская программа. Это забавно»[2].

McKusick, кстати, по внешнему виду — образцовый завсегдатай гей-клубов, не хватает только фуражки и кожанки, оттого бытует мнение что он — актив, а Allman, как не трудно догадаться, нет.

Плюсы[править]

  • Система портов — один способ установки всей прорвы свободного софта: make install clean. Также можно установить софт из готовых бинарных пакетов из репозитория. Которые из этих же портов и были скомпилированы, кстати. Приятным дополнением для «голого» дерева портов станет portupgrade, portmaster, portbuilder, portshaker и portconf.
  • Куча мануалов в сети по организации всего на свете: от просто роутера для говнолокалки до хитровыебанного инетораздователя с Radius-авторизацией и ограничением трафика по количеству прыщей (таблица количества прыщей хранится в SQL-базе / каталоге LDAP). При этом они, даже написанные для FreeBSD 4.7, подойдут и для свежих 7.x и 8.x. В редких случаях требуется минимальная доработка.
  • Нормальная BSD-система запуска через rc.init с учётом зависимостей между службами (кто сталкивался с runlevels, унаследованных от System V на линуксах, поймет).
  • Фреймворки netgraph(4) и geom(4) позволяют построить сетевую и дисковую подсистему любой степени извращённости. Линуксоиды с их особой, чёрной магией в ядре идут раком по болотам.
  • Более либеральная к исходникам BSD-лицензия, по сравнению с GPL.
  • Имеет 3 файрволла «искаропки», способных невозбранно работать единовременно: доморощенный ipfw[3], ipf (NetBSD), pf (OpenBSD). Но правда, для тех, кто вначале ставит софт, а затем начинает читать маны и биться головой о клавиатуру (ТруЪ-никсоиды поступают наоборот) это будет не плюс, а минус: если установить один FW поверх другого, то заставить их обрабатывать пакеты в правильном порядке никто не сможет :-)
  • Отладчик уровня ядра ddb(4) — наш ответ Софтайсу.
  • Портированный из OpenSolaris фреймворк динамической трассировки — DTRACE
  • Сабж (порты, документацию, исходный код ядра и окружения etc) можно обновить через штатную команду csup(1) (до 6 ветки включительно был cvsup(1)) и оно будет работать с минимумом неожиданных побочных эффектов[4].
  • Есть механизм тюрем jail(8), делающий возможным запуск нескольких экземпляров сабжа на одной железке, для работы с которым имеются разные утилиты. Каждая такая тюрьма изнутри выглядит как полноценный бокс с сетевым интерфейсом. В FreeBSD 9 реализован механизм ограничения ресурсов для клеток (RCTL), а также появился механизм виртуализации сетевого стэка (VIMAGE). А ещё можно замутить рекурсивные джейлы. Или установить в FreeBSD jail окружение Debian из проекта Debian GNU/kFreeBSD.
  • Запиленные с подачи Apple GCD и Clang/LLVM портированы в FreeBSD. Первое позволяет легко и непринуждённо писать многопоточные приложения на C/C++ (OpenMP сосёт!), второе — крайне перспективный компилятор, который используется в base system вместо GCC. Отличается грамотной многоуровневой архитектурой и информативными сообщениями об ошибках. В тестах скорости сгенерированного кода уже конкурирует с обросшим мхами GCC, но ещё не осиливает все индусские премудрости (читай: clang может выдать ошибку там, где веками всё компилилось в GCC). FreeBSD 10, кстати, уже полностью собран clang`ом.
  • Файловые системы ZFS и UFS 2 с поддержкой снапшотов и не только. Особенно ZFS, которая совмещает в себе возможности менеджера томов, ФС, поддерживает онлайн-снапошоты ФС, дедупликацию данных и кучу всего остального.
  • HAST — GEOM-класс для создания отказоустойчивого хранилища.
  • Входящий в базовую систему инструментарий для создания резервных копий — Dump.

Минусы[править]

  • Система портов — source-based система по определению заебёт любого при попытке собрать, скажем, KDE или OpenOffice.org, блджад. Данный процесс даже на неплохой современной системе займет пару часов, как минимум (в свое время речь шла о сутках)[5]. Особенным тормозом являются (для долбоёбов, не осиливших make config, make config-recursive и portupgrade -c/-C) зависимости портов, которые писали, видимо, по принципу «сделай комбайн из всего» — зачастую можно наблюдать процесс компиляции совершенно не нужных пользователю cups/gtk/qt-webkit/что-там-ещё-хочет-скачать-полинтернета. Кроме того, неправильный выбор флагов оптимизации иногда приводит к неработоспособности собранного софта. Впрочем, пакеты никто не отменял — правда, при этом невозможно наблюдать за долгим процессом компиляции, бида-бида.
  • Алсо, имеет место такая неприятная вещь как отсутствие некоторых бинарных пакетов в репозитории, что случается при настырном желании разработчика приблуды распростратнять свое детище исключительно в исходниках (к примеру вышеупомянутый опенофис, блджад!). Впрочем, порты никто не отменял.
  • Такие системы виртуализации, как OpenVZ, до сих пор под сабж не портированы. Обходятся по старинке джейлами, которые, впрочем, в последниях версиях стали весьма хороши собой, на фоне OpenVZ там нет только Live Migration [6].
  • Виртуализация production-уровня отсутствует, причём, до недавних пор, не была реализована даже полноценная работа в режиме паравиртуализации гостем. Сейчас библиотека virtio портированна, да и в ядре допилена поддержка нормальной работы в Xen'е. В 11-CURRENT появилась начальная поддержка Xen dom0 в ядре, впрочем, для бздунов всех мастей утешением может быть тот факт, что под NetBSD Xen dom0 работает чуть более, чем полноценно. Основная надежда пока на BHyVe, гипервизор уровня ядра, который потихоньку запиливает небезызвестная NetApp.
  • Oracle нативно собран под BSD исключительно для CNN и они его никому не дадут, а запуск rpm-нутой версии через режим совместимости с Linux одарит вас тормозами[7] и глюками, кроме того, новейшие Oracle просто так не запускаются, и бздун вынужден ограничиться древним как говно мамонта хламом, вроде Oracle 8.0, которое еще и фиг прилинкуешь к этим вашим PHP или Erlang.
  • Родная файловая система не самая устойчивая и люто не любит внезапного отключения питания [8]
  • Таки сильно уступает линупсу в наборе поддерживаемого оборудования
  • Система пакетов не имеет возможности работать с репозиториями. Можно только переопределять хранилище пакетов, не более. Эту и другие проблемы системы пакетов собираются решить в 10 версии ОС, при помощи pkgng[9] — замены стандартным pkg_* tools. Но пока — только один репозиторий.
  • Много даже опенсорсного ПО сейчас пишется только под Linux. Что-то портируется так, для чего-то помогает linuxulator, что-то не будет работать вообще. Более того, некоторые деятели (Леннарт Поттеринг, например) вообще открыто призывают к прекращению поддержки *BSD в свободном ПО. Да, это не совсем проблема BSD, однако ситуация имеет место, что печально.
  • У Фряхи нет официального репозитория и сайта в TORе, как у Дебиана. Не True.

Срачи[править]

Типичное обсуждение.

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

  • Linux vs BSD. Иногда срачи данного вида возникают из пустого места (из-за провокационного топика или комментария), но самые частые моменты возникновения срача подобного рода — aнонс новой версии FreeBSD на LOR'е. Главный аргумент линуксоидов в срачах: «ФриБСД — ОС некрофилов, и вообще, BSD — RIP», главный аргумент бсдунов: «Линукс — не ОС, а только ядро, не UNIX, а пародия на него, БСД — аккуратна, линукс — куча костылей, упакованных в дистрибутивы». Разумеется, речь идёт не об адекватных пользователях этих операционок.
  • BSD vs GPL. Возникают, в основном, там же, где и Linux vs BSD. Аргументация ГПЛщиков: «BSD — это же почти проприетарность, и ни разу не свобода! Проприетарщики могут брать BSD-код и использовать его в закрытых проектах!», аргументация БСДунов: «Ональные рабы штольмана настолько привыкли к ональности вирусной ЖПЛ, которая навязывает мнимую свободу, что даже не понимают, что свобода — это БСД!».
  • Срачи по поводу тех или иных технических особенностей операционок: Файловых систем (ZFS или UFS против линуксового зоопарка), фаерволлов (pf и ipfw против iptables), сравнение планировщиков процессов (плюс соревнование на тему у кого их больше) и так далее. В основном срачи унылы и не доставляют особых лулзов, зато иногда можно вынести для себя что-то интересное.
  • Что в большей степени UNIX и хорошо ли это. Уже мало популярный повод для споров, но раньше не один килограмм говна пролился на вентилятор во время обсуждений этого вопроса.
  • Наличие того или иного ПО под ту или иную ОС. Линуксоиды обычно вопят про флэш и skype (который есть под линукс нативно (скоро будет выпилен adobe [1] ), а под БСД нет), БСДшники отбрёхиваются, сообщая о том, что в линуксуляторе и то и другое есть, однако не нужно, ибо проприетарщина и УГ и вообще, обвиняют проГПЛ'енных линуксоидов в двойных стандартах и заигрыванием с проприетарщиной.
  • BSD не нужно. Так утверждают многие линуксоиды. Особенного говна на вентилятор вбросил Леннарт Поттеринг. В посте на LOR'е, в котором сообщается о том, что он (Леннарт) решил забить на поддержку BSD систем в своих поделиях и призвал всех поступать также, отметилось немало народу. Говна разлилось просто немерено, отголоски этих срачей до сих пор слышны в интернетах.
  • Миграция rambler-почты с FreeBSD на Linux. Руководитель Rambler-почты в своём ЖЖ сообщил о том, что они собираются переводить свой технопарк с бсд на Debian GNU/Linux. Что потом началось — это надо было видеть. Темы на LOR'е и opennet.ru собрали огромное число коментов, ЖЖ автора была также вдоль и поперёк исписана обвинениями автора в некомпетентности (наряду с некоторыми реально существующими проблемами фряхи автор привёл несколько совсем неадекватных примеров, которые действительно могут заставить сомневаться в его компетентности, однако гораздо более вероятен троллинг. Реaльно же, в списке упоминалось только две серьёзных проблемы: отсутствие адекватной виртуализации и недоработки и ошибки в системе пакетов), предвзятости, или же напротив — одобрениями, сопровождаемыми криками о том, что «FreeBSD — R.I.P.». Алсо, итогом этого срача стали два поста в ЖЖ одного из российских известных пользователей фряхи, в которых обсуждались причины такого хода со стороны рамблера, и что можно исправить в FreeBSD для предотвращения подобного.
  • Скорость и производительность. Стандартное меряние пиписьками. Однако, многих повеселило обсуждение тестов phoronix, в которых намеряли, что режим эмуляции Linux работает быстрее Ubuntu (новость на опеннете). Очевидно, что меряли через жопу и вообще сравнивали тёплое с мягким, но кого это волнует, главное же вбросить.
  • Безопасность. Тут бсдшники отрываются по полной — дыры в линуксах появляются таки чаще. Зато, когда в FreeBSD дыру всё-таки находят, линуксоды надрывают рты и жопы криками «Решето! БСДРИП111». Однако в BSD дырок хоть и меньше, но зато они держатся в разы дольше. чем у линуксов. Це усе потому, что BSD содержит кучку энтузиастов, которым даже на электричество не хватает, а у линуксов сил и бабок гораздо больше, в результате чего и глюки латаются значительно быстрее.
  • Вообще, одно лишь упоминание FreeBSD на форумах линуксоидов может породить кучу годных срачей, помни об этом, aнон.

Производные системы[править]

Некоторые известные ОС, основанные на FreeBSD
  • JUNOS — лихо обточенная напильником FreeBSD (включающая GateD и Envoy SNMP Engine), используемая в качестве управляющей системы сетевого оборудования Juniper. Juniper считает JUNOS своим основным конкурентным преимуществом и даже снимает про нее унылую рекламу. Сами же фанаты Juniper любят плевать сверху на любителей цисок, считая сии поделия попсовым оборудованием.
  • Data ONTAP 8.x — еще один лютый энтерпрайз. ОС, которая использует FreeBSD как загрузчик своего kernel space кода, а также использует некоторые ее ресурсы, например драйвера оборудования. Основа основ винрарных и дорогих СХД от NetApp.
  • m0n0wall и её когда-то форк, ныне дальний родственник, pfSense — фаерволл, шлюз, прокси, маршрутизатор, VPN-сервер и вообще недоциска. Управляются, в основном, через веб интерфейс мыслью «мышью». Умеют много хорошего и еще больше — нехорошего.
  • Frenzy — русскоязычный загрузочный LiveCD с набором необходимых программ для радости одмина. Версия 1.1 основана на FreeBSD 6.3 и дальнейшая разработка, по словам создателя, не планируется (тем не менее, появилась версия 1.3, выпущенная не автором. Лежит на домашней странице Frenzy [а теперь и 1.4, на 09.04.2013]).
  • PC-BSD — неплохая попытка создания юзер-френдли системы на основе FreeBSD с кучей свистелок и перделок и системой пакетов. А-ля Mac OS X.
  • GhostBSD — ещё одна попытка создать юзер-френдли дистрибутив с использованием окружений, основанных на GTK. Выглядит стильно и красиво.
  • РУС-BSD — поцреотическая ОС с кучей свистелок и перделок на основе FreeBSD. Требует 8 Гб свободного места и минимум знаний для установки. Повышает чувство поцреотизма и совсем не повышает (может даже понижает) ЧСВ. На самом деле РУС-BSD основана не на PC-BSD, а на Frenzy и только отчасти использует решения PC-BSD.
  • DesktopBSD — ещё одна попытка экспансии в сторону easy-to-use и протча. Закончилась не успев толком начаться. R.I.P.
  • DragonFlyBSD — очередной форк, основная и великая идея которого — гибридное ядро с поддержкой кластерности и при том с минимальным функционалом и все это на особой файловой системе с брутальным названием «HAMMER». На самом деле, DragonFlyBSD является следствием butthurt и кульминацией завышенного ЧСВ (местами не без основания), одного компьютерного гика, по имени Mattew Dillon, но не актера, а вовсе «a computer scientist living in Berkeley, California», что какбе символизирует. Примерно в районе попытки слепить остальными из команды FreeBSD что то годное [4.X -> 5.X] конкретно посрался с ними, в виду несогласия с их методами ведения проекта, что в свою очередь и привело выделению из 4.Х отдельного (суб)проекта DragonFly. В чем, кстати, и был прав (ибо что то годное из попытки глобальной переделки FreeBSD начало появляться только к концу 6-й ветки), и был совсем не очень неправ (на примере DragonFly) ибо любому проекту, нужно быдло для подпитывания.
  • FreeNAS — долгостройный, но вполне работоспособный проект (версия — 9.2.1.7, вышла в августе 2014) позволяющий из груды старого железа собрать свой собственный NAS c веб-сервером, торрент-клиентом, поддержкой ZFS и прочими радостями сетевых хранилищ. Управляется встроенным веб-интерфейсом, чуть более, чем полностью интуитивным, так что среднестатистический пользователь, настроивший это самостоятельно, и не догадается, что стал бородатым одмином. Однако разработчиками рассматривается вопрос о переходе на кодовую базу пингвинистов (Debian GNU/Linux) в связи меньшим гораздо большим числом багов и поддержкой большего числа нового говнооборудования у оных [2] [3]. Ага, конечно [4], на кодовую базу пингвинистов разработчики таки-забили лысого, а вот изначальный мейнтейнер, продавший проект капиталистам, таки-перешел. Первая после продажи версия FreeNAS (0.8 — вышла в мае 2011) имеет меньший функционал по сравнению с 0.7. Ждём релиз 0.8.1. А нормальный полнофункциональный форк ветки 0.7 теперь называется Nas4Free. С учетом того, что iXsystems продают якобы энтрерпрайз решения на базе FreeNAS, на развитие проекта они не забили, и нынешняя версия 8.3 уже вполне торт.
  • Also, дальним (очень дальним) родственником является MacOS X, однако у неё, вопреки распространенному слуху, ядро вовсе не FreeBSD. Darwin — система с гибридным ядром XNU, созданном на основе микроядра Mach и стандартными сервисами BSD (от NetBSD, кстати, см. структуру MacOS). Кода BSD и Mach там поровну, что выявлено в ходе спора об оси Айфона, на странице обсуждения оного девайса есть копипаста.
Некоторые неизвестные ОС, основанные на FreeBSD

Интересные факты[править]

  • Запуск make с таргетом love выдает на stdout «Not war.» — система любит тебя. Раньше выдавала «don't know how to make love», чем дико смешила отдельных петросянов. В конце концов, видимо, разработчикам надоело, что над ними глумятся. Начиная с 10-й версии — выпилено.
  • По традиции FreeBSD можно собирать из исходников только ночью. По традиции proxy/gateway/mail серваки ставятся на первый найденный в загашнике комп. На них make buildworld && make buildkernel занимает таки часов 8-10. Поэтому ставится перед уходом админа в вечерний запой, когда юзеры не юзают сервак. Утром делается make installkernel, обнуляется аптайм, mergemaster -p && make installworld && mergemaster и еще один ребут.
  • Поговаривают, что FreeBSD написа́в Калифорнийском Университете Беркли примерно в то же время, когда там изобрели экстази. Правда, это уж точно лулзы без фактов, потому что экстази (МДМА) во-первых, изобрели еще в начале XX века, только тогда еще никто не знал, для чего это можно использовать, а во-вторых, заново открыл его Саша Шульгин, совсем не в Беркли, и больше, чем за двадцать лет до создания операционки. А вообще, это переделка еще более старой шутки: «Беркли сделал две по-настоящему хороших вещи: LSD и BSD. Причем, второе — под действием первого» (Альберт Хофманн скромно курит в сторонке, да).
  • Запуск
    find /usr/src -type f -print | xargs grep lurk | nl
    
    в FreeBSD 11.0 CURRENT среди прочего выдает:
   63  /usr/src/contrib/bmake/job.c:       lurking_children = 1;
   55  /usr/src/tools/tools/nanobsd/dhcpd/README:bugs lurking that cause your entire FreeBSD tree to disappear
   31  /usr/src/.svn/pristine/bd/bd15a3e32886f29990612f61ecbd759eb6919596.svn-base:    /* Open the backup file, avoiding lurkers. */

что кагбе намекает.

Галерея[править]

Ссылки[править]

  • Законченные фрюховоды фапают здесь.
  • Те, кого еще можно спасти, — здесь и здесь.
  • Те, кому нечего/нечем фапать, и прочие читают местами смищные щутки тута.
  • Новости из мира BSD систем BSD News in Russia
  • Эпичный срачик последнего времени на 2k постов - здесь

Примечания[править]

  1. Апач с четвёртыми кедами действительно работают одинаково, а вот куда более часто используемые вещи — нет. Для примера сравните NetFilter (более известный широким массам под названием своего фронтэнда iptables) с любым доступным фаерволом BSD-мира (pf, ipf, fpfw). Другой пример: во FreeBSD настройка любых параметров сетевого интерфейса (как проводного так и беспроводного) может быть произведена с помощью одной утилиты ifconfig, в то время как в linux их целый зоопарк и нет ни одной универсальной.
  2. На самом деле «hater» — гомофоб по-СШАшному. Так что переводится это не как «письмо ненависти», а примерно как «высер гомофоба».
  3. Алсо, для форточек даже есть винрарный, но, вестимо, замерзший в плане разработки порт wipfw. А еще красноглазики нонче могут фапать на ipfw и dummynet(4) и на школьницу, портировавшую сие добро на эту вашу Убунту. Это все какбэ намекает нам.
  4. Попробуй сделать такой финт ушами, скажем, на RHEL, чаще тебя поджидают проблемы. Так-то!
  5. ccache и distcc могут сильно сократить время компиляции
  6. Достаточно спорная сама по себе вещь, миграция возможна только в случае одинаковых систем и одинаковой аппаратной конфигурации (процессор). Live Migration крут и красив в случае полноценной виртуализации, типа XEN или KVM, так как там нет таких ограничений.
  7. Акуеть недостаток, ага. Но если развить мысль — многий коммерческий софт работает во фряхе тока через эмуляцию системных вызовов линуха.
  8. UFS+SUJ в девятке или ZFS в восьмёрке или девятке решают проблему какбы
  9. Вообще-то уже в 9-ке. Правда пока что только в портах, а не в составе базовой системы, но репозиторий существует, средства миграции для старого пакетного менеджера - тоже. С разморозкой