Freebsd или linux сервер

Записки программиста

Почти объективно на тему «чем FreeBSD лучше Linux»

Если в вопросе Linux против Windows все преимущества и недостатки сравниваемых ОС более-менее ясны, то в вопросе «FreeBSD против Linux» все не так просто, как многим хотелось бы. Вот почему гайды на соответствующую тему часто полны эмоций и витиеватых рассуждений.

Я постараюсь быть максимально объективным, однако читателю следует иметь в виду, что эту заметку написал человек, у которого FreeBSD установлен даже на домашнем ноутбуке и рабочем компьютере. Чтобы не показаться совсем уж некомпетентным в поднятом вопросе, отмечу, что мне приходилось работать с такими дистрибутивами Linux, как Ubuntu, Fedora, CentOS и Gentoo.

1. Но сначала…

Но сначала я хотел бы обратить ваше внимание на заголовок поста. Там написано «чем FreeBSD лучше Linux», а не «почему FreeBSD (во всем) лучше». Я не считаю, что все поголовно должны пользоваться FreeBSD. Ровно как и Linux. Если вас устраивает та операционная система, которой вы сейчас пользуетесь, будь то Ubuntu или Windows 7, нет совершенно никакой нужды искать более хорошую операционку!

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

В общем, я пытаюсь сказать, что этот пост — не призыв «ей вы все, переходите на фряху». Это мое личное мнение, предназначенное для тех, кто желает пользоваться UNIX, но не знает, что выбрать — Linux или FreeBSD.

2. Linux — не операционная система

Важно понимать различия между операционной системой и ядром операционной системы. Так вот, FreeBSD — это операционная система. Linux — это ядро операционной системы. Ubuntu, Gentoo, Arch Linux и SuSe — это дистрибутивы Linux, то есть операционные системы (плюс инсталятор, менеджер пакетов и тд), основанные на Linux. Всего существует несколько сотен дистрибутивов Linux и все они довольно сильно между собой различаются.

Допустим, мы установили Ubuntu и какое-то время пользовались этим дистрибутивом. Пользовались-пользовались, и в какой-то момент решили, что нам что-то не вполне в нем нравится. Что делать? Переходить на другую операционную систему, например Gentoo. И изучать, как там под ней устанавливается софт, где хранятся конфигурационные файлы и тд.

В отличие от Linux FreeBSD не ограничивает наш выбор ни в чем.

Ни в способе установки программ, ни в используемом оконном менеджере или фаерволе, ни в настройках ядра и способе его обновления. Потому что это одна операционная система и никто не пытается заточить ее только под определенный круг пользователей. Хотим — устанавливаем софт из бинарных пакетов (пакеджей), хотим — компилируем из исходников (портов). Хотим оконный менеджер — выбираем любой от KDE до Awesome. Не нравится фаервол по умолчанию (ipfw), ставим pf. Нужен сервер — получаем сервер, нужна рабочая станция — получаем рабочую станцию. Насколько мне известно, ни один дистрибутив Linux не обладает такой гибкостью и не предоставляет такой свободы выбора, как FreeBSD.

Есть и другие проблемы, связанные с тем, что разработкой ядра Linux и операционных систем на его основе занимаются разные люди. Но на мой взгляд они менее серьезны, чем описанная выше.

3. FreeBSD намного безопаснее Linux

Если с предыдущим пунктом еще можно как-то спорить, то здесь это совершенно бесполезно. Проведем элементарное исследование. Заходим на Google и вводим запрос

В настройках задаем период — с 01.01.2010 по 31.12.2010. Всего 4 уязвимости за целый год! Согласно security.freebsd.org — 10 уязвимостей, что не меняет картины. Для сравнения, в ядре Linux (intitle:’linux kernel’) за тот же период было найдено 123 уязвимости!

Выходит, что каждую неделю в ядре Linux находят по две ошибки.

