Bsd системы. Чем FreeBSD отличается от Linux

Источник: mindw0rk

В книге истории BSD намного больше страниц, чем в истории Linux. Беря начало в далеких семидесятых, BSD пережила эпоху UNIX-мейнфреймов и расцвета самых разнообразных UNIX-систем. Она и по сей день доказывает свою вечность и востребованность в лице современного поколения свободных, в духе opensource-времени, дистрибутивов. Этой осенью выходит новый релиз FreeBSD 5.3, первый в стабильной ветке 5 и знаменующий переход на новый качественный уровень. Не за горами релиз NetBSD 2.0, имеющий примерно такое же значение. И то и другое - безусловно, настоящее событие для всех bsd"шников. Эта статья - посвящение легендарной операционной системе.

Профессор из Беркли

Шел 1973 год. Время начала расцвета глэм-рока, вьетнамской войны и операционной системы UNIX. Той самой, первоначальной, от AT&T (Bell Labs), которая успела с момента первого релиза 1971 года (UNIX Time Sharing System First Edition, или просто UNIX System V1) дорасти до четвертой версии, выпущенной в ноябре. И в ноябре же, на симпозиуме «Принципы проектирования операционных систем» в университете Пурдью (Purdue) авторы UNIX Кен Томпсон и Деннис Ритчи выступили со свом первым докладом на тему новой ОС. На этом симпозиуме присутствовал профессор Боб Фабри из Калифорнийского университета Беркли, которого настолько поразила красота операционки, что он сразу же заказал копию дистрибутива на магнитной ленте для своего университета. О коммерческом применении UNIX тогда не было и речи, AT&T свободно раздавала исходные тексты своей системы для изучения в образовательных учреждениях.

Для установки и изучения UNIX совместными усилиями факультетов компьютерных наук, математики и статистики университет Беркли приобрел новый компьютер PDP-11/45 от DEC. И в январе 1974 года аспирант Кейт Стэндифорд уже вставлял свежеполученную ленту с UNIX System V4 в считывающий привод терминала. Как правило, в университетах, получивших копию UNIX, установку системы выполнял сам Кен Томпсон. Но в Беркли решили обойтись силами своих студентов. Через какое-то время помощь Кена все-таки понадобилась - система периодически аварийно рушилась. Вместо того, чтобы отправиться в Беркли, Томпсон позвонил Стэндифорду и указал тому соединить модем с телефоном, чтобы иметь возможность удаленно отлаживать систему. Выяснилось, что проблема была в драйвере дискового контроллера - PDP-11/45 оказалась первой в практике Томпсона машиной, имевшей два диска на одном контроллере, на что драйвер не был рассчитан. Так началось сотрудничество Bell Labs и Калифорнийского университета по совершенствованию UNIX.

Позже в университете появился еще один компьютер под управлением UNIX. Машины в Беркли, как и в других вузах того времени, работали строго по расписанию - кому-то был нужен UNIX, кому-то - RSTS, собственная операционка от DEC, ставившаяся тогда на все PDP. С 8 утра до 4 вечера на компьютере работал UNIX, а затем до полуночи - RSTS. Это очень не устраивало профессоров Юджина Вонга и Майкла Стоунбрейкера, которых настолько восхитили возможности новой ОС, что они захотели побыстрее перенести на нее разрабатываемую ими крупную базу данных INGRES. Машинного времени постоянно не хватало, и весной 1975 года в Беркли появился еще один DEC-11/40 под управлением вышедшей к тому моменту UNIX System V5. К осени INGRESS под UNIX разошлась в количестве нескольких сотен экземпляров, в результате чего Беркли получил репутацию университета, в котором рождаются действительно крупные проекты.

Интерес студентов к UNIX был поистине огромным, и осенью 1975 года Фарби со Стоунбрейкером решили приобрести новую модель PDP-11/70, которая была гораздо мощнее предыдущих. В это же время Кен Томпсон, выпускник Калифорнийского университета, решил ненадолго навестить свою альма-матер и захватил с собой самую последнюю на тот момент версию UNIX - System V6, которую установили на новую PDP-11/70.

Рождение BSD

Итак, к 1976 году в Беркли было уже несколько машин под управлением UNIX. Но о серьезной ее доработке никто не помышлял, пока системой не заинтересовались два студента, только что закончившие обучение, - Билл Джой и Чак Хэйли. Поначалу они проводили дни и ночи за PDP-11/70, работая над компилятором и языком Pascal, в итоге сделав его лучшей средой для обучения студентов программированию. Затем, после замены текстовых телетайпов на экранные терминалы, Джой обнаружил, что текстовый редактор ed, использовавшийся тогда, их уже не устраивает. И он приступил к работе над своим редактором, который назвал ex.

В 1976 году, после отъезда Кена Томпсона Джой и Хэйли стали самостоятельно ковыряться во внутренностях ядра UNIX. Результатом этого стали небольшие изменения в коде и несколько исправлений. Эти два парня стали первыми кернел-хакерами из Беркли.

В 1977 году Билл Джой, осознав, что одними исправлениями не обойтись, начал делать свой дистрибутив. Так 9 марта 1978 года появился «Berkeley Software Distribution» - первый релиз операционной системы Беркли. Он включал в себя пресловутую Pascal-систему со всеми исходными текстами и редактор ex. В течение следующего года по разным вузам разошлось 30 копий новой ОС. Затем на PDP Беркли вновь обновили устройства ввода, поставив новенькие терминалы ADM-3a, и Джой решил написать текстовый редактор, который использовал бы всю визуальную мощность новых мониторов. Так родился великий и ужасный vi (visual editor). Кроме того, Джой решил проблему совместимости вывода на терминалах разного типа, написав не менее знаменитую библиотеку termcap. Все это вошло во второй релиз ОС, «Second Berkeley Software Distribution», вышедший 10 мая 1979 года. Позже имя сократили до лаконичного 2BSD. Финальная версия второго релиза, 2.11BSD, с улучшениями и дополнениями, сделанными в результате обширного тестирования системы в нескольких университетах, была установлена на сотни PDP-11 машин по всему миру. По сути, состоялось первое серьезное клонирование классического UNIX. Весьма удачное клонирование.

В 1978 году шестнадцатибитные PDP уже не удовлетворяли многих хакеров, им на смену пришли VAX - новые мощные машины от DEC, работающие под ОС VMS. Разумеется, в Bell Labs портировали свою, уже седьмую версию UNIX на новые машины, однако их система не использовала всех преимуществ виртуальной памяти VAX. К разрешению этой проблемы привлекли кернел-хакеров из Беркли во главе с Биллом Джоем. Джой был поражен возможностями нового железа - эта система оставляла PDP-11 далеко за бортом. Так он начал портировать 2BSD на VAX.

Пока его коллеги Питер Кесслер и Кирк Маккусик портировали Паскаль, Джой переписал ex и vi, свою новую командную оболочку C shell и остальные утилиты. В итоге, в 1979 году Беркли выпустила законченную сборку 2BSD под VAX.

Одновременно с этим событием Bell Labs решила поставить UNIX на коммерческие рельсы и основала подразделение по подготовке и выпуску стабильных релизов. UNIX перестал быть исследовательским проектом, представляя теперь коммерческий продукт AT&T. Роль центра разработки UNIX, ранее принадлежавшая Bell Labs, теперь перешла к Беркли.

К 1979 году американское агентство передовых оборонных разработок DARPA (Defence Advanced Research Projects Agency) столкнулось с проблемой устаревания многих компьютеров, составляющих ее знаменитую сеть ARPANET. В случае замены потребовалось бы портировать все программное обеспечение на новые машины. Сказывалась разношерстность сети - разные машины, разные операционные системы. Было ясно, что для дальнейшего масштабирования и развития сети необходима стандартизация. Так как выбор единой аппаратной платформы для построения сети представлялся труднореализуемым, стандартизацию решили провести на уровне ОС. Разумеется, в качестве единой операционной системы был выбран UNIX, который, казалось, можно портировать на самое невообразимое железо.

Осенью 1979 года профессор Фарби прослышал про интерес DARPA к UNIX и предложил услуги своего университета. Вышедший в декабре того же года релиз 3BSD подтвердил, что новая система как нельзя лучше подходила нуждам военных, и в апреле 1980-го Беркли получила полуторагодичный контракт DARPA. Под контрактные работы была создана организация Computer System Research Group (CSRG) - отделение университета, куда входили студенты и профессора, занятые работой над BSD. Результат не заставил себя ждать - в октябре того же года выходит 4.0BSD с почтовой системой, планировщиком задач и многими другими улучшениями. DARPA осталась довольна результатом и продлила контакт, увеличив инвестиции почти в пять раз.

