Введение


Что такое FreeBSD?

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

BSD — бабушка FreeBSD

Много лет назад компании AT&T потребовалось собственное, специализированное программное обеспечение для ведения бизнеса. Однако она не имела права вторгаться в компьютерную индустрию и поэтому не могла продавать свое программное обеспечение. В результате AT&T предоставила различные куски программного обеспечения и его исходный код университетам по очень низкой цене. Университеты смогли сэкономить средства, используя это программное обеспечение вместо предлагаемого по коммерческим ценам, а студенты университетов получили доступ к отличной технологии. Они могли читать исходный код и изучать его работу. Взамен AT&T получила бесплатную площадку для экспериментов и поколение специалистов по вычислительной технике, выросших на оборудовании AT&T. Все были довольны. Система UNIX была самым известным программным обеспечением, распространяемым по этому плану лицензирования.

Исходная система UNIX обладала массой недостатков в сравнении с современными операционными системами. Однако тысячи студентов имели доступ к исходному коду, а сотням преподавателей требовались интересные проекты для их студентов. Когда программы вели себя не так, как ожидалось, или в самой операционной системе обнаруживались какие-либо ошибки, то все, кто работал в системе день за днем, имели возможность и стимул исправить эти недостатки. Благодаря их усилиям система UNIX была вскоре улучшена и в ней появились многие возможности, которые сейчас мы воспринимаем как нечто само собой разумеющееся. Студенты добавили возможность управлять запуском программ (управление заданиями, job control). Файловая система UNIX S51K доводила до слез системных администраторов, поэтому они заменили ее файловой системой Fast File System, возможности которой перекочевали во все современные файловые системы. За многие годы было написано большое число полезных программ, постепенно заменивших целые блоки операционной системы UNIX.

Группа по исследованию компьютерных систем (Computer Systems Research Group, CSRG) Калифорнийского университета, участвовавшая в этих усовершенствованиях, стала центральным хранилищем улучшений кода UNIX. Группа CSRG собирала изменения, оценивала их, упаковывала и бесплатно передавала сборки всем обладателям действительной лицензии AT&T UNIX. Кроме того, CSRG сотрудничала с управлением перспективных исследовательских проектов (Defense Advanced Research Projects Agency, DARPA) с целью реализации в UNIX разнообразных функциональных возможностей, таких как стек протоколов TCP/IP. Итоговая коллекция программного обеспечения получила название Berkeley Software Distribution, или BSD.

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

Да, 15 лет работы — это в разработке программного обеспечения целая жизнь. Как много частей операционной системы не только продолжают использоваться, но и активно разрабатываются по прошествии 15 лет? По существу, в оригинальную систему BSD было внесено столько изменений, что за эти годы произошла почти полная замена оригинального кода UNIX кодом, созданным сотрудниками CSRG и их помощниками. От продукта AT&T осталось совсем мало.

В конце концов финансирование CSRG прекратилось и стало очевидным, что дальнейшее развитие проекта BSD подходит к концу. В 1992 году после некоторых споров в недрах Калифорнийского университета код BSD был открыт широкой публике. Такая передача прав получила название лицензии BSD.

Лицензия BSD

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

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

Это означает, что вы можете делать с исходными текстами BSD все, что угодно. (Первоначальная лицензия BSD требовала упоминать об использовании программного кода, выпущенного на основе лицензии BSD, но позднее это требование было снято.) В ней нет даже требования делиться своими изменениями с авторами первоначального кода! Любой желающий может свободно включать код BSD в патентованные продукты, бесплатные продукты и продукты с открытым исходным кодом. Код BSD можно распечатать на перфокартах и покрыть ими лужайку. Хотите выпустить 10 000 компакт-дисков с операционной системой BSD и подарить их своим друзьям? Пожалуйста. Иногда при обсуждении лицензии BSD упоминается не «copyright» (авторское право), a «copycenter» (копировальный центр) — «возьмите эту лицензию в копировальный центр и напечатайте для себя несколько копий». Неудивительно, что некоторые компании, например Sun Microsystems, так за нее ухватились — она бесплатна, надежна и большое число дипломированных специалистов имеет опыт работы с ней. Специально для использования преимуществ BSD UNIX была даже создана компания BSDi.