А если прибавить уязвимости в GNU и различных дистрибутивах? Ниже приведена гистограмма, отображающая количество ошибок, найденных во FreeBSD, Microsoft Windows и ядре Linux за последние 6 лет.

В одном только ядре Linux находят больше ошибок, чем в целых операционных системах.

Но хуже всего то, что количество уязвимостей, которые находят в Linux, год от года стабильно растет!

Можно было бы говорить о том, что в Linux находят больше ошибок, потому что им пользуется больше людей, чем FreeBSD… если бы ошибок было не в 12 раз больше, а, хотя бы, только в два. Я почти уверен, что именно благодаря своей безопасности, FreeBSD пользуется большой популярностью у таких крупных хостинг-провайдеров, как Masterhost, Majordomo и RU-CENTER.

Кстати, если внимательно посмотреть, какие ошибки находят во FreeBSD, несложно заметить, что, как правило, они могут использоваться злоумышленником только в очень редких случаях. Взять к примеру довольно свежую уязвимость в nfsclient.

Не удивительно, что именно серверы под управлением FreeBSD славятся большими значениями uptime. Железо, на котором работает ОС, выходит из строя быстрее, чем появляется необходимость обновиться и презагрузить машину. Высокий аптайм серверов на FreeBSD подтверждает (на момент написания этих строк) NetCraft:

Лично мне за последние полтора года ни разу не приходилось устанавливать какие-либо заплатки на своих машинах с FreeBSD. Также система ни разу не повисала за все это время. Сколько пользователей Linux могут похвастаться тем же?

Читайте также:  Как сделать архив tar linux

4. Размер имеет значение

Сложно спорить с цифрами. Так что я решил провести еще одно маленькое исследование, на этот раз связанное с количеством строк в коде FreeBSD и Linux. Вы спросите, какое отношение имеет количество строк кода к качеству операционной системы? Прямое.

Любому программисту известно, что количество ошибок в программе тем больше, чем больше ее код. Вполне очевидно, что при написании маленького калькулятора ошибиться намного сложнее, чем при разработке серьезного бухгалтерского приложения. Для кого это не очевидно, тот без труда найдет в сети множество исследований на соответствующую тему. Так давайте же посчитаем количество строк в коде FreeBSD и Linux!

Считать будем с помощью утилиты CLOC («Count Lines Of Code», в портах FreeBSD — /usr/ports/misc/cloc). Она не учитывает комментарии и пустые строки в коде, а также умеет отфильтровывать копии файлов. Считать количество всех строк в исходном коде не интересно, потому что комментарии, пустые строки и копии файлов, очевидно, никак не влияют на количество ошибок в программе.

Исходники Linux лежат в свободном доступе на kernel.org, исходники FreeBSD можно скачать из SVN репозитория:

Анализировались только релизы FreeBSD и Linux ветки 2.6, вышедшие в период с 2003 по 2010 год. Какой релиз в каком году вышел, можно прочитать на офсайтах проектов.

В результате получилась такая зависимость количества строк кода от времени:

Здесь «freebsd» — это операционная система FreeBSD (все исходники), а «freebsd kernel» — это только ядро FreeBSD (каталог sys в исходниках системы). Легко убедиться, что ядро FreeBSD собирается совершенно независимо от остальных частей системы. Просто копируем исходники в /usr/src, переходим, удаляем все каталоги, кроме sys, говорим «make buildkernel». В конце компиляции должно появиться следующее сообщение:

Сравнивать, разумеется, следует ядро с ядром, а не ядро с системой. Желающие могут провести собственное исследование, сравнив ОС GNU/Linux с ОС FreeBSD.

Дополнение: По состоянию на середину 2016-го года ситуация мало изменилась. Ядро Linux насчитывает 15 млн строк кода, ядро FreeBSD — 5 млн строк, а операционная система FreeBSD в целом — 15 млн строк.