Следующий релиз BSD должен был, по логике, называться 5BSD. Однако в AT&T сочли, что пользователи могут спутать 5BSD c их текущим коммерческим релизом, System V (5). По этой причине Беркли решила ввести дополнительную нумерацию релизов. Так, следующими были 4.1BSD и 4.2BSD.

Продленный контракт с DARPA предусматривал создание новой быстрой файловой системы (Fast File System), чтобы эффективно использовать возможности новых жестких дисков, поддержку процессов с многогигабайтным адресным пространством, создание механизма гибкого межпроцессного взаимодействия, а также единого интегрированного стека сетевых протоколов для общения машин в ARPANET.

Джой занялся межпроцессным взаимодействием (что впоследствии получило название UNIX sockets), реализацию файловой системы взял на себя Маккусик, а Роб Гурвиц реализовал TCP/IP, которую затем включили в ядро BSD. Тогда же были написаны сетевые утилиты для взаимодействия по сети: rcp, rsh, rlogin, rwho. Получилась настолько хорошая система, что разработчики решили выпускать ее не только для DARPA.

Вслед за промежуточными релизами 4.1a и 4.1b была выпущена 4.2BSD. Популярность нового релиза оказалась ошеломляющей - за полтора года он разошелся тиражом более тысячи копий! Со своей новой файловой системой FFS и интегрированной поддержкой сети ОС из Беркли оставила UNIX System V далеко позади. И хотя потом многие возможности 4.2BSD были портированы в System V, BSD долго оставалась лидером на рынке UNIX-систем.

Весной 1982 года Джой, наверное, посчитал, что основное уже сделано, потому ушел в Sun Microsystems. Тем не менее, в системе еще многое предстояло отладить, о чем свидетельствовали тесты производительности и багрепорты. Это нормальное явление, когда ОС становится популярной. Маккусик сотоварищи остались в CSRG, занимаясь очисткой багов и подготовкой нового релиза. 4.3BSD была выпущена через долгие 4 года в июне 1986. Многие пользователи за это время возвратились к UNIX System V, успевшей приобрести поддержу сети и многие другие возможности, появившиеся в 4.2BSD. Так что новый релиз оси Беркли позволил поправить ее пошатнувшиеся позиции.

В конце восьмидесятых эра VAX подходила к концу. Предвидя это, Джой еще во время подготовки релиза 4.1 занимался разделением кода ядра на машинно-зависимые и независимые части, чтобы в дальнейшем их было проще адаптировать под новые процессоры. Сменить VAX должна была архитектура Power 6/32 от «Computer Consoles, Inc.», и в Беркли даже выпустили 4.3BSD под кодовым названием «Tahoe», закончив работу Джоя по разделению кода. Однако популярности новая платформа не снискала и вскоре умерла. Как бы то ни было, именно она стала катализатором завершения работ по созданию настоящей портируемой системы. Это впоследствии сыграло свою роль, когда BSD портировали на множество аппаратных платформ.

Сеть, BSD-лицензия и Великий Суд

Конец восьмидесятых годов - это расцвет всевозможных юниксовых ОС и сетевых технологий. К этому времени уже стало ясно, что без сети дальше никуда, поэтому основное внимание уделялось сетевым компонентам. Угадай с трех раз, у кого в те годы была лучшая реализация стека протоколов TCP/IP? Вот почему сообщество было так заинтересовано в свободном использовании исходных кодов операционки Беркли. CSRG, следуя традициям исследовательского духа, всегда выпускал свою систему вместе с исходниками, но, к сожалению, не мог предоставлять право другим организациям использовать их для применения в своих продуктах. Этого не позволяла лицензия, по которой AT&T распространяла исходники своего UNIX. А BSD, хоть и была самостоятельной системой, основывалась на коде от Bell Labs. Так что любой пользователь BSD был обязан купить лицензию на UNIX у AT&T. Но стек TCP/IP для BSD был целиком разработан в Беркли, поэтому летом 1989 года принимается решение выпустить так называемый «Networking Release 1», или 4.3BSD Net/1 - по сути, кусок операционной системы, содержащий код сетевого стека протоколов и сопутствующих утилит. Код выпустили под новой лицензией, которую так и назвали - BSD License. Согласно ей любой мог свободно загрузить исходные тексты и использовать их в своих целях, в том числе коммерческих, без каких-либо отчислений Беркли, лишь только сохранив копирайты в тексте файлов и указав в документации к своему продукту, что он основан на коде из Беркли.

Поступок парней из Беркли вызвал исключительно положительную реакцию. Несколько крупных компаний выложили исходные коды на свои ftp-сервера для свободного доступа, в университет, помимо благодарностей, поступило множество пожертвований денежных средств на дальнейшее развитие ОС.

И вскоре Беркли выпустил уже вторую версию своего сетевого релиза. В нем появились кардинальные изменения в подсистеме виртуальной памяти (код взят из проекта Mach университета Карнеги-Мелона) и новая сетевая файловая система (NFS). В обоих случаях использовались готовые наработки дружественных университетов, что показало выгоду и ценность BSD-лицензии - вместо того чтобы писать что-то с нуля, можно использовать то, что написали другие, в ответ предоставляя им свои наработки. Таким образом не было нужды изобретать велосипед, и время тратилось на новые разработки.

Новый релиз BSD должен был иметь порядковый номер 4.4, однако в Беркли решили предварительно протестировать изменения, выпустив в начале 1990 года релиз 4.3BSD-Reno.

Вскоре после этого один из разработчиков BSD Кейт Бостик вспомнил про удачный опыт с сетевым релизом и отметил, что неплохо бы выпустить и остальную часть системы под BSD-лицензией. Однако для этого потребовалось бы переписать огромное количество утилит из библиотек, пришедших в BSD из AT&T UNIX. Ведущие на тот момент разработчики Кирк Маккусик и Майк Карельс скептически восприняли идею - уж больно велик был объем работы. Но Бостик не сдавался. Он решился на эксперимент, который в какой-то степени затем был повторен Линусом Торвальдсом и стал основой развития систем с открытыми исходниками. Бостик призвал BSD-хакеров со всей сети переписать UNIX-утилиты, руководствуясь лишь инструкциями того, что те должны делать. 18 месяцев спустя практически все утилиты и библиотеки были переписаны. У Беркли теперь была действительно своя система. Оставалось переписать ядро, которое к тому времени уже в значительной мере было своим. И Маккусик, Карельс, Бостик, забросив все дела, принялись строчка за строчкой изучать файлы ядра, оставшиеся со времен AT&T UNIX. В итоге осталось всего шесть файлов, которые, по мнению разработчиков, так просто переписать бы не удалось. Их решили оставить на месте и в июне 1991 года Беркли выпустила «Networking Release 2» (4.3BSD Net/2). Теперь практически вся система (кроме шести файлов ядра) была абсолютно доступна всем желающим под самой дружественной в мире BSD-лицензией. Это и предопределило будущую вечную жизнь BSD.

В девяностых годах IBM PC окончательно захватила нишу недорогих компьютеров. Спустя полгода после второго сетевого релиза, Билл Джолиц начал портировать Net/2 на архитектуру i386, переписав недостающие 6 файлов. Он назвал свою работу 386/BSD и распространил ее по сети. Затея оказалась удачной, и вскоре группы пользователей 386/BSD занялись написанием патчей и усовершенствованием системы. Так стартовали современные проекты NetBSD и FreeBSD.

Сам Джолиц вместе с некоторыми членами CSRG ушел продвигать BSD в коммерцию, основав компанию BSDI (Berkeley Software Design, Inc.). Благо, код, выпущенный под BSD-лицензией, позволял продавать дистрибутив без исходных кодов. BSDI активно рекламировала свою новую систему BSD/OS как UNIX, и всем заинтересованным предлагалось звонить по телефону 1-800-ITS-UNIX. Однако компанию AT&T возмутил такой шаг, и она в лице Unix System Laboratories (USL), подразделения по продаже и разработке UNIX, потребовала немедленно прекратить рекламировать продукт BSDI как UNIX и убрать номер телефона. Условия были выполнены, и BSDI даже сменила рекламу своего продукта, объясняя, что это не UNIX. Однако USL этого было мало, и она подала в суд на BSDI, обвинив компанию в продаже кода, принадлежащего Bell Labs. В ответ BSDI предоставила доказательства, что ее система - это не что иное, как копия продукта, свободно распространяемого университетом Беркли плюс шесть дополнительных файлов, написанных программистами компании. За код Беркли BSDI, ясное дело, ответственности не несла, так что победа в суде была за ней.