Состязание AT&T/CSRG/BSDi

Даже в эпоху расцвета CSRG работа над UNIX в AT&T не прекращалась. AT&T принимала распространяемые куски BSD UNIX, интегрировала со своей системой UNIX, а затем снова передавала получившийся результат университетам, которые вносили эти улучшения. Такой подход прекрасно себя зарекомендовал, пока AT&T не распалась и образовавшимся компаниям не получили разрешение конкурировать на рынке программного обеспечения. У AT&T была одна значительная собственность: высококлассная операционная система, которая была отлажена тысячами специалистов со всего мира. Эта операционная система обладала множеством полезных функциональных возможностей, таких как небольшие, но достаточно мощные команды, современная файловая система, возможность управления заданиями и стек протоколов TCP/IP. AT&T образовала свой филиал, Unix Systems Labaratories (USL), который стал успешно продавать UNIX предприятиям за большие деньги, поддерживая при этом отношения с университетами, которые и предоставили ей такую усовершенствованную операционную систему.

Публичный «выпуск» программного кода BSD, проведенный Беркли в 1992 году, был с большим неудовольствием встречен компанией USL (UNIX System Laboratories). Почти сразу же ее представители вызвали несколько фирм по производству программного обеспечения (в частности, BSDi) и университет в суд. В ответ Калифорнийский университет утверждал, что группа CSRG собрала систему BSD благодаря вкладу тысяч сторонних разработчиков, не имеющих отношения к AT&T, и поэтому то, чем пыталась распоряжаться AT&T, является интеллектуальной собственностью группы CSRG.

Этот судебный процесс побудил многих получить копию BSD, чтобы самим посмотреть, из-за чего разгорелась шумиха, в то время как другие компании стали создавать на его основе свои программные продукты. Одним из таких продуктов стала система 386BSD, которая со временем образовала ядро FreeBSD 1.0.

В 1994 году после двухлетних разбирательств адвокаты Калифорнийского университета доказали, что значительная часть кода в AT&T UNIX действительно могла быть взята почти наверняка только из BSD, а не наоборот. Хуже того, компания AT&T фактически нарушила условия лицензии BSD, нарушив авторские права группы CSRG на файлы, которые были включены в состав UNIX. (Компания могла нарушить самую либеральную в мире лицензию только преднамеренно!) Источником разногласий были всего полдюжины файлов. Чтобы положить конец этим спорам, компания USL подарила часть этих файлов BSD, запатентовав остальные.

После того как все утихло, была выпущена новая версия BSD UNIX под названием BSD 4.4-Lite. Последующее обновление, система BSD 4.4-Lite2, является бабушкой текущего кода FreeBSD, а также прародительницей многих других операционных систем семейства BSD.

Рождение FreeBSD

Одним из ранних достижений BSD стала система 386BSD — версия, которая могла работать на недорогих процессорах серии 386.* В рамках проекта 386BSD система была благополучно перенесена на процессоры Intel 386, но на этом дальнейшее развитие проекта остановилось. После периода застоя группа пользователей 386BSD решила самостоятельно продолжить развитие и создать FreeBSD, чтобы иметь возможность продолжать совершенствовать операционную систему. (Одновременно еще несколько групп начали работу над своими проектами, основанными на 386BSD, из которых выжила только система NetBSD.)

Системы 386BSD и FreeBSD растут из выпуска BSD 1992 года, ставшего причиной судебных споров с AT&T. В результате этих разбирательств все пользователи оригинальной версии BSD были вынуждены получать разрешение на производство любых продуктов, основанных на BSD 4.4-Lite2. Система BSD 4.4-Lite2 не была законченной операционной системой, в частности, из-за тех нескольких файлов, оставшихся в интеллектуальной собственности AT&T, которые имели чрезвычайную важность для функционирования системы. (В конце концов, если бы эти файлы не были так важны, AT&T не стала бы и беспокоиться!) Группа разработки FreeBSD приложила отчаянные усилия, чтобы заменить недостающие файлы, и вскоре была выпущена версия FreeBSD 2.0. С тех пор развитие системы продолжается.