Давайте внимательно посмотрим на полученную картинку. Во-первых, ядро Linux значительно больше ядра FreeBSD, даже если на минуту представить, что 50% кода Linux — это различные драйверы и потому не считаются (между прочим, с чего бы вдруг им не считаться?). Исходный код Linux версии 2.6.33 даже больше кода операционной системы FreeBSD! Во-вторых, размер ядра Linux увеличивается намного быстрее ядра FreeBSD — 4 млн новых строк кода за 7 лет против 1.5 млн. Кроме того, ядро Linux, похоже, растет экспоненциально, в то время, как ядро FreeBSD — линейно.

Итак, ядро Linux значительно больше ядра FreeBSD, и, что намного хуже, оно растет значительно быстрее.

Следовательно, Linux менее надежен и менее безопасен, чем FreeBSD. Это подтверждает и предыдущий пункт заметки. Тот, который про безопасность.

Кстати, в ходе своего исследования, я обратил внимание на пару интересных вещей, которыми не могу с вами не поделиться. Во-первых, в Linux до сих пор нет 10 млн строк кода, о которых так радостно кричали все СМИ еще в 2008 году. Но при таких темпах роста, круглое число может быть достигнуто уже через пару месяцев.

Во-вторых, почему-то при анализе исходников ядра 2.6.33, CLOC упал в кору, дойдя до каталога include/linux. И падал при повторном его анализе, так что мне пришлось воспользоваться wc. Кому-то не хочется, чтобы мы знали количество строк в коде Linux? 🙂

И в-третьих, есть серьезные подозрения, что разработчики FreeBSD увеличивают первую цифру в версии системы при достижении очередного миллиона строк кода. То есть, согласно cloc, FreeBSD 3.0-RELEASE имеет чуть более 3 млн строк кода, 4.0-RELEASE — 4 млн строк и так далее вплоть до 8.0-RELEASE. Может, об этом и написано где-нибудь в документации, но я лично был не в курсе.

5. Всякие мелочи

Здесь я мог бы рассказать, чем лицензия BSD лучше лицензии GPL, что единственный мейнтейнер ядра Linux в лице Линуса Торвальдса — это не так хорошо, как core team из 9-и человек, избираемых раз в два года, и много еще о чем. Но не буду, потому что обо всем этом вы можете прочитать в уже упомянутой в начале заметки статье БСД: Большие и Страшные Демоны, а также в статье FreeBSD: Open Source альтернатива Linux на freebsd.org. Идея в том, что преимущества FreeBSD не ограничиваются только количеством находимых в системе ошибок и размером исходного кода ядра.

6. FreeBSD хорош… но не во всем

Основных недостатков FreeBSD перед Linux, на мой взгляд, три.

Во-первых, Linux поддерживает больше различных экзотических устройств, которые в особенности любят производители ноутбуков. В защиту FreeBSD скажу, что следует выбирать железо под конкретную операционную систему, а не наоборот. На моем ноутбуке Asus X51L стоит FreeBSD и нет никаких проблем с точпадом, чтением SD-карт, использованием Bluetooth и Wi-Fi, печатью на принтере через USB или сеть.

Во-вторых, некоторые программы, например Skype, распространяются только в виде бинарников для Windows, Mac OS и нескольких дистрибутивов Linux. Конечно, это не вина разработчиков FreeBSD, но специально на этот случай они предусмотрели в своей ОС возможность запускать (именно запускать, а не эмулировать!) программы, скомпилированные под Linux. К счастью, таких программ раз, два и обчелся, а для всяких Photoshop и VMWare Workstation существуют бесплатные аналоги. См также интересный бенчмарк по теме.

Наконец, большинство дистрибутивов Linux имеют красивый графический инсталятор, переведенный на десятки языков, чтобы с установкой системы мог справиться даже школьник. Сразу после установки пользователь получает рабочую систему с оконным менеджером и минимальным набором программ (браузер, аудио/видео плеер и тд). Существуют аналогичные сборки FreeBSD (не путать сборки и ОС!) — это PC-BSD и DesktopBSD. Но давайте посмотрим правде в глаза. Проект DesktopBSD в мае этого года чуть было не прекратил свое существование. PC-BSD развивается более стабильно, но на мой взгляд до уровня Ubuntu ему еще далеко.