USL не унималась и подала в суд на Калифорнийский университет в лице CSRG. По прошествии месяцев долгих разборок было решено непосредственно сверить код операционных систем, чтобы найти в BSD куски кода USL. В итоге из Net/2 были удалены 3 файла, оставшихся со времен UNIX System V5, и еще в 70 файлов были добавлены копирайты USL. Все остальное к тому времени уже было переписано хакерами из CSRG в рамках подготовки Net/2. Свободная система сохранила свободу!

По итогам судебных разбирательств окончательная версия релиза BSD вышла под названием 4.4BSD-Lite летом 1994 года, под той же лицензией, что и Net/2. Важным решением суда был тот факт, что USL не имела права судить какую-либо организацию, использующую 4.4BSD-Lite в качестве базы для своей ОС. Поэтому все разработчики, уже выпускавшие свои релизы на основе Net/2 (а к тому времени уже существовали NetBSD и FreeBSD, базировавшиеся на 386/BSD), были вынуждены переключиться на новые исходные тексты. Что они и сделали за самое короткое время.

4.4BSD-Lite2. BSD is dead, Long Live BSD!

2 июня 1995 года вышла 4.4BSD-Lite Release 2 с небольшими улучшениями и дополнениями. После этого последнего релиза группа CSRG университета Беркли объявила о своей отставке. За 20 лет BSD из клона UNIX превратилась в самостоятельную ОС, подарив миру надежную файловую систему, эталонную реализацию стека TCP/IP, систему печати LPD и, что самое главное, свободу. После роспуска CSRG BSD не думала умирать. FreeBSD к тому времени стала лидирующей unix-like ОС на intel-машинах, NetBSD портировали на множество платформ, BSD/OS предлагала отличные коммерческие решения. Беркли выполнили свою миссию, пустив UNIX в свободное плавание по сетевому океану, и плавание это будет длиться вечно.

Отличия BSD и Linux

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

Если говорить о технической стороне дела, то в BSD, в отличие от классической UNIX System, нет понятия уровня запуска (runlevels), а есть только два режима - однопользовательский (single user) и многопользовательский (multi user). Соответственно, имеется разница в расположении управляющих скриптов и в поведении некоторых утилит. Наконец, BSD имеет исторически сформированную иерархию файловой системы, набора сервисов и скриптов, тогда как в Linux все упомянутое скачет от дистрибутива к дистрибутиву, как разработчики пожелают.

По аналогии с неофициальным термином «*nix», обозначающим все UNIX-системы, существует термин «xBSD», который употребляется в случае, если речь идет не о конкретном проекте, а о семействе дистрибутивов в целом.

BSD-лицензия

BSD-лицензия, наверное, самая либеральная за всю историю. Ее требования можно сформулировать в трех пунктах:

Не утверждай, что ты написал это. Сохраняй наши копирайты в исходных текстах. Если распространяешь свой продукт только в бинарном виде - указывай в сопроводительной документации, что он использует код из Беркли.

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

Не предъявляй претензии, если что-то не заработает. Нет никаких гарантий, код предоставляется AS IS, на свой страх и риск.

Все знают, что символ BSD - симпатичный демон. Появился он в 1988 году с легкой руки Кирка Маккусика, придумавшего талисман для 4.3BSD. Разумеется, тот, первоначальный демон выглядел не совсем так, как современный, символизирующий FreeBSD. Ознакомиться с его историей в картинках можно по адресу www.mckusick.com/beastie/index.html. Эви Немет в своей классической хрестоматии «Unix System Administration Handbook» так объясняет происхождение этого талисмана: «Многие люди пугаются и думают, что демон в данном случае - это нечто сатанинское. Однако это не demon, а daemon, в греческой мифологии означающий примерно то же, что нынешний ангел-хранитель, добрый дух». Как же зовут этого милашку? Маккусик утверждает, что у демона нет имени, и это предмет его особой гордости, но если ты хочешь, можешь называть его Beastie.

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

Unix

Unix - на самом деле, не операционная система.Ну, и да, и нет.В конкретном применении, Unix - это операционная система, разработанная в конце шестидесятых в Bell Labs Кеном Томпсоном (Ken Thompson) и Деннисом Ричи (Dennis Ritchie). Всё последующее время она разрабатывалась и распространялась как коммерческая ОС и исследовательская ОС такими компаниями, как Bell Labs, USG, USDL, ATTIS, USL, Novell, SCO и всеми, кто мог бы выступить с акронимом.Наверное, не будет большим преувеличением сказать, что Unix оказала наибольшее влияние на современную компьютерную индустрию. Любое устройство общего применения и многие специфические устройства использует идеи и концепции и зачастую код систем из родословной Unix.Когда мы произносим слово «Unix», мы чаще всего имеем в виду «общую форму», а не конкретную ОС под названием Unix. Общая форма означает «любую операционную систему, которая дизайном, исполнением и вкусом значительно похожа на систему Unix». То есть все BSD, Linux, SunOS, Tru64, SCO, Irix, AIX, HP/UX и еще сотни и тысячи других.Мне неинтересно вступать в философские дискуссии на тему «сколько ангелов могут танцевать на секущихся концах волос». Пусть этого будет достаточно для понимания того, что когда я говорю «Unix-системы», я имею в виду именно то, о чем вы думаете, когда я произношу эту фразу.
Город Педантов → в той стороне.

Linux

Под словом Linux также кроется несколько вещей. Это ядро, изначально написанное Линусом Торвальдсом (Linus Torvalds) в студенческие годы в Финляндии. С тех пор его перетрясли, выбили, взломали, перекрутили, разогнали, разрубили, причесали, вытоптали и совершали другие манипуляции (порядок неважен, конечно) столько людей, сколько сложно себе представить.Linux - это также семейство операционных систем. В то время как в эту секунду по всему миру ведутся блестящие метафизические дискуссии (я гарантирую это) относительно того, что «Linux - это не операционная система, а просто ядро», или «Правильно говорить GNU/Linux» и так далее, я хочу отмежеваться от этой семантической помойки. Когда я говорю «Linux», я имею в виду Red Hat . Я имею в виду Slackware . Я имею в виду Mandrake . Я имею в виду Debian . Я имею в виду SuSe . Я имею в виду Gentoo . Я имею в виду каждый из 2 кадзиллионов дистрибутивов, в основе которых лежит ядро Linux c аналогичным пользовательским окружением, в большинстве своём построенном на инструментах GNU, мигрирующих по Сети.

BSD

BSD означает «Berkeley Software Distribution». Изначально, это был набор патчей и утилит для официальной Bell Unix, которые разрабатывались группой CSRG в Калифорнийском Университете в Беркли. С течением времени он развивался, заменяя и/или меняя всё больше и больше частей системы до тех пор, пока на каком-то неопределенном этапе не превратился в свою собственную ОС, просто поделившись кусками кода с Bell Unix.Конечно, это всё равно требовало наличие лицензии Bell на использование системы, хотя бы потому, что большая часть кода была написана в Bell. Весь код, написанный в Беркли, тем не менее, был выпущен под лицензией, которая впоследствии стала известна как BSD-лицензия, вольный перевод которой звучит так: «Делай с кодом всё, что тебе взбредёт в голову, просто дай нам об этом знать». Итак, путь почти всего кода BSD в конечном итоге вёл обратно в «официальные» системы Unix: в System III и System V. А обе эти ветви прокладывали свой путь к различным коммерческим форкам Unix.После того, как CSRG (в большинстве своём) распалась и разработка BSD прекратилась, несколько групп подхватили знамя. Одной из них был проект 386BSD, портировавший код BSD на платформу Intel i386. Когда проект 386BSD сошёл на нет, образовались две другие группы, которые поддержали и развили код 386BSD; одной из них был проект FreeBSD, другой - NetBSD. С течением времени некоторые внутренние разногласия внутри проекта NetBSD привели к образованию проекта OpenBSD.Когда я говорю «BSD», я имею в виду несколько вещей. Я имею в виду общий дух BSD и подход к системам. В общем смысле, под вышесказанным понимается 3 находящихся на сегодня в свободном доступе BSD системы (на 2005 год. - прим. перев. ):
  • FreeBSD изначально была нацелена на достижение наилучшей возможной производительности на 386-й платформе. Позже к i386 присоединился ряд других платформ, включая Alpha и SPARC, наряду с наследниками i386: Intel Itanium и AMD Opteron. Главная цель проекта - это максимальная надежность и эффективность работы на этих платформах, как в роли сервера, так и в роли десктопа.
  • NetBSD нацелена на работу на максимально возможном числе платформ. Её цель - стать самой портируемой ОС на планете, и кажется, для этого честно стараются.
  • OpenBSD направлена прежде всего (кто-то скажет «исключительно») на безопасность и тому подобное. Тесная интеграция безопасности, аудита, криптографии и связанные с этим вопросы являются первичными задачами.