Сегодня FreeBSD применяется по всему миру наиболее значительными и заметными компаниями, деятельность которых связана с Интернетом. Компания Yahoo! почти полностью работает на системах FreeBSD. IBM, Nokia, Juniper, NetApp и многие другие производители аппаратных средств применяют ее во встроенных системах, хотя об этом даже трудно догадаться. По существу, если компании необходима серьезная полоса пропускания в Интернете, она наверняка запускает FreeBSD или другую систему из семейства BSD. Машины FreeBSD окружают вас; вы просто не видите их потому, что аварии на них случаются редко. Основой надежности системы является группа разработчиков и сообщество пользователей, которые суть одно и то же.

Разработка FreeBSD

Существует старая поговорка, согласно которой управление программистами подобно выгулу группы котов. Несмотря на тот факт, что разработчики FreeBSD разбросаны по всему миру и говорят на разных языках, они отлично работают вместе в составе единой команды. Они больше напоминают семью львов, чем группу кошек. И, в отличие от некоторых других проектов, вся разработка FreeBSD ведется открыто. Систему разрабатывают три группы: создатели (committers), помощники (contributors) и пользователи (users).

Создатели

Сегодня в состав команды FreeBSD входит почти 500 разработчиков, или создателей. Они имеют доступ на чтение/запись к основному репозитарию исходного кода FreeBSD и могут разрабатывать, отлаживать и улучшать любую часть кода по своему усмотрению. (Термин committer произошел от английского commit — передавать или вносить изменения в исходный код.) Любые изменения исходного кода могут вывести систему из строя, сделать ее неработоспособной, поэтому на плечи создателей тяжким грузом ложится бремя ответственности за свои действия. Создатели отвечают за сохранение FreeBSD в работоспособном состоянии, они следят, чтобы добавление новых возможностей, по крайней мере, не привело к нарушениям и оценивают «заплаты», получаемые от других создателей. Большинство разработчиков являются добровольцами — лишь незначительная их часть получают оплату за свой усердный труд, большинство же других зарабатывают себе на жизнь, занимаясь другой работой. Например, компания Intel нанимает создателя, чтобы убедиться, что сетевые карты Intel правильно поддерживаются в FreeBSD. Система FreeBSD имеет большой авторитет среди компаний, имеющих отношение к Интернету, поэтому Intel беспокоится о надежной работе своих сетевых карт в этой операционной системе.

Чтобы присоединиться к плеяде разработчиков FreeBSD, достаточно подписаться на почтовую рассылку FreeBSD-hackers@FreeBSD.org, содержащую большую часть обсуждений технических вопросов. Технические вопросы разбиты на более специализированные почтовые рассылки — например, разработка сетевых служб обсуждается в FreeBSD-net@FreeBSD.org.

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

Помимо этого, ядро принимает на себя всю тяжесть управления. Основные функции в управлении — контроль, стимулирование и разрешение проблем между людьми. Контроль обеспечивают миллионы пользователей, сразу заявляющих, когда что-то не работает или работает не так, как ожидается; у создателей FreeBSD нет проблем со стимуляцией. Самая неприятная часть в управлении — улаживание споров между двумя людьми, и такой работы у Ядра хватает. Слова: «я вхожу в состав Ядра» — недостаточная награда за необходимость улаживать конфликт между двумя талантливыми разработчиками, которые играют друг у друга на нервах.

Помощники

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

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

Если бы я ничего не предлагал, я оставался бы пользователем. И ведь в этом нет ничего плохого!

Пользователи

Пользователи — это те, кто использует систему FreeBSD. Достоверно оценить количество пользователей FreeBSD невозможно, хотя такие организации, как BSDstats Project (http://www.bsdstats.org), предпринимают такие попытки. В конце концов, вы можете бесплатно скачать всю систему FreeBSD и при этом никогда не регистрироваться, не обновлять систему и не подписываться на почтовую рассылку. По приблизительным оценкам компаний, таких как Netcraft, от 5 до 15 процентов машин в Интернете работают под управлением BSD-систем. Если из этого числа исключить все компьютеры с операционной системой Windows, расположенные на офисных столах, этот процент вырастет многократно.

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

Комментарии запрещены.