Меню

Чем 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:

Читайте также:  Bootice восстановить загрузчик windows 10 uefi

Лично мне за последние полтора года ни разу не приходилось устанавливать какие-либо заплатки на своих машинах с FreeBSD. Также система ни разу не повисала за все это время. Сколько пользователей 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 или сеть.

Читайте также:  Airplay from windows itunes

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

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

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

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

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

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

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

Источник

Почему BSD проиграла в битве с GNU/Linux?

Существует множество разных операционных систем с открытым исходным кодом, и если вы пользуетесь одной из них, то почти наверняка она будет на базе ядра Linux и набора программ GNU. Многие думают, что дистрибутив GNU/Linux и был первой open source операционной системой. Но это не так. Его опередил проект Berkeley Software Distribution, или BSD. Причем будет справедливо сказать, что он был также более профессиональным и ориентированным на рынок. Но почему тогда BSD сейчас находится на задворках экосистемы open source, тогда как GNU/Linux играет одну из центральных ролей? Посмотрим на это с исторической перспективы.

История BSD тесно связана с Unix, операционной системой, которая была выпущена AT&T Bell Labs в 1969 году. В конце 70-х группа специалистов Калифорнийского университета в Беркли во главе с Биллом Джоем начала разработку проекта BSD как одного из дистрибутивов Unix. Какой-либо существенный разницы между ними на тот момент не было. Они просто добавили несколько дополнительных утилит, которые включали исходный код, принадлежащий AT&T.

Однако все начало меняться в начале 80-х, когда решение AT&T продавать Unix привело к появлению спроса на свободный клон Unix-а, но без дорогостоящей лицензии. Разработчики BSD в течение нескольких лет трудились над тем, чтобы отделить их код от кода AT&T. Они медленно, но верно шли к созданию собственной полноценной Unix-like операционной системы.

Их цель была достигнута в июне 1991 года, с выпуском BSD Net 2. В отличие от предыдущего релиза Net 1, который состоял по большей части из кода для работы с сетями и не был самостоятельной операционной системой, Net 2 была именно полноценной Unix-like системой.

И так как BSD Net 2 шла с лицензией, которая давала доступ к исходном коду и право свободно распространять как ее саму, так и любые ее производные, она была по сути первой open source операционной системой в истории. Хотя самого понятия «open source» в то время еще не было, и лицензия BSD не соответствовала требованиям Free Software Foundation Ричарда Столлмана, тем не менее Net 2 стала большим шагом вперед для всего сообщества свободного программного обеспечения. Это доказало, что написать свободный клон Unix — реально.

Выпуск Net 2 имел большое значение также и потому, что на тот момент это был единственный свободный клон Unix, который действительно работал. Линус Торвальдс выпустил первую версию ядра Linux лишь через несколько месяцев, причем прошло более чем два года, прежде чем оно стало достаточно применимым. Тогда как в проекте операционной системы GNU, которую с 1984 года разрабатывали Ричард Столлман и его сторонники, еще не было своего рабочего ядра.

Читайте также:  Linux mint yandex ftp

И если BSD Net 2 была первой свободной Unix-like операционной системой в своем роде, то почему она не смогла «выстрелить» и стать тем, чем стал GNU/Linux — главной платформой экосистемы open source?

В бой вступают юристы

Одной из причин были судебные тяжбы между Berkeley Software Design Inc. (BSDI) и Unix Systems Labs (USL). В начале 90-х компания USL стала владельцем операционной системы AT&T Unix и подала в суд на BSDI за нарушение своих авторских прав. Неудивительно, ведь они разрабатывали свободную альтернативу их продукту. В марте 93 года суд отклонил большинство их претензий, но юридические баталии все еще продолжались вместе с контр-иском Калифорнийского университета. И только в начале 94 года, когда уже компания Novell стала владельцем Unix, все юридические споры были окончательно урегулированы.