Все эти цели, конечно, взаимозаменяемы. Каждая BSD заботится о безопасности и работает над ней. Каждая BSD заботится о производительности и работает над ней. Каждая BSD заботится о портируемости и работает над ней. Внутри группы делятся большими кусками кода. Многие разработчики работают более чем над одной системой.Проницательный читатель заметит, что я не упомянул Mac OS X или лежащий в её основе . Хотя они и построены в большей степени на BSD, верхние слои OS X - это всё-таки чистый Apple. Работая в OS X, как пользователь, вы используете её как MacOS, а не как BSD. Поэтому, несмотря на то, что чисто академически некоторые вещи можно отнести к OS X, особой практической ценности в их понимании нет. Darwin ближе к стандартному понятию BSD, но так как большая часть его пользователей пришли из BSD, можно сказать, что это вне контекста моего эссе. Однако, большая часть общей информации, скорее всего, будет лёгкой для понимания.При обсуждении специфики в моём эссе, я, в основном, буду ссылаться на FreeBSD, потому как с ней я работаю и знаю её лучше всего. В некоторых специфичных аспектах будут существенные различия. Общие стороны, скорее всего, будут одинаковыми для всей группы. С философской точки зрения, все BSD очень похожи, в отличие от методологии Linux. Как бы то ни было, это эссе в первую очередь философское.

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

В соответствии с данными, полученными от IOSC, в 1999 году практически треть всех машин, которые были подключены к интернету, работали на основе Linux, в то время как практически 15% применяли операционную систему FreeBSD. Что это за система, и по сегодняшний день знают лишь немногие современные пользователи ПК, несмотря на все ее преимущества и широкое распространение в свое время. Стоит отметить тот факт, что многие мировые лидеры в сфере Web-услуг активно работают на данной системе. В частности, стоит отметить, что на сегодняшний день система Yahoo основана на FreeBSD. Что это дает пользователям, сами они вряд ли знают и даже задумываются, но владельцы системы уверены, что это правильное решение.

Что представляет собой BSD?

BSD расшифровывается как Berkeley Software Distribution. Именно так в своем время называлось программное обеспечение, которое в Беркли распространял в исходных кодах. При этом стоит отметить тот факт, что изначально дополнение к стандартной операционной системе UNIX - это единственное, что представляло собой FreeBSD. Что это было по сравнению с нынешней версией системы?

На основе версии 4.4 BSD-Lite создавалось несколько операционных систем, имеющих открытые исходные коды. В частности, состав этих систем включал в себя разработки других проектов, среди которых отдельного внимания заслуживает проект GNU.

Структура

Преимущества и особенности, которые имеет данная система, отличаются структурой FreeBSD. Что это за структура:

  • Ядро, которое предназначается для тщательной планировки всех процессов, управления памяти, работы с различными устройствами, а также поддержки многопроцессорных систем. При этом следует отметить тот факт, что, в отличие от ОС Linux, в данном случае есть несколько типов ядер BSD, которые отличаются разными особенностями.
  • Библиотека С, которая используется в качестве основного системного интерфейса программирования, причем основывается на коде из Беркли, а не из проекта GNI.
  • Всевозможные файловые утилиты, компиляторы, оболочки, редакторы связей, а также другие программы конечного пользователя, при этом некоторые из них основываются на коде GNU.
  • FreeBSD UNIX - операционная система, включающая в себя X Window, которая отвечает непосредственно за Данная система применяется в преимущественном большинстве версий BSD и официально поддерживается проектом X.Org. Данная система позволяет пользователю делать выбор из нескольких графических оболочек, а также целого ряда легких оконных менеджеров.
  • Большое количество других системных и прикладных программ.

Что такое настоящий UNIX?

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

BSD - это UNIX?

И действительно, операционная система UNIX никогда не представляла собой программное обеспечение, имеющее открытый исходный код, в связи с чем BSD определенно нельзя будет назвать системой UNIX, хотя бы потому, что графический интерфейс операционных систем является разным. Однако в то же время компания, которая разрабатывала UNIX, активно пользовалась чужими разработками, и в частности это относится к программному обеспечению, которое разрабатывалось организацией CSRG.

Первоначально дистрибутивы BSD, а также графический интерфейс операционных систем представлял собой комплексы пользовательских программ, и такая ситуация продолжалась ровно до тех пор, пока компания не заключила контракт с DARPA, подчиненным Цель данного контракта - это обновление различных коммуникационных протоколов, на которых поддерживалась компьютерная сеть агентства.

В течение 80-х годов сформировалось несколько компаний, занимающихся производством рабочих станций, при этом стоит отметить, что многие из них приобретали лицензии на использование UNIX вместо того, чтобы пробовать разрабатывать с нуля собственное программное обеспечение. В частности, стоит выделить компанию Sun, которая поступила таким образом и решила на основе версии 4.2BSD в конечном итоге выпустить собственную операционку, которая называлась SunOSTM. Когда же компания AT&T, занимающаяся разработкой UNIX, в конечном итоге решила заняться коммерческой продаже собственной операционной системы, появилась довольно аскетичная реализация - System III, за которой с течением времени последовал также выход системы System V.

По какой причине эта операционная система остается невостребованной?

Есть некоторый ряд причин, по которым сегодня FreeBSD 10 пользуется не таким широким спросом:

  • Разработчики чаще всего интересуются качеством собственного кода, причем больше его шлифовкой, а не рекламой.
  • По большому счету, популярность Linux является следствием целого ряда внешних факторов относительно данного проекта, в частности, это касается средств массовой информации, а также компаний, которые решили сформировать собственный бизнес, предоставляя услуги пользователям этой операционной системы.
  • Разработчики BSD в преимущественном своем большинстве являются более опытными по сравнению с разработчиками Linux, в связи с чем они гораздо меньше внимания уделяют тому, чтобы облегчить жизнь простым пользователям. Другими словами, настройка FreeBSD для обычного пользователя является более сложной, чем
  • В 1992 году разработчик UNIX решил подать в суд на компанию BSDI, которая занималась поставкой операционной системы BSD/386. Основной пункт обвинения в данном случае был тем, что в ОС содержался закрытый код, принадлежавший истцу, и вроде бы дело в конечном итоге было улажено за пределами суда в 1994-м, но целый комплекс вторичных тяжб даже в наши дни отравляет жизнь многим людям.
  • Есть мнение, что сами по себе проекты BSD различаются и при этом могут даже конфликтовать между собой. Данное мнение основывается на событиях, которые происходили достаточно давно.

Что лучше - Linux или BSD?

На сегодняшний день чаще всего выбирают, устанавливая сервер Apache, FreeBSD вместо традиционного для большинства других систем Linux. Для среднего пользователя разница между этими системами является удивительно малой, так как оба продукта основываются на UNIX. Обе системы разрабатываются на некоммерческой основе.

Кому принадлежит BSD?

Стоит отметить, что нет какого-то конкретного человека или же компании, который бы владел разработкой BSD. Разработка, а также последующее распространение данной системы осуществляется целой группой высококвалифицированных и при этом преданных проекту специалистов, собранных со всего мира. Определенные компоненты BSD представляют собой отдельные проекты, имеющие открытый код, который имеет свои законы и коллективы разработчиков.

Что все-таки выбрать?

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

  • Если вами уже используется определенная Open Source ОС, то в таком случае вам не стоит даже что-то менять.
  • Системы FreeBSD могут проявлять гораздо большую производительность, но это правило не является универсальным.
  • Системы BSD отличаются довольно неплохой репутацией, и особенно это касается надежности.
  • BSD-проекты отличаются более хорошей репутацией благодаря тому, что они отличаются высоким качеством, а также полнотой доступной документации.
  • В BSD можно использовать преимущественное большинство исполнимых файлов Linux, в то время как Linux не может использовать многие выполнимые в BSD файлы.