Читайте также:  Загрузчик возобновления windows завис

Дополнение: В настоящее время PC-BSD выглядит уже вполне достойно. А еще есть GhostBSD. Очень приятная штука, но, к сожалению, пока что несколько сыроватая.

7. Заключение

Как видите, каждому из проектов есть чем похвастаться и есть куда стремиться. Если вы цените надежность, безопасность и гибкость системы, я бы рекомендовал начать изучение юниксов с FreeBSD. Без графического инсталятора и предустановленного оконного менеджера поначалу, конечно, будет нелегко, зато намного интереснее! Если же вы хотите в течение часа перейти на UNIX и сразу получить доступ к аське, вконтакту, куче игр и тп, тогда смело ставьте Ubuntu. А если вам просто нужен «бесплатный Windows» и все эти междоусобные войны вам параллельны, тогда, возможно, вас заинтересует ReactOS.

Дополнение: Некоторые другие преимущества FreeBSD перед Linux, не исключая ZFS и DTrace, перечислены в начале поста Использование FreeBSD на десктопе, версия 2.0. Еще вас могут заинтересовать мои заметки про установку и обновление софта в этой системе, а также обновление ядра и мира.

Дополнение: Если вас интересуют «более технические» различия между Linux и FreeBSD, обратите внимание на интервью с Константином Белоусовым — человеком, входящим во FreeBSD Core Team.

Источник

Почему FreeBSD а не Linux

Некоторые читатели моего блога интересуются почему я пишу в основном о FreeBSD и мало уделяю внимания Linux. Видимо пришло время рассказать чем мне так нравится FreeBSD на серверах. Данная статья не коим образом не умаляет достоинств Linux систем, я лишь попытаюсь изложить некоторые моменты, которые, возможно, кому-то помогут определиться с выбором ОС для своего сервера.

Первой системой, доставшейся мне «в наследство» от прежнего сиcадмина была Red Hat 6. В то время я ещё совершенно не был знаком ни с Linux, ни тем более с FreeBSD. Вернее знания мои заканчивались пробной установкой какого-то дистрибутива Linux на десктоп. а тут сразу рабочий сервер завода в полное распоряжение и крутись как знаешь.

Через 3-4 месяца усиленного изучения был настроен первый сервер на ASP Linux уже своими руками. Надо ли говорить, Linux линуксу рознь и в каких мучениях в то время собирались программы из исходников. или бесконечные зависимости rpm-пакетов, что Red Hat, что ASP. Кстати ASP Linux был выбран потому, что комьюнити русскоязычное было развито гораздо лучше чем у Red Hat, в целом же оба дистрибутива используют rpm-пакеты. Но что-то я отвлекся.

Итак, возникла задача установить дополнительный почтовый сервер. Намучавшись со сборкой программного обеспечения под Linux (а уж о том чтобы с легкостью пересобрать ядро я скромно умолчу), решил попробовать FreeBSD. Знакомство началось ещё с 4-ой ветки ядра. И вот преимущества FreeBSD перед Linux-дистрибутивами:

  1. Из версии в версию, структура каталогов и расположения файлов в FreeBSD оставалась практически неизменной. Этот, казалось бы, малозначительный на первый взгляд факт сильно упрощает жизнь администратору. Ведь куда проще разбираться со стандартизированной системой, где всё находится на своем месте — администраторы могут меняться, а передавать/принимать дела так гораздо удобнее.
  2. Отдельное спасибо разработчикам FreeBSD за хендбук — это просто библия администраторов FreeBSD во всем мире. Ни один Linux дистрибутив не может похвастаться такой удобной и структурированной документацией.
  3. Сборка ядра и программ из исходного кода (дерева портов) в 99% случаев проходит с первого раза и понятна. Администратор FreeBSD по настоящему свободен в настройке программ «под себя», причем сделано это в довольно дружественной форме. Написание параметров вручную, при сборке программ из исходников в Linux, на меня всегда навевало непонятную тоску.
  4. Стабильность и защищенность FreeBSD заслуживает всяческих похвал, ведь не зря её использует большинство хостеров выделенных серверов в Интернет.