Если смотреть в целом, все эти юридические проблемы на самом деле не помешали распространять и использовать операционную систему BSD. Но возникшие сомнения в защищенности ее юридического положения однозначно замедлили это. По всей видимости, именно поэтому возник тот самый исторический шанс для ядра Linux, который позволил ему неожиданно «выстрелить». А ведь это был просто хобби-проект одного финского студента, в отличие от профессиональной разработки группой ученых ведущего американского университета.

Две разные лицензии

Медленный рост BSD не получится объяснить только лишь юридическими проблемами. В конце концов у GNU/Linux тоже были аналогичные серьезные проблемы в начале 2000-х, когда SCO Group подала в суд на нескольких крупных вендоров Linux и корпоративных пользователей. Эти тяжбы в целом завершились только в 2007 году в пользу Linux. Но тем не менее они не оказали такого негативного воздействия, популярность Linux-а продолжала расти.

Одна из причин почему BSD не смогла обрести такую популярность среди технически продвинутых программистов и админов («хакеров») заключается в характере лицензии Net 2, которая разрешала практически все. В отличие от лицензии GPL проекта GNU, которая обязывает раскрывать исходный код всех производных продуктов, лицензия BSD к этому не обязывает. Программисты могут свободно заимствовать и модифицировать код для любых задач, не делая его публичным. Это очень хорошо для коммерческих проектов, но плохо для «хакеров», которые ценят открытость и прозрачность.

Две разные методологии

Третья важная причина заключается в том, что BSD разрабатывалась относительно небольшой организованной группой профессиональных программистов из Беркли. В то время как разработка ядра Linux велась Линусом Торвальдсом с помощью широкой и гибкой сети добровольцев раскиданных по всему миру. Используя сравнения Эрика Раймонда из его знаменитого эссе, создание BSD было подобно строительству величественного «собора», который тщательно возводила небольшая группа мастеров своего дела. Тогда как развитие Linux-а выглядело как стихийный «базар», в котором дела решались быстро, новые версии появлялись часто, и единственным требованием к членам этой разношерстной команды была способность решать насущные вопросы.

«Соборный» подход также был характерен для самого проекта GNU, еще задолго до появления Linux, но именно Linux показал как можно быстро обрести популярность через частые релизы. Таким образом Линус Торвальдс случайно открыл совершенной новый, более эффективный подход в разработке, благодаря которому Linux смог очень быстро эволюционировать, гораздо быстрее чем BSD.

Наследие BSD

Разумеется, проект BSD не мог просто исчезнуть после стремительного взлета Linux в 90-х. Более того, множество свободных операционных систем, берущих начало из Net 2, в первую очередь NetBSD, OpenBSD, FreeBSD, продолжает жить и здравствовать, пусть с небольшим, но зато преданным комьюнити.

В то же время, характер лицензии BSD привел к ее популярности среди разработчиков проприетарного ПО. Самый яркий пример — это компания Apple, которая использовала исходники BSD в своих операционных системах macOS и iOS. Учитывая это, BSD — в той или иной форме — имеет сегодня огромную армию поклонников, хотя большинство владельцев макбуков и айфонов даже не подозревают, что их устройства используют «open source» код, который разрабатывали в Беркли с 80-х до начала 90-х.

Возможно, это печально, ведь программные решения Apple закрыты настолько, насколько это возможно. Это прямая противоположность того, о чем мечтали создатели BSD, когда выпустили Net 2 в 1991 году. Как бы то ни было, итог получился интересный.

Примечания переводчика

Это был перевод статьи «Open Source History: Why Didn’t BSD Beat Out GNU and Linux?», автор Christopher Tozzi.

Отмечу, что на сайте FreeBSD приводятся немного другие сведения — о том, что первой полноценной операционной системой была не BSD Net 2, а 386BSD, вышедшая в 1992 году. На русском, на английском.

Еще одним ярким примером популярности наследия BSD является игровая приставка Sony Play Station — ее операционная система является форком FreeBSD.

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

Источник

Adblock
detector