Обеспечивает техническую поддержку, а также обслуживает FreeBSD - порты и системы - компания FreeBSD Mall, Inc.

Заметка эта родилась в ходе многочисленных переходов с одной системы на другую, в ходе многолетнего (во временных масштабах IT) их совместного использования, а также в ходе размышлений на тему: а какую систему мне поставить на новую машину? Непосредственным же толчком для нее послужила переписка с рядом авторов и мечты об идеальном дистрибутиве, обсуждавшиеся нет так давно на . Но для начала –Пара оговорок

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

И еще: далее ни слова не будет говориться о применении Linux или FreeBSD в качестве серверов, узлов локальной сети и тому подобных сисадминских материях. А исключительно – о пользовательских, сиречь десктопных, их качествах. Предвидя реакцию некоторой категории читателей, последнюю фразу готов выделить тэгом и повторить дважды и трижды:–) Субъективное вступление

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

В периоды, когда на моей машине одна FreeBSD, рабочее время мое распределяется примерно так: 90% – практическая работа (абсолютно не важно, какой характер она носит в данный момент), и 10% – более или менее нездоровые эксперименты над системой. Стоит же угнездиться в уголке винчестера какому–никакому Linux–у – и временная доля экспериментов сразу подскакивает до 50%. А в периоды, когда я занимался сборкой Linux–а с нуля, экспериментальный режим фактически становился перманентным.

И я задал себе вопрос – почему? И – для себя же – ответил: FreeBSD – цельная и стройная система, в которой после комплекса начальных настроек не возникает желания ни прибавить чего, ни убавить. Не случайно движение , время от времени охватывающее широкие слои Linux–пользователей, в мире FreeBSD фактически не получило развития: известное сочинение Йенса Швайкхардта (существующее и в ) – это скорее описание автоматизированной альтернативы sysinstall, нежели ручного построения собственной системы с нуля.

Linux такую внутреннюю стройность продемонстрировать не может. И потому желание что–то изменить в уже установленной системе, усовершенствовать, добавить, почистить, а то и просто пересобрать все заново, возникает постоянно, и преодолевается только дефицитом времени.

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

Однако повторяю, все это – сугубо субъективно, ведь далеко не все занимаются сочинением околокомпьютерных заметок. И потому попробую провести более объективное сравнение.Первая попытка объективизма: «железо»

Что требуется большинству пользователей от операционной системы как таковой? Во–первых, конечно поддержка «железа», которое на настольных персоналках, как известно, однообразием не страдает.

Бытует мнение, что Linux поддерживает более широкий спектр оборудования, нежели FreeBSD. Действительно, для последней мы не найдем, скажем, принтерных драйверов от производителя. Полноценная поддержка современных видеокарт реализована только в том случае, если они от NVIDIA (да и то, по отзывам, существенно худшая, нежели для Linux–а). Вероятно, возникнет в этой ОС напряженка и с т.н. win–модемами. Это с одной стороны.

А с другой: всем счастливым обладателям контроллеров ATA RAID и Serial ATA в Linux до недавнего времени приходилось прибегать ко всякого рода ухищрениям. К тому же не всегда удачным, особенно если присоединенные к таким контроллерам диски предполагалось использовать в качестве загрузочных устройств. Собственно, ситуацию можно считать нормализовавшейся только в последних ядрах ветки 2.6.X...

Во FreeBSD же 5–й ветки более или менее параллельно, на каком контроллере IDE–семейства сидит жесткий диск: благодаря CAM (Common Access Method) как–то работать с ним можно будет в любом случае, а если он еще и корректно опознан, то не будет препятствий и для загрузки с него. Да и в 4–й ветке – я ни разу не сталкивался с проблемами для «одновозрастных» контроллеров ATA RAID.

Другой пример – звуковые карты. Все те из них, что основаны на более–менее распространенных чипах, работали во FreeBSD без малейшего напряжения (рук или мысли). То же можно сказать и о «чипсетном» звуке. В Linux–е же аналогичные устройства часто требовали не вполне тривиальных манипуляций с ALSA–драйверами, благо ныне они встроены в ядро. Однако даже и в последнем случае без кое–каких настроечных действий не обойтись. Но это уже предмет второй попытки объективизма.

А итог «железного» объективизма я сформулировал бы так: может быть, Linux поддерживает более широкий круг всяческого оборудования (в том числе, и кое–какой экзотики), но все «железо», что поддерживается FreeBSD (а это практически все стандартное и распространенное «железо»), использовать, в большинстве случаев, проще. И тут мы плавно переходим ко второму волнительному для юзера, особенно начинающего (а не начинающие давно сделали свой выбор) моменту, имя которому –Настройка

Устоявшее (и тщательно культивируемое) мнение, будто бы FreeBSD сложнее в установке и настройке, нежели Linux, я не могу объяснить ничем иным, как недоразумением. Потому что ничего общего с действительностью оно не имеет.

Начнем с установки. Инсталляция FreeBSD штатными средствами (с помощью утилиты sysinstall) выполняется за полчаса, не требует непременного доступа к Сети (хотя таковой лишним не будет) и дает в итоге полностью работоспособную систему с кириллической консолью, функционирующим dial–up (или, по ситуации, включением в локалку), запускаемыми Иксами и необходимым для начала практической деятельности минимумом пакетов (из прекомпилированных бинарников). Все настройки, и общесистемные, и для прикладных пакетов, разумны (пусть и не идеальны с точки зрения конкретного юзера).

Конечно, установка FreeBSD требует некоторых предварительно полученных знаний. Каковые сводятся к а) представлению о разметке диска в BSD–стиле, принятой здесь номенклатуре накопителей и стратегии создания файловых систем. Не потому, что эти моменты так сложны – просто именно они очень отличаются от всего, что пользователь мог знать ранее (по опыту общения с DOS/Windows или Linux). И к тому же разметка диска и файловые системы на них – это единственное, что пользователь не в силах изменить после инсталляции (без тотальной переустановки, естественно). Однако и это не столь страшно: предлагаемая в sysinstall схема разметки и файловых систем по умолчанию вполне походит для настольной персоналки, хотя и не идеальна в ряде специальных случаев.

Большинство известных мне инсталляторов из разных дистрибутивов Linux отличаются от Free"шного sysinstall в две противоположные стороны:

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

Наравне с Free–шным sysinstall я поставил бы (из всех мне известных) только установщик из Archlinux. Написанный, как свидетельствует его разработчик, под влиянием первого, он обеспечивает почти такое же сочетание простоты и гибкости.

Однако (и это уже специфика Linux как системной целостности) даже в этом случае законченной работоспособной системы на выходе не получается. Без ручной доводки обойтись не удастся.

Конечно, постинсталляционная доводка не возбраняется и во FreeBSD. Однако здесь она направлена на достижение идеала, а не обеспечение базовой функциональности. Что я проиллюстрировал бы серией примеров.

Начнем с той же русификации. Сразу после установки FreeBSD пользователь, при желании, получает полностью кириллизованную консоль. Правда, в одном–единственном варианте, с внутренней кодировкой kOI8–R, вводом в ней же и экранным выводом в кодировке DOS, да еще и с не вполне идеальными шрифтами. Но никаких дальнейших действий по базовой русификации от него в обязательном порядке не требуется. А привести раскладки и шрифты в соответствие со своим идеалом он может и позднее. В дистрибутивах же Linux, не очень напирающих на дружественность пользователю ручной правки пары конфигов, пожалуй, не избежать. На причинах этого останавливаться не буду (для тех, кто представляет разницу между консолью в Linux и FreeBSD, они очевидны).