Это лишь некоторые положительные стороны, о которых хотелось сказать. FreeBSD конечно на данный момент поддерживает меньше оборудования чем Linux, особенно отстает поддержка ACPI новых поколений серверов, но разработки не стоят на месте. И я свой выбор cделал.

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

Комментариев: 20

Тоже очень нравится FreeBSD, прежде всего, внутренней упорядоченностью и соблюдением договорённостей/стандартов. Если я захожу на сервер клиента со фряхой, то сразу знаю, что делать. В Линуксе приходится тратить время на то, чтобы понять, что к чему, особенно, если общение с ним эпизодическое. Бардак определённо доставляет.

А, всё думаю: «Стоит ли попробовать мне Фряху?»

Даже не сомневайтесь — пробуйте, полагаю, в полку любителей FreeBSD станет на одного админа больше 🙂

Я тоже за фряху! Добавьте еще вкусности файловой системы ZFS — и получите ОС для железных парней 😉

Стоял выбор между Linux и FreeBSD, в итоге решил попробовать и то, и то. 2 недели на настройку сервера на Linux и около месяца на FreeBSD, вроде как на FreeBSD времени ушло больше, но в итоге сделал свой выбор на FreeBSD, сейчас уже 6 сервер в стойке и все на FreeBSD, не разу не разочаровался в своем выборе.

Недавно поставил FreeBSD 6-й версии. Обнаружилась чехарда с реализацией потоков (как оказалось на протяжении вот уже 5 лет — libc_r заброшен, нормальной завершенной реализации многопроцессорных libthr или kse libpthreads нет). KSE почему-то работает медленнее чем libthr (хотя в документах от 92 года обещали что теоретически всё должно быть наоборот). В 7-й по-умолчанию стоит libthr. Если ставить LinuxThreads — то FreeBSD пользует rfork() вместо clone() (что значительно хуже). Не нравится мне всё это. Разработчикам видимо платят мало. Больших корпораций за спиной нет. В конфигурации FreeBSD наверное там ещё много граблей.

Читайте также:  Как восстановить центр обновления windows 10 после удаления

Не смотря на то, что ext3 медленнее файловой системы от FreeBSD, есть сомнения в общей работоспособности этой OS, и перспектив её развития. Такое ощущение, что развитие направления BSD «пробуксовывает», а сама система сырая.

Я поставил FreeBSD 10 сначала с портов.Но когда увидел что mc компилируется около часа со всяким мусором на экране, переустановил но с пакетов с помощью pkg. Работает вроде нормально но после аварийного завершения обязательно слетает какая-то зависимость которую неделю потом ищещь с помощью крутых перцев с форумов, а потом плюнешь на это и переустанавливаешь пакет заново

Шел 2017 год, в FreeBSD 11 версии победили все минусы перечисленные всякими Anonym-ами и да, ZFS это песня!

Та же хрень. Начитавшись всяких советов: один Линь такой, такой Линь эдакий. Вы делаете всё не так: сядьте так, лягтье так». Короче, задолбался, и начал искать «стабильность» и нашел.

Ну, я линуксоид и FreeBSD не пользовал. Надо бы попробовать. А как FreeBSD на десктопах? Подойдет или нет?

alexlarichkin78, сейчас на десктопе тоже нормально стало. Конечно не так всё «прямо из коробки», как на современных Linux, но и без танцев с бубном

Считаю, что время упоротых сисадов прошло. Сейчас время требует быстрых решений, а не копаний в системе. Даже если не нужен бубен, то гопак сплясать нужно. Рядовому пользователю это далеко не нать. Линукс, винда, фрибсд — должно работать сразу после установки, и не ждать поклонов от пользователей. Хотя, каждому свое))

