---
authors:
  - 
    author: 'Joseph Koshy'
    email: jkoshy@FreeBSD.org
description: 'Как FreeBSD может помочь вам создать лучший продукт'
organizations:
  - 
    organization: 'The FreeBSD Project'
tags: ["FreeBSD", "FreeBSD as base for your product"]
title: 'Создание продуктов на основе FreeBSD'
trademarks: ["freebsd", "general"]
---

= Создание продуктов на основе FreeBSD
:doctype: article
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:source-highlighter: rouge
:experimental:
:images-path: articles/building-products/

ifdef::env-beastie[]
ifdef::backend-html5[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
:imagesdir: ../../../images/{images-path}
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[.abstract-title]
Аннотация

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

В этой статье рассматриваются вопросы использования кода FreeBSD в устройствах и программных продуктах. В ней подчеркиваются характеристики FreeBSD, которые делают её отличной основой для разработки продуктов. В заключение статьи предлагаются несколько «лучших практик» для организаций, сотрудничающих с проектом FreeBSD.

'''

toc::[]

[[introduction]]
== Введение

Современный FreeBSD известен как высокопроизводительная серверная операционная система. Он развернут на миллионах веб-серверов и хостов, доступных из интернета, по всему миру. Код FreeBSD также является неотъемлемой частью множества продуктов — от устройств, таких как сетевые маршрутизаторы, межсетевые экраны и системы хранения данных, до персональных компьютеров. Части FreeBSD также использовались в коммерческом коробочном программном обеспечении (см. crossref:building-products[freebsd-intro, FreeBSD как набор строительных блоков]).

В этой статье мы рассматриваем проект link:https://www.FreeBSD.org/[FreeBSD] как ресурс для разработки программного обеспечения — как набор строительных блоков и процессов, которые можно использовать для создания продуктов.

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

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

=== Целевая аудитория

Этот документ может быть интересен следующим широким группам людей:

* Принимающие решения в продуктовых компаниях, ищущие способы повысить качество своего продукта, сократить время выхода на рынок и снизить инженерные затраты в долгосрочной перспективе.
* Консультанты по технологиям, ищущие передовые методы использования "открытого исходного кода".
* Заинтересованные в понимании динамики проектов с открытым исходным кодом представители отрасли.
* Разработчики программного обеспечения, желающие использовать FreeBSD и ищущие способы внести свой вклад.

=== Цели статьи

Прочитав эту статью, вы должны:

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

=== Структура статьи

Остальная часть статьи структурирована следующим образом:

* crossref:building-products[freebsd-intro, FreeBSD как набор строительных блоков] представляет проект FreeBSD, исследует его организационную структуру, ключевые технологии и процессы разработки релизов.
* crossref:building-products[freebsd-collaboration, Сотрудничество с FreeBSD] описывает способы взаимодействия с проектом FreeBSD. В нём рассматриваются типичные проблемы, с которыми сталкиваются компании при работе с добровольными проектами, такими как FreeBSD.
* crossref:building-products[conclusion, Заключение] завершает.

[[freebsd-intro]]
== FreeBSD как набор строительных блоков

FreeBSD представляет собой отличную основу для создания продуктов:

* Исходный код FreeBSD распространяется под либеральной лицензией BSD, что способствует его использованию в коммерческих продуктах crossref:building-products[Mon2005,"Почему следует использовать лицензию в стиле BSD для вашего открытого проекта"] с минимальными сложностями.
* Проект FreeBSD обладает превосходными инженерными практиками, которые можно использовать.
* Проект обеспечивает исключительную прозрачность своей работы, позволяя организациям, использующим его код, эффективно планировать будущее.
* Культура проекта FreeBSD, унаследованная от Исследовательской группы по информатике Калифорнийского университета в Беркли crossref:building-products[McKu1999-1,"Двадцать лет Berkeley Unix: от собственности AT&T до свободного распространения"], способствует созданию высококачественных продуктов. Некоторые функции FreeBSD задают современный уровень развития технологий.

crossref:building-products[GoldGab2005,"Инновации происходят в другом месте: открытое ПО как бизнес-стратегия"] подробно рассматривает бизнес-причины использования открытого ПО. Для организаций преимущества использования компонентов FreeBSD в своих продуктах включают сокращение времени выхода на рынок, снижение затрат на разработку и уменьшение рисков разработки.

=== Сборка с FreeBSD

Вот несколько способов, как организации использовали FreeBSD:

* В качестве вышестоящего источника для проверенного кода библиотек и утилит.
+
Будучи "нисходящими" по отношению к проекту, организации используют новые функции, исправления ошибок и тестирование, которые получает вышестоящий код.
* Как встроенная ОС (например, для OEM-маршрутизаторов и устройств с межсетевым экраном). В этой модели организации используют настроенное ядро FreeBSD и набор прикладных программ вместе с проприетарным уровнем управления для своего устройства. OEM-производители получают выгоду от добавления поддержки нового оборудования проектом FreeBSD на уровне вышестоящего кода, а также от тестирования, которое проходит базовая система.
+
FreeBSD поставляется с автономной средой разработки, которая позволяет легко создавать подобные конфигурации.
* Как совместимая с Unix среда для функций управления высокопроизводительными устройствами хранения данных и сетевого оборудования, работающая на отдельном процессорном "лезвии".
+
FreeBSD предоставляет инструменты для создания выделенных образов ОС и прикладных программ. Его реализация API BSD Unix является зрелой и проверенной. FreeBSD также может обеспечить стабильную среду кросс-разработки для других компонентов высокопроизводительных устройств.
* Как средство для получения широкого тестирования и поддержки от международной команды разработчиков для некритичной "интеллектуальной собственности".
+
В этой модели организации вносят полезные инфраструктурные фреймворки в проект FreeBSD (например, см. man:netgraph[3]). Широкое распространение кода помогает быстро выявлять проблемы производительности и ошибки. Участие высококлассных разработчиков также приводит к полезным расширениям инфраструктуры, от которых выигрывает и сама организация-вкладчик.
* Как среда разработки, поддерживающая кросс-разработку для встраиваемых ОС, таких как http://www.rtems.com/[RTEMS] и http://ecos.sourceware.org/[eCOS].
+
В обширной коллекции портированных приложений и пакетов FreeBSD, насчитывающей {numports} элементов, доступно множество полноценных сред разработки.
* В качестве способа поддержки Unix-подобного API в проприетарной ОС, повышая её привлекательность для разработчиков приложений.
+
В этой части ядра FreeBSD и прикладных программ "портированы" для работы вместе с другими задачами в проприетарной ОС. Наличие стабильной и хорошо протестированной реализации Unix(TM) API может сократить усилия, необходимые для переноса популярных приложений на проприетарную ОС. Поскольку FreeBSD поставляется с качественной документацией по своей внутренней структуре и имеет эффективные процессы управления уязвимостями и выпуска релизов, затраты на поддержание актуальности остаются низкими.

[[freebsd-technologies]]
=== Технологии

В проекте FreeBSD поддерживается большое количество технологий. Ниже приведен их выбор:

* Полная система, способная самостоятельно осуществлять кросс-хостинг для link:https://www.FreeBSD.org/platforms/[множества архитектур:]
* Модульное симметричное многопроцессорное ядро с загружаемыми модулями и гибкой, удобной системой настройки.
* Поддержка эмуляции бинарных файлов Linux(TM) и SVR4 с почти нативной скоростью. Поддержка бинарных сетевых драйверов Windows(TM) (NDIS).
* Библиотеки для множества задач программирования: архиваторы, поддержка FTP и HTTP, поддержка потоков, а также полноценная среда программирования, аналогичная POSIX(TM).
* Безопасность: Принудительное управление доступом (man:mac[9]), клетки (man:jail[2]), ACL и поддержка криптографических устройств в ядре.
* Сетевые возможности: работа с межсетевым экраном, управление QoS, высокопроизводительные TCP/IP сети с поддержкой множества расширений.
+
Встроенная в FreeBSD система Netgraph (man:netgraph[4]) позволяет гибко соединять модули сетевого ядра между собой.
* Поддержка технологий хранения данных: Fibre Channel, SCSI, программный и аппаратный RAID, ATA и SATA.
+
FreeBSD поддерживает множество файловых систем, а его родная файловая система UFS2
поддерживает мягкие обновления, снимки и очень большие размеры файловых систем (16TB на
файловую систему) crossref:building-products[McKu1999,"Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem"].
+
Встроенная в ядро FreeBSD система GEOM (man:geom[4]) позволяет гибко комбинировать модули хранения данных.
* Более {numports} портированных приложений, как коммерческих, так и с открытым исходным кодом, управляемых через коллекцию портов FreeBSD.

=== Организационная структура

Организационная структура FreeBSD не является иерархической.

Существует два основных типа участников FreeBSD: обычные пользователи FreeBSD и разработчики с правом записи (известные в жаргоне как _коммиттеры_) в исходную базу.

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

.Организация FreeBSD
image::freebsd-organization.png[]

Разрешение конфликтов осуществляется «Основной командой» из девяти человек, которая избирается из группы коммиттеров.

В FreeBSD нет "корпоративных" коммиттеров. Отдельные коммиттеры обязаны нести ответственность за изменения, которые они вносят в код. В extref:{committers-guide}[Руководстве коммиттера FreeBSD] crossref:building-products[ComGuide,"Руководство коммиттера"] описаны правила и обязанности коммиттеров.

Модель проекта FreeBSD подробно рассматривается в crossref:building-products[Nik2005,"Модель проекта для FreeBSD"].

=== Процессы разработки релизов FreeBSD

Процессы разработки релизов FreeBSD играют важную роль в обеспечении высокого качества выпускаемых версий. В любой момент времени добровольцы FreeBSD поддерживают несколько линий кода (crossref:building-products[fig-freebsd-branches, Ветви релизов FreeBSD]):

* Новые функции и критически важный код попадают в ветку разработки, также известную как ветка _-CURRENT_.
* Ветви _-STABLE_ представляют собой линии кода, ответвленные от HEAD через регулярные промежутки времени. В ветку -STABLE допускается только проверенный код. Новые функции добавляются только после их тестирования и стабилизации в ветке -CURRENT.
* Ветви _-RELEASE_ поддерживаются командой безопасности FreeBSD. На ветви -RELEASE допускаются только исправления ошибок для критических проблем.

[[fig-freebsd-branches]]
.Ветви выпусков FreeBSD
image::freebsd-branches.png[]

Строки кода поддерживаются до тех пор, пока есть интерес со стороны пользователей и разработчиков.

Архитектуры машин разделены на «уровни»: архитектуры _Уровня 1_ полностью поддерживаются командами разработки выпусков и безопасности проекта, архитектуры _Уровня 2_ поддерживаются по мере возможностей, а экспериментальные архитектуры составляют _Уровень 3_. Список extref:{committers-guide}[поддерживаемых архитектур, archs] является частью коллекции документации FreeBSD.

Команда разработки релизов публикует link:https://www.FreeBSD.org/releng/[дорожную карту] будущих выпусков FreeBSD на веб-сайте проекта. Указанные в дорожной карте даты не являются крайними сроками; FreeBSD выпускается, когда его код и документация готовы.

Процессы разработки релизов FreeBSD описаны в crossref:building-products[RelEngDoc,"Инженерия релизов FreeBSD"].

[[freebsd-collaboration]]
== Сотрудничество с FreeBSD

Проекты с открытым исходным кодом, такие как FreeBSD, предлагают готовый код очень высокого качества.

Хотя доступ к качественному исходному коду может снизить затраты на начальную разработку, в долгосрочной перспективе затраты на управление изменениями становятся преобладающими. По мере того как вычислительные среды меняются с годами и обнаруживаются новые уязвимости безопасности, ваш продукт также должен меняться и адаптироваться. Использование открытого исходного кода лучше рассматривать не как разовое мероприятие, а как __непрерывный процесс__. Лучшие проекты для сотрудничества — это те, которые __активны__; т.е. имеют активное сообщество, четкие цели и прозрачный стиль работы.

* FreeBSD имеет активное сообщество разработчиков. На момент написания этого документа в мире насчитываются тысячи участников со всех обитаемых континентов, а также более 300 человек с правом записи в исходные репозитории проекта.
* Цели проекта FreeBSD описаны в crossref:building-products[Hub1994,"Участие в проекте FreeBSD"]:

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

* FreeBSD придерживается открытой и прозрачной рабочей культуры. Почти все обсуждения в проекте происходят по электронной почте на link:https://lists.freebsd.org/[публичных списках рассылки], которые также архивируются для потомков. Политики проекта link:https://www.FreeBSD.org/internal/policies/[документированы] и поддерживаются в системе контроля версий. Участие в проекте открыто для всех.

[[freebsd-org]]
=== Понимание культуры FreeBSD

Чтобы эффективно работать с проектом FreeBSD, необходимо понимать его культуру.

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

*Мотивация.* Большинство вкладов в FreeBSD делается добровольно,
без денежного вознаграждения. Факторы, мотивирующие людей, сложны и
варьируются от альтруизма до интереса к решению задач, которые FreeBSD
пытается решить. В таких условиях «элегантность никогда не бывает опциональной»
crossref:building-products[Nor1993,"Tutorial on Good Lisp Programming Style"].

*Долгосрочная перспектива.* FreeBSD ведёт свою историю почти двадцать лет назад, к работе Исследовательской группы по информатике (Computer Science Research Group) в Университете Калифорнии, Беркли.footnote:[Исходный репозиторий FreeBSD содержит историю проекта с момента его создания, а также доступны CD-ROM с более ранним кодом от CSRG.] Некоторые из оригинальных разработчиков CSRG до сих пор связаны с проектом.

Проект ценит долгосрочные перспективы crossref:building-products[Nor2001,"Научись программировать за десять лет"]. Часто встречающаяся в проекте аббревиатура — DTRT, что означает «Do The Right Thing» (сделай правильно).

*Процессы разработки.* Компьютерные программы — это инструменты для общения: на одном уровне программисты передают свои намерения, используя точную нотацию, инструменту (компилятору), который преобразует их инструкции в исполняемый код.
На другом уровне та же нотация используется для передачи намерений между двумя программистами.

Формальные спецификации и проектные документы редко используются в проекте. Вместо них применяются понятный и хорошо написанный код, а также хорошо составленные журналы изменений (crossref:building-products[fig-change-log, Пример записи в журнале изменений]). Разработка FreeBSD происходит по принципу «грубого консенсуса и работающего кода» crossref:building-products[Carp1996,"Архитектурные принципы Интернета"].

[.programlisting]
....
r151864 | bde | 2005-10-29 09:34:50 -0700 (Sat, 29 Oct 2005) | 13 lines
Changed paths:
   M /head/lib/msun/src/e_rem_pio2f.c

Use double precision to simplify and optimize arg reduction for small
and medium size args too: instead of conditionally subtracting a float
17+24, 17+17+24 or 17+17+17+24 bit approximation to pi/2, always
subtract a double 33+53 bit one.  The float version is now closer to
the double version than to old versions of itself -- it uses the same
33+53 bit approximation as the simplest cases in the double version,
and where the float version had to switch to the slow general case at
|x| == 2^7*pi/2, it now switches at |x| == 2^19*pi/2 the same as the
double version.

This speeds up arg reduction by a factor of 2 for |x| between 3*pi/4 and
2^7*pi/4, and by a factor of 7 for |x| between 2^7*pi/4 and 2^19*pi/4.
....
.Пример записи в журнале изменений [[fig-change-log]]

Общение между программистами улучшается благодаря использованию общего стандарта кодирования man:style[9].

*Каналы связи.* Участники проекта FreeBSD живут в разных уголках мира.
Электронная почта (и в меньшей степени IRC) — это предпочтительные способы общения в проекте.

=== Лучшие практики для сотрудничества с проектом FreeBSD

Теперь рассмотрим несколько лучших практик для наиболее эффективного использования FreeBSD в разработке продуктов.

Планируйте на долгосрочную перспективу::
Настройте процессы, которые помогают отслеживать разработку FreeBSD. Например:
+
*Отслеживание исходного кода FreeBSD.* Проект упрощает зеркалирование своего SVN-репозитория с помощью extref:{committers-guide}[svnsync, svn-advanced-use-setting-up-svnsync]. Наличие полной истории исходного кода полезно при отладке сложных проблем и даёт ценное понимание намерений оригинальных разработчиков. Используйте систему контроля версий, которая позволяет легко объединять изменения между основной кодовой базой FreeBSD и вашим внутренним кодом.
+
crossref:building-products[fig-svn-blame, Аннотированный листинг исходного кода, сгенерированный с помощью `svn blame`] показывает часть аннотированного листинга файла, на который ссылается журнал изменений в crossref:building-products[fig-change-log, Пример записи в журнале изменений]. Происхождение каждой строки исходного кода чётко видно. Аннотированные листинги, показывающие историю каждого файла, входящего в состав FreeBSD, https://svnweb.freebsd.org/[доступны в интернете].
+
[.programlisting]
....
#REV         #WHO #DATE                                        #TEXT

176410        bde 2008-02-19 07:42:46 -0800 (Tue, 19 Feb 2008) #include <sys/cdefs.h>
176410        bde 2008-02-19 07:42:46 -0800 (Tue, 19 Feb 2008) __FBSDID("$FreeBSD$");
  2116        jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) 
  2116        jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) /* __ieee754_rem_pio2f(x,y)
  8870    rgrimes 1995-05-29 22:51:47 -0700 (Mon, 29 May 1995)  *
176552        bde 2008-02-25 05:33:20 -0800 (Mon, 25 Feb 2008)  * return the remainder of x rem pi/2 in *y
176552        bde 2008-02-25 05:33:20 -0800 (Mon, 25 Feb 2008)  * use double precision for everything except passing x
152535        bde 2005-11-16 18:20:04 -0800 (Wed, 16 Nov 2005)  * use __kernel_rem_pio2() for large x
  2116        jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994)  */
  2116        jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) 
176465        bde 2008-02-22 07:55:14 -0800 (Fri, 22 Feb 2008) #include <float.h>
176465        bde 2008-02-22 07:55:14 -0800 (Fri, 22 Feb 2008) 
  2116        jkh 1994-08-19 02:40:01 -0700 (Fri, 19 Aug 1994) #include "math.h"
....
.Аннотированный листинг исходного кода, сгенерированный с использованием `svn blame` [[fig-svn-blame]]
+
*Используйте привратника.* Назначьте _привратника_ для отслеживания разработки FreeBSD, чтобы следить за изменениями, которые могут потенциально повлиять на ваши продукты.
+
*Сообщайте об ошибках в вышестоящий проект.* Если вы заметили ошибку в коде FreeBSD, который используете, заполните https://www.FreeBSD.org/support/bugreports/[отчёт об ошибке].
Этот шаг помогает гарантировать, что вам не придётся исправлять ошибку в следующий раз, когда вы получите обновление кода из вышестоящего проекта.
Используйте преимущества разработки релизов FreeBSD::
Используйте код из ветви разработки -STABLE FreeBSD. Эти ветви разработки официально поддерживаются инженерной командой выпуска и командой безопасности FreeBSD и содержат проверенный код.

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

Получайте эффективную поддержку::
Для продуктов с жёсткими сроками рекомендуется нанять или заключить консультационное соглашение с разработчиком или компанией, имеющими опыт работы с FreeBSD. {freebsd-jobs} является полезным каналом связи для поиска специалистов. Проект FreeBSD поддерживает link:https://www.FreeBSD.org/commercial/consult_bycat/[галерею консультантов и консалтинговых компаний], занимающихся работой с FreeBSD. http://www.bsdcertification.org/[Группа сертификации BSD] предлагает сертификацию для всех основных ОС, производных от BSD.
+
Для менее критичных задач вы можете обратиться за помощью в link:https://lists.freebsd.org/[списки рассылки проекта]. Полезное руководство о том, как правильно задавать вопросы, приведено в crossref:building-products[Ray2004,"Как правильно задавать вопросы"].
Распространите информацию о вашем участии::
Вы не обязаны афишировать своё использование FreeBSD, но это поможет как вашему делу, так и проекту.
+
Позволяя сообществу FreeBSD узнать, что ваша компания использует FreeBSD, вы повышаете шансы привлечь высококвалифицированных специалистов. Большой список поддержки FreeBSD также означает большее внимание среди разработчиков. Это, в свою очередь, создает более устойчивую основу для вашего будущего.
Поддержите разработчиков FreeBSD::
Иногда самый прямой способ получить нужную функциональность в FreeBSD — это поддержать разработчика, который уже занимается связанной проблемой. Помощь может варьироваться от пожертвования оборудования до прямой финансовой поддержки. В некоторых странах пожертвования проекту FreeBSD имеют налоговые льготы. У проекта есть специальный link:https://www.FreeBSD.org/donations/[представитель по пожертвованиям], который помогает донорам. Также проект поддерживает веб-страницу, где разработчики link:https://www.FreeBSD.org/donations/wantlist/[указывают свои потребности].
+
В соответствии с политикой проекта FreeBSD, о всех полученных вкладах в любой форме на его веб-сайте делается extref:{contributors}[запись с благодарностью].

[[conclusion]]
== Заключение

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

Мы рассмотрели характеристики проекта FreeBSD, которые делают его отличным выбором для включения в продуктовую стратегию организации. Затем мы изучили преобладающую культуру проекта и рассмотрели эффективные способы взаимодействия с его разработчиками. В завершение статьи был приведён список лучших практик, которые могут помочь организациям в сотрудничестве с проектом.

:sectnums!:

[bibliography]
== Библиография

[[Carp1996]] [Carp1996] http://www.ietf.org/rfc/rfc1958.txt[The Architectural Principles of the Internet] B. Carpenter. The Internet Architecture Board.The Internet Architecture Board. Copyright(R) 1996 год.

[[ComGuide]] [ComGuide] extref:{committers-guide}[Committer's Guide] The FreeBSD Project. Copyright(R) 2005 год.

[[GoldGab2005]] [GoldGab2005] http://dreamsongs.com/IHE/IHE.html[Innovation Happens Elsewhere: Open Source as Business Strategy] Ron Goldman. Richard Gabriel. Copyright(R) 2005 год. Morgan-Kaufmann.

[[Hub1994]] [Hub1994] extref:{contributing}[Contributing to the FreeBSD Project] Jordan Hubbard. Copyright(R) 1994-2005 гг. The FreeBSD Project.

[[McKu1999]] [McKu1999] http://www.usenix.org/publications/library/proceedings/usenix99/mckusick.html[Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem] Kirk McKusick. Gregory Ganger. Copyright(R) 1999 год.

[[McKu1999-1]] [McKu1999-1] http://www.oreilly.com/catalog/opensources/book/kirkmck.html[Twenty Years of Berkeley Unix: From AT&T-Owned to Freely Redistributable] Marshall Kirk McKusick. http://www.oreilly.com/catalog/opensources/book/toc.html[Open Sources: Voices from the Open Source Revolution] O'Reilly Inc.. Copyright(R) 1993 год.

[[Mon2005]] [Mon2005] extref:{bsdl-gpl}[Why you should use a BSD style license for your Open Source Project] Bruce Montague. The FreeBSD Project. Copyright(R) 2005 год.

[[Nik2005]] [Nik2005] extref:{dev-model}[A project model for the FreeBSD Project] Niklas Saers. Copyright(R) 2005 год. The FreeBSD Project.

[[Nor1993]] [Nor1993] http://www.norvig.com/luv-slides.ps[Tutorial on Good Lisp Programming Style] Peter Norvig. Kent Pitman. Copyright(R) 1993 год.

[[Nor2001]] [Nor2001] http://www.norvig.com/21-days.html[Teach Yourself Programming in Ten Years] Peter Norvig. Copyright(R) 2001 год.

[[Ray2004]] [Ray2004] http://www.catb.org/~esr/faqs/smart-questions.html[How to ask questions the smart way] Eric Steven Raymond. Copyright(R) 2004 год.

[[RelEngDoc]] [RelEngDoc] extref:{releng}[FreeBSD Release Engineering] Murray Stokely. Copyright(R) 2001 год. The FreeBSD Project.