Конечно, в user–ориентированных дистрибутивах Linux отечественного происхождения пользователь получает стопроцентно русифицированную консоль «из коробки». Однако выполненную в соответствии с представлениями разработчиков. Каковые отнюдь не обязаны совпадать с представлениями (и, главное, потребностями) данного конкретного пользователя. И в этом случае на коррекцию ему придется затратить существенно больше сил, нежели при русификации с нуля какого–либо дистрибутива из числа Source Based. В подтверждение чему – вспомним многочисленные статьи, посвященные откату в Red Hat (и Fedore"ном Core) с «прогрессивной» кодировки UTF на KOI8, пусть «бомжовскую», но вполне устраивающую многих и многих...

Русификация консоли тесно связана со стилем инициационных файлов, принятых в данной системе. И тут линейный BSD–стиль с позиций пользователя выглядит более простым, нежели принятая в Linux инициация в стиле System V, основанная на понятии runlevels , перевод которого как «уровни выполнения» способен окончательно запутать начинающего пользователя.

Господа админы промышленных серверов возразят мне, что стиль System V позволяет гибко подключать и отключать различные стартовые сервисы. Не буду спорить. Однако часто ли такая задача встает перед настольным пользователем? Гораздо чаще его целью является убиение раз и навсегда многочисленных служб, которые майнтайнеры дистрибутива посчитали жизненно необходимыми для его счастья...

Не случайна тенденция многих современных дистрибутивов Linux к использованию BSD–стиля загрузки, примерами чему, кроме классической Slackware, и CRUX, и Gentoo. А в Archlinux понятие runlevels вообще утрачивает значение, хотя соответствующие слова в файле /etc/inittab найти можно, на практике уровни выполнения при старте системы никак не играют. А вот попыток внедрить в BSD–системы «прогрессивный» стиль System V что–то не наблюдается. Не считать же таковым группировку скриптов различных служб в едином подкаталоге в /etc во FreeBSD 5–й ветки.

Что до русификации Иксов – X, как известно, он и в Африке X. И действия по вписыванию путей к файлам с кириллическими шрифтами, коррекция клавиатурной раскладки и установка переключателя с латиницы на кириллицу окажутся неизбежными, поверх какой операционки Иксы бы ни стояли.

Второй показательный пример – настройка звука. Во FreeBSD это требует (для подавляющего большинства распространенных чипов и чипсетного аудио) внесения одной (и одинаковой во всех случаях) строки в конфигурацию ядра и перекомпиляции последнего. После чего о звуке можно просто забыть – он будет работать всегда и везде.

К слову, можно обойтись и без перекомпиляции ядра, модуль поддержки звука собирается (как и почти все модули) во FreeBSD в обязательном порядке, достаточно загрузить его вручную или обеспечить загрузку при старте системы.

В Linux: начинаем с того, что то же самое чипсетное аудио (а с постепенным вымиранием карт типа SB AWE128 оно становится предпочтительным для всех пользователей без претензий на меломанию или композиторство) непременно требует драйверов ALSA. Благо, что ныне они встроены в ядро и в большинстве дистрибутивов включены в умолчальные ядра в качестве модулей. Если нет, то перекомпиляция ядра большого труда не составит.

Однако перекомпиляцией ядра дело не ограничивается. Нужно еще поставить соответствующий ALSA–инструментарий (да еще, как правило, средства совместимости ее со старой звуковой системой OSS), активизировать соответствующего демона и с помощью не вполне очевидных средств обеспечить его «самовосстановление». И после всего этого опять столкнуться с неожиданностями. Например, с нежеланием мирного сосуществования ALSA и arts (звуковой системы KDE). Конечно, мне могут возразить, что это проблемы KDE, однако во FreeBSD их не возникает вовсе.

Кстати, о доустановке инструментария (и прочих программ)... Для этого ведь необходимаСистема управления пакетами

Здесь до недавнего времени первенство, безусловно, принадлежало FreeBSD. Система портов ее обеспечивала несравненное сочетание простоты и гибкости, всегда оставляя возможность выбора – собирать ли пакеты из исходников, или устанавливать их из бинарников. Не возбраняя и комбинацию этих методов. Из всего Linux–ового богачества по этой части с портами мог сравниться только Debian–овский apt, ассимилированный в недрах многих rpm–based дистрибутивов. Однако, хотя apt и предполагает возможность сборки собственных пакетов, основным методом при нем является использование прекомпилированных бинарников, собранных в соответствие с представлениями майнтайнера о зависимостях оных.

Ныне положение изменилось и в Source Based дистрибутивах Linux широко используются портообразные системы, развившиеся под сильным влиянием своего FreeBSD–прототипа: портежи Gentoo, Sorcery из Sorcerer"а, порты CRUX, Archlinux Building System из одноименного дистрибутива. Они подчас превосходят своего прародителя по универсальности, гибкости, глобализации настройки или прозрачности устройства, использования и модернизации. К тому же, за десятилетие своего развития порты FreeBSD стали весьма громоздким и труднообозримым сооружением, поддержание которого в актуальном состоянии представляет собой отдельную задачу. Далеко не всегда решаемую с помощью дополнительных средств типа portupgrade (которая сама по себе является уже частью не базовой системы, но системы портов).

И тут уместно сказать пару слов еще об одной широко распространенной легенде – будто бы сборка из исходников посредством портообразных управляющих комплексов всегда приводит к более «чистой» (то есть свободной от лишних компонентов) системе. Это далеко не всегда так.

Во–первых, в самой природе портов (и их клонов) часто заложена некоторая избыточность устанавливаемых компонентов. Хрестоматийный пример – cvs-up, требующий для актуализации, как базовой системы, так и портов FreeBSD: в бинарном виде это легкий компактный пакет, не обременяющий даже пользователя с модемным подключением. При сборке же через порты он тянет за собой дистрибутив modula (поскольку на нем написан), который дальнейшем не пригодится никому, кроме приверженцев этого языка программирования.

Что меня всегда удивляло в портах FreeBSD, так это ситуация со сборкой моего любимого редактора joe. Каковой в качестве зависимости непременно требовал GNU make версии 3.80, хотя собственный make входит в состав FreeBSD Distributions и собрать с его посредством joe руками не составляет никаких проблем.

А вообще «чистота» установки пакета очень зависит от конкретной реализации порта. Недавно обнаружил я в новостях сообщение о новом оконном менеджере под названием edo – небольшом, как говорилось, компактном и быстром. Обнаружился он и в портах FreeBSD, откуда я решил его собрать. В итоге этот маленький:–) WM потянул за собой (как зависимость зависимости) не что иное, как MySQL...

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

Каждый, кому доводилось собирать Linux from Scratch, знает, что некоторые версии пакетов Base Linux имеют обыкновение собираться только с определенными (отнюдь не обязательно самыми свежими) версиями таких утилит, как autoconf и automake, категорически отказываясь делать это с другими их версиями (пусть даже более свежими и прогрессивными).

Разработчики Source Based дистрибутивов Linux подчас обходят эту сложность тем, что принудительно вносят в список зависимостей таких «склизких» пакетов autoconf и automake «прошлогоднего» розлива, притом, что сам по себе базовый комплект включает уже текущие на данный момент их версии. В результате чего, например, в Gentoo при выполнении бутстраппинга или emerge system можно с удивлением наблюдать, как система лезет в Интернет за бородатым, как Карл Маркс, autoconf хотя свежая его версия только что была развернута из тарбалла stage1. А если вспомнить, что многие полагают, будто по настоящему стабильное ядро Linux может быть собрано только с gcc версии 2.9.X, результатом чего оказывается присутствие в системе двух компиляторов, то о какой «чистоте» сборки можно еще говорить?

Впрочем, достижение разумного баланса между развертыванием прекомпилированных пакетов, установкой их из портообразной системы и самостоятельной «штучной» сборкой – тема совершенно отдельного разговора. А пока рискну сформулировать еще пару «объективок»:

  • FreeBSD, вопреки устоявшемуся мнению, существенно проще в настройке и локальном администрировании. Даже без учета того факта, что она одна, а Linux–ов – много;
  • напротив, система портов FreeBSD в настоящее время (в отличие от недавнего прошлого), не имеет значимых преимуществ перед аналогичными инструментами из Source Based дистрибутивов Linux.

Если тщательно подсчитать приведенные выше плюсы и минусы обеих операционок, можно прийти к выводу, что счет между ними – равный. Возможно, с незначительным позиционным преимуществом FreeBSD, но столь незначительным, что вполне резонно согласиться на ничью. Однако каждая ОС устанавливается, настраивается и наращивается приложениями не ради себя самой, а для практического использования. И потому следует рассмотреть в сравнении ихПользовательские качества

Здесь для начала рискну высказать крамольное, с точки зрения фанатиков любой из обсуждаемых систем, мнение (впрочем, фанатики любое мнение, не совпадающее с их собственным, сочтут крамольным). А именно:

Для пользователя, отдающего преимущество работе в графическом режиме, разницы между FreeBSD и Linux практически нет.