Армированный мозг, вы удивитесь, но большинство выделенных серверов у хостеров именно на FreeBSD сделано. Именно в этой системе всё максимально стандартизировано и прозрачно, в отличие от Linux

ну так я знаю это. я с фри не работал. из меня такой «пользовательский айтишник»)). Но слышал от сотрудников хорошие отзывы по работе фри на серверах. И вполне разделяю ту точку зрения, что для каждой специфики должна быть своя система. Я к тому написал, что даже спецсистемы должны быть более дружелюбны к пользователю. Просто, но удобно. Я увлекаюсь программированием( не работа), при написании интерфейса программы продумываю чтобы работа с ним была интуитивно понятна. экономлю время на справке)))

Армированный мозг, так для постоянной работы я пользуюсь маком, macOS – это и есть FreeBSD с человеческим лицом 🙂 Тут тебе и дружественность к пользователю, а если есть желание копаться в недрах — то полноценная работа в командной строке.

Из всех аргументов автора, могу плюсануть только за хендбук.

Далее по пунктам:

-переход от 4-ки до 8-ки — различия все-таки будут;

-сборка ядра — кто и зачем это все придумал, сидеть часами, наблюдать матрицу на экране — это, достойное решение для нон-стоп систем. Почему-то, нормальные коммерческие юниксы типа AIX и Solaris работают из коробки, ничего там сидеть в ядре компилить не надо;

-ее используют бесплатные и условно-бесплатные хостеры, т. к. систему для «бедных» надо использовать по назначению. А «свободноbsdящая» система как раз к ней относится, и отсутствие коммерческих продуктов типа Oracle dbs и т. д. как-бы об этом само говорит.

В идеале — это система для малого бизнеса ввиду простоты и бесплатности — файло-помойка, почтовик, шлюз интернета.

Так и не понял почему автор не подружился с репозиториями в линукс. Видимо система портов от freebsd, с ее скоростью компиляции и теоретического шанса стать программистом, ели порт не собрался, лучше.

Я не буду говорить про саму ОС. Однако, плюсы, описанные автором мягко говоря относятся к любому дистрибутиву Unix-like OS.

Из версии в версию, структура каталогов и расположения файлов в FreeBSD

В NetBSD или OpenBSD все может быть по другому. В пределах одного дистрибутива Linux как и одного дистрибутива *BSD всегда вся конфиг-файлы и способы настройки расположены в одном и том же месте.

Ни один Linux дистрибутив не может похвастаться такой удобной и структурированной документацией.

С учетом того, что программы как правило одни и те же, то и мануалы оди и те же, кроме как для системных вещей.

Написание параметров вручную, при сборке программ из исходников в Linux, на меня всегда навевало непонятную тоску.

Каких параметров? И зачем. 99% программ идут в стандартном репозитории уже в бинарном виде. Если хотите пересобрать что-то под себя, то просто правится спек-файл.

не зря её использует большинство хостеров выделенных серверов в Интернет.

Статистика по серверам в интернете говорит обратное. Тем более, что FreeBSD:

Linux — 35,9, FreeBSD — 0,95%, OpenBSD, NetBSD, 386BSD, Solaris, OpenSolaris — порядка 30%.

Ярослав, я писал основываясь на личном опыте и поверьте, профессиональные выделенные сервера именно на FreeBSD. Вы наверное просто никогда не пересобирали ядра системы под себя или не настраивали серверов.

Для обычного пользователя, это всё не нужно, тут вы правы.

Не верю я что Линукс и Фряха не монет быть настроены должным образом. Попробуйте сервер Slackware 12 настроить. Вам будет то что искали. FreeBSD намного сложнее настраивать если вы один или двое в команде.

Самое главное, изучить работу UNIX систем, прежде чем пытаться обуздать , да тот же Линукс, не говоря о FreeBSD(кстати есть Рус-BSD 8.1)

Лично начинал изучать Линукс с Slackware 12 .

Источник

Оцените статью