Ибо такой пользователь большую часть времени проводит в Иксах, и ему абсолютно без разницы, поверх какой операционки эти самые Иксы крутятся. Ему только кажется, что он работает в Linux или FreeBSD (NetBSD, OpenBSD – рискну расширить я этот список). На самом деле работает он в KDE (Gnome, XFce, WindowMaker – нужное дописать). И если бы ему не пришлось предварительно устанавливать и настраивать свою операционку, он имел бы шанс никогда не узнать, в какой именно из POSIX–совместимых систем он работает: перед ним будут одни и те же интерфейсные элементы, одни и те же средства настройки и приложения.

Так что в сравнительном аспекте речь может идти только о работе в консольном режиме с использованием системных и пользовательских утилит базового комплекта.

И тут я не могу не произнести оду текстовой консоли FreeBSD и средствам управления ею. Каковые включают в себя всего две команды: vidcontrol и kbdcontrol, назначение которых однозначно вытекает из названий. И которые позволяют настроить в консоли абсолютно все – от плотности символов на экране (т.н. разрешения) до цвета бордюров, своих для каждого виртуального терминала.

Пользователь Linux для начала вынужден разбираться с тем, какой из двух пакетов управления консолью – kbd или console-tools применяется в его дистрибутиве. Конечно, ныне они практически идентичны по своим возможностям, но каждый имеет свой набор команд с несколько различающимся синтаксисом. А кое–какие настройки (например, цвета текста и фона) требуют от него использования команд, не входящих ни в один из пакетов. А кое–что (например, те же цвета бордюров) все равно останутся для него недоступными.

Сказанное относится и к базовым командам обеих систем. FreeBSD Distributions – монолит, тесно увязанный с ядром, включающий в себя все, что может понадобиться пользователю для администрирования и использования системы (а администрирование локального десктопа такая же пользовательская задача, как и обработка текстов или манипулирование файлами).

Конечно, и Linux располагает тем же самым набором классических Unix–утилит (точнее, как и FreeBSD, их аналогами). Однако это именно разобщенные пакеты, разрабатывавшиеся в рамках проекта GNU, в сущности, независимо от операционной системы. И уже в силу этого не столь тесно интегрированные с ней и между собой.

Так что же, в консольном режиме первенство остается за FreeBSD? По моему мнению – безусловно. Но только если речь идет именно о чисто текстовой консоли. Если же обратить свой взгляд на т.н. графическую консоль (реализуемую посредством Frame Buffer), то все видится несколько иначе.

Начать с того, что графическая консоль FreeBSD (т.н. Raster Mode) ограничена одним–единственным разрешением 800x600 (тут речь идет именно о настоящем пиксельном разрешении, а не плотности символов). Да и то на некоторых чипах этот режим не работает вообще, на других имеет вполне скверный вид. Собственно, нормального результата в Raster Mode мне не удавалось добиться ни на одной из имевшихся в моем распоряжении видеокарт.

В Linux же графическая консоль просто радует глаз. Даже при поддержке Frame Buffer для абстрактных VESA–совместимых карт, можно варьировать разрешения от 640x480 до 1280x1024, с изменением глубины цвета в стандартном диапазоне. Что обеспечивает не только комфортный просмотр изображений, но и весьма приличное (на мой взгляд – более чем приличное) воспроизведение видео. Для карт, имеющих хорошо реализованные собственные драйвера в ядре Linux (Matrox, ATI, чипсетное видео от Intel) к этому добавляется возможность установки нестандартных разрешений экрана.

Естественно, никто не использует консоль для работы с изображениями, и очень немногие для просмотра видео. Почему же я придаю графической консоли такое значение? Да потому, что незаметно, но наступает эра жидкокристаллических дисплеев, знаменующая собой смерть чисто текстового режима (но не консольного режима как такового). Почему – легко поймут те, кто видел стандартный текстовый режим 80x25 символов на 18–дюймовом LCD–мониторе с физическим разрешением матрицы 1280x1024. А как это смотрелось бы на экране с соотношением сторон 16:9 я боюсь себе даже представить...

Наконец, остается еще один вопрос, важный для пользователя –О производительности

Представление о большем быстродействии FreeBSD по сравнению с Linux–ом столь же традиционно, как и мнение о большей сложности ее настройки. Однако так ли все однозначно?

Во–первых, как один из основных критериев при этом рассматривается скорость загрузки, корреляция которой со скоростью исполнения приложений несколько сомнительна. Помнится, из немалого числа операционок, которые мне довелось видеть в своей жизни, быстрее всех грузилась MS DOS:–)

Во–вторых, даже если считать скорость загрузки одним из критериев быстродействия, то превосходство перед Linux–ом обнаруживает только FreeBSD 4–й ветки. Пятая ветка грузится ровно столько же, сколько и любой дистрибутив Linux, задействующий файловую систему устройств devfs. Конечно, в благородном Linux–семействе можно подобрать таких представителей, которые грузятся еще дольше, но это очень дружественные к юзеру системы, отягощенные... изобилием стартовых сервисов (в частности, автоопределителем оборудования kudzu).

По своему сугубо пользовательскому опыту я бы сказал, что разницы в быстродействии на пользовательских задачах между Linux и FreeBSD органолептически обычно не просматривается. За двумя исключениями, первое из которых – файловые операции.

Очевидно, что на производительность файловых операций каждой ОС влияют два фактора – реализация взаимодействия с дисковой подсистемой (для десктопа – конкретно с интерфейсом ATA) и организация поддерживаемой файловой системы (систем). И вот тут–то FreeBSD оказывается в невыгодном по сравнению с Linux положении.

Выше упоминалось, что за счет CAM во FreeBSD (речь идет о 5–й ветке) достигается универсализм в работе с дисковыми контроллерами – у меня сложилось впечатление, что ей вообще безразлично, на каком конкретно контроллере сидит диск (лишь бы он опознавался BIOS"ом – но и это необходимо только для загрузки с него ядра). Однако за универсализм приходится платить. И, похоже, что в данном случае расплата наступает в виде снижения быстродействия дисковых операций – хотя достоверной информации по данному вопросу я не нашел, исходя из общих соображений, это выглядит похожим на правду.

Такова первая сторона вопроса. Вторая – файловая система FreeBSD, каковыми являются UFS и (по умолчанию в 5–й ветке) ее усовершенствованная модернизация UFS2. Традиционно в этой ОС обе используются в частично синхронном режиме (noasync mode), когда изменения метаданных файлов записываются на диск немедленно, а изменения блоков данных – кэшируются в оперативной памяти.

В Linux принята другая модель работы с ATA–дисками: разные типы контроллеров имеют (или не имеют) собственную поддержку в ядре. Что исключает использование явно не поддерживаемых устройств, зато для поддерживаемых, судя по всему, обеспечивает большее быстродействие. Файловые системы (а Linux поддерживает в качестве нативных несколько их разновидностей) по умолчанию все (кроме, возможно, JFS) используются в полностью асинхронном режиме (async mode), когда и данные, и метаданные кэшируются в оперативной памяти.

В результате сочетания указанных факторов файловые операции осуществляются в Linux существенно быстрее, нежели во FreeBSD. Собственно, я всегда это подозревал, но только показало, насколько отставание FreeBSD 5–й ветки в этом плане существенно – положение не спасает даже механизм SoftUpdates, призванный повысить и надежность, и производительность манипуляций над файлами. К слову сказать – во FreeBSD 4–й ветки такого отставания ранее не наблюдалось, что косвенно подтверждает негативное влияние работы с дисковой подсистемой (усугубляющее деградацию именно синхронных операций) – в ней модель CAM не используется (по крайней мере, не использовалась, когда я ею пользовался). А вот в Linux с его исключительно асинхронным использованием файловых систем, по моим наблюдениям, зависимости скорости работы с файлами от производительности дискового железа почти нет.

Второе из обещанных исключений относится к операциям своппинга. Каковые в Linux и FreeBSD выполняются существенно по разному. Для установления чего достаточно посмотреть на вывод команды top в той и другой ОС при среднепользовательской нагрузке. В Linux можно видеть, что при достаточном количестве оперативной памяти процент использования swap–пространства стремится к нулю. Например, на моем ноутбуке с Linux (512 Мбайт памяти) в момент сочинения этих строк, при загруженном KDE, html–редакторе Quanta, konsole, двух экземплярах konqueror и работающем mplayer (воспроизводство mpeg и RealAudio), swap не задействован вообще. На десктопе с FreeBSD (1 Гбайт памяти) при той же нагрузке задействованная область подкачки меньше 10% почти не опускается.

Это связано с тем, что Linux прибегает к своппингу только при переполнении оперативной памяти, во FreeBSD же на диск в любом случае (даже при избытке RAM) выгружаются страницы памяти, к которым не было обращений в течение некоего промежутка времени. В сущности, оперативная память в этой ОС выступает в качестве своего рода кэша для области подкачки (точнее, для виртуальной памяти вообще). Что эффективно при ограниченном ее объеме и было оправдано в стародавние времена, когда процессоры были медленными, а памяти – мало. Ныне такая модель использования своппинга в некоторых ситуациях приводит к замедлению работы. Пример – KDE с большим количеством рабочих столов и периодическим переключением между ними, где такое замедление видно невооруженным глазом.

Все это обуславливает большее объективное (устанавливаемое тестами) и особенно субъективное быстродействие Linux по сравнению с FreeBSD. Хотя должен опять подчеркнуть – речь идет именно о десктопной сфере: на сильно загруженном сервере механизм кэширования FreeBSD может проявить свои сильные стороны, и скоростные соотношения между этими системами, возможно, в ряде случаев окажутся прямо противоположными.Подведем итоги

В самом начале этой заметки я не обещал дать однозначного ответа на поставленный в ее заголовке вопрос. Точнее, обещал, что его не будет. И действительно, для себя однозначного ответа я не вижу. Но кое–какие наметки для него сделать себе позволю.

Чем подкупает FreeBSD – так это а) простотой установки, б) логичностью настройки и в) легкостью администрирования в локальном масштабе. Однако те же особенности (по крайней мере, большая их часть) характерны ныне и для лучших (по моему мнению) современных представителей Linux–семейства (CRUX и Archlinux, в какой–то степени – Gentoo). Хотя ожидать от них внутренней стройности и целостности FreeBSD, по понятным причинам, в ближайшее время не приходится.

В то же время я отдаю себе отчет в архаичности файловой системы FreeBSD, особенно отчетливо проступающей в сравнении с современными реализациями ReiserFS и XFS для Linux. И почти месячная эксплуатация FreeBSD–десктопа и Linux–ноутбука – машин с практически равным номинальным быстродействием, – что называется, лицом к лицу, убеждает меня в большем быстродействии последней. А вот что имеет больший вес для пользователя – это каждый должен решать для себя. Хотя, как это ни прискорбно, Linux в настоящий момент кажется лучшим выбором для настольного применения.

Однако подчеркну – в настоящий момент, ведь выход версии FreeBSD 5.3 может существенно изменить ситуацию. Однако что бы ни случилось, будущее хотелось бы видеть как взаимовлияние обеих операционных систем, взаимной ассимиляции всех плюсов и изживании минусов. Почему я и закончил бы свое затянувшееся повествование лозунгом в духе советских времен:

Демон с пингвином – братья навек!

Оригинал: HTG Explains: What’s the Difference Between Linux and BSD?
Автор: Chris Hoffman
Дата публикации: 9 июня 2014 г.
Перевод: Н.Ромоданов
Дата перевода: июнь 2014 г.

Linux и системы BSD являются свободными Unix-подобными операционными системами с открытым исходным кодом. Они даже используют большую часть того же самого программного обеспечения — у этих операционных систем общего больше, чем различий. Так почему же они все существуют?

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

Основы

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

Linux и системы BSD являются Unix-подобными операционными системами. Как мы уже рассматривали , когда изучали историю Unix-подобных операционных систем, Linux и BSD имеют разное происхождение. Linux был написан Линусом Торвальдсом (Linus Torvalds), когда он был студентом в Финляндии. BSD является сокращением от «Berkeley Software Distribution» (Дистрибутив программ Беркли), поскольку первоначально это был набор модификаций для Bell Unix, созданных в Университете Калифорнии, Беркли. Он, в конечном итоге, превратился в полноценную операционную систему, и теперь существует несколько различных систем BSD.

Сравниваем ядро и полную операционную систему

Официально Linux это просто ядро. Распространители Linux должны выполнить работу по соединение вместе всего программного обеспечения, необходимого для создания полноценной ОС Linux, и объединяя его в виде дистрибутива Linux, например, Ubuntu, Mint, Debian, Fedora, Red Hat или Arch. Есть много различных дистрибутивов.

В противоположность этому, системы BSD являются как ядром, так и операционной системой. Например, в системе FreeBSD предлагается как ядро FreeBSD, так и операционная система FreeBSD. Это поддерживается в рамках одного проекта. Другими словами, если вы хотите установить FreeBSD, вы просто устанавливаете FreeBSD. Если вы хотите установить Linux, то вы, прежде всего, должны будете сделать выбор среди многих дистрибутивов Linux.

Системы BSD включают в себя систему портов, которая предоставляет возможность установки программных пакетов. Система портов содержит программное обеспечение в виде исходного кода, так что ваш компьютер должен скомпилировать их, прежде чем они будут работать. Если вы когда-либо использовали систему Gentoo, когда она была популярна, то это что-то в этом роде. Тем не менее, пакеты также могут быть установлены в виде предварительно установленного двоичного кода, поэтому вам не придется тратить время и системные ресурсы для их компиляции.


Лицензирование

Значительная разница в лицензирование, хотя для большинства людей это не будет иметь значения. В Linux используется лицензия GNU General Public License или GPL. Если вы модифицируете ядро Linux и распространяете его, то вы должны предоставить исходный код ваших модификаций.

В системах BSD используется лицензия BSD. Если вы модифицируете ядро или дистрибутив BSD и распространяете его, вам вообще не нужно предоставлять исходный код. Вы свободны делать все, что вам понравится с кодом BSD, и вы не обязаны предоставлять исходный код, хотя вы можете сделать это, если хотите.

Обе лицензии с открытым кодом, но по-разному. Люди иногда увязают в дебатах о том, какие лицензии является «более свободными». GPL помогает пользователям за счет того, что они могут иметь исходный код программного обеспечения GPL, но это ограничивает разработчиков, заставляя их выпустить исходный код. Лицензия BSD не гарантирует то, что пользователи могут иметь исходный код, но он дает разработчикам свободу делать с кодом все, что они выберут, даже если они захотят включить его в проект с закрытым исходным кодом.

Системы BSD

К ним часто относят следующие три «главные» операционные системы BSD:

  • FreeBSD : Система FreeBSD является самой популярной системой BSD, стремящейся к высокой производительности и простоте использования. Он хорошо работает на стандартных 32-битных и 64-битных процессорах Intel и AMD.
  • NetBSD : Система NetBSD предназначена для работы на почти всем и поддерживает гораздо больше архитектур. Девиз на ее домашней странице следующий - «Конечно, на этом устройстве работает NetBSD».
  • OpenBSD : Система OpenBSD предназначена для обеспечения максимальной безопасности - не только благодаря ее особенностям, но и благодаря практике ее реализации. Она создан, чтобы быть операционной системой, которую банки и другие серьезные учреждения будут использовать для критически важных систем.

Есть две другие известные операционные системы BSD:

  • DragonFly BSD : Система DragonFly BSD была создана с целью разработки операционной системы, которая работала бы хорошо в многопоточных средах - например, в кластерах из нескольких компьютеров.
  • : Система Mac OS X на самом деле базируется на операционной системе Darwin, который базируется на системе BSD. Она немного отличается от других систем BSD. В то время как ядро нижнего уровня и прочее программное обеспечение являются открытым исходным кодом BSD, большая часть кода из остальной части операционной системы является закрытым исходным кодом Mac OS. Компания Apple создала системы Mac OS X и IOS поверх BSD, поэтому ей не потребовалось самой писать операционную систему низкого уровня, точно также, как Google создало систему Android поверх Linux.

Когда следует выбирать BSD вместо Linux?

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

Если вы пользовались Linux, во FreeBSD вы не почувствуете никакой разницы. Установите FreeBSD в качестве операционной системы настольного компьютера, и вы в конечном итоге будете с помощью того же окружения рабочего стола GNOME, KDE или Xfce будете пользоваться, как и на Linux, большей частью тем же самым остальным программным обеспечением. Но как вы только доберетесь до этой точки, FreeBSD не будет автоматически устанавливать графический рабочий стол, так что вам потребоваться позаботиться о себе больше, чем в современных дистрибутивах Linux. Это практика более старой школы.

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

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

Мы, вероятно, получим комментарии от тех, кто сейчас пользуется системой FreeBSD на своих настольных компьютерах, и вы, конечно, можете сделать это! Но операционная система, например, Ubuntu или Mint, будет более дружественной и более современной для большинства пользователей.