Add article version-guide in sync with original english revisions:

version-guide/Makefile:1.3
version-guide/artcile.sgml:1.6
Makefile: Add to the build

Obtained from: The FreeBSD Russian Documentation Project
Approved by: marck(mentor)
This commit is contained in:
Vitaly Bogdanov 2005-10-25 10:05:01 +00:00
parent a512727f56
commit 4992525d31
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=26135
3 changed files with 426 additions and 0 deletions

View file

@ -47,6 +47,7 @@ SUBDIR+= releng-packages
SUBDIR+= solid-state
#SUBDIR+= storage-devices
#SUBDIR+= vinum
SUBDIR+= version-guide
SUBDIR+= vm-design
SUBDIR+= zip-drive

View file

@ -0,0 +1,24 @@
#
# The FreeBSD Russian Documentation Project
#
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/version-guide/Makefile,v 1.1 2005/10/09 16:19:35 gad Exp $
# $FreeBSD$
#
# Original revision: 1.3
#
# Article: FreeBSD Version Guide
DOC?= article
FORMATS?= html
WITH_ARTICLE_TOC?= YES
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.sgml
URL_RELPREFIX?= ../../../..
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -0,0 +1,401 @@
<!--
The FreeBSD Documentation Project
The FreeBSD Russian Documentation Project
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/version-guide/article.sgml,v 1.2 2005/10/18 15:28:13 gad Exp $
$FreeBSD$
Original revision: 1.6
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % articles.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Articles Entity Set//EN">
%articles.ent;
<!--
<!ENTITY art.re.pkgs '<ulink url="&url.articles.releng-packages;/article.html">The Release Engineering of Third Party Packages</ulink>'>
-->
]>
<article lang="ru">
<title>Выбор подходящей для вас версии FreeBSD</title>
<articleinfo>
<authorgroup>
<author>
<surname>The FreeBSD Documentation Project</surname>
</author>
</authorgroup>
<pubdate>$FreeBSD$</pubdate>
<legalnotice id="trademarks" role="trademarks">
&tm-attrib.freebsd;
</legalnotice>
<copyright>
<year>2005</year>
<holder>The FreeBSD Documentation Project</holder>
</copyright>
<abstract>
<para>Итак, вы решили установить &os;. Добро пожаловать! Этот
документ написан для того, чтобы помочь вам в выборе версии для
установки.</para>
</abstract>
</articleinfo>
<sect1 id="background">
<title>Вводная информация</title>
<para>Чтобы решить какая версия &os; больше всего подходит для ваших
нужд, важно понимать несколько концепций, касающихся наших процессов
разработки и подготовки релизов (Release Engineering, <literal>RE</literal>).</para>
<para>&os; разрабатывается большой группой людей, являющихся почти
полностью добровольцами. Исходный код ядра, самых распространённых
библиотек и утилит поддерживается в <firstterm>системе контроля
исходного кода</firstterm> (source control system) и доступен
широкой публике для скачивания в любое время. Отдельно, скомпилированные
версии (<literal>бинарники</literal>) доступны на
рекуррентной основе. Некоторые из этих двоичных версий проходят
широкое тестирование и затем обозначаются, как <firstterm>release</firstterm>.</para>
<sect2 id="releases">
<title>Релизы</title>
<para>Имена <literal>Релизов</literal> строятся из <firstterm>старшего
номера версии</firstterm> и <firstterm>младшего номера
версии</firstterm>.</para>
<itemizedlist>
<listitem>
<para>Цель старшего релиза - ввести новые возможности. Где
необходимо, возможно нужно убрать совместимость с
предыдущими старшими релизами, чтобы улучшить состояние &os;,
или, иногда убрать возможности, которые больше невозможно (или не нужно)
поддерживать.</para>
</listitem>
<listitem>
<para>Цель младшего релиза - в основном исправление ошибок и
улучшение производительности и стабильности. Поддержание
совместимости между двумя младшими релизами приоритетно. Иногда
новые возможности могут быть добавлены в младший релиз, когда видно,
что другие цели не будут нарушены.</para>
</listitem>
</itemizedlist>
<para>Тем не менее, помните, что <literal>релиз</literal> - это
просто снэпшот дерева исходного кода в определённый момент времени,
которому присваивается конкретное имя (<literal>тэг</literal>).
(К примеру, тэг во время подготовки релиза присвоенный релизу 5.4 был
<literal>RELENG_5_4_RELEASE</literal>). Разработка всегда продолжается
в так называемом тэге <literal>HEAD</literal>.</para>
</sect2>
<sect2 id="branches">
<title>Ветки</title>
<para>Во время каждого релиза создается <firstterm>ветка</firstterm>
(к примеру, <literal>RELENG_5_4</literal>). Исходные файлы, названные
<literal>RELENG_5_4_RELEASE</literal> изменяться никогда не будут, те
которые в <literal>RELENG_5_4</literal> изменяться могут путём принятия
изменений из <literal>HEAD</literal>, таких как исправления в безопасности и
другие ошибки.</para>
<para>Во время жизни каждого старшего релиза создаётся тэг (к примеру,
<literal>RELENG_5</literal>). В дополнение к исправлениям в
безопасности и исправлениям других ошибок, новые изменения могут быть
приняты из <literal>HEAD</literal>, и таким образом составят
изменения для следующего младшего релиза в последовательности.</para>
</sect2>
<sect2 id="stable-vs-current">
<title><firstterm>STABLE</firstterm> против
<firstterm>CURRENT</firstterm></title>
<para>Во время жизни каждого старшего релиза, отдельная ветка
может также называться <literal>STABLE</literal>. Это
означает, что проект &os; считает, что ветвь имеет достаточно
доказанную стабильность для использования широким кругом
пользователей. Ветви, которые нуждаются в дальнейшем
тестировании перед тем, как стать в значительной степени принятой
называются <literal>CURRENT</literal>.</para>
<note><para>Проект &os; ни внутри, ни вне себя не может гарантировать,
что программное обеспечение, которое оно выпускает является
достаточно <emphasis>стабильным</emphasis> для любой данной
системы. Только каждый индивидуальный пользователь может сделать
такое решение. Пожалуйста, помните, что Проект в основном состоит
из добровольцев и не может предлагать любой вид гарантии
пригодности.</para></note>
</sect2>
<sect2 id="ports-vs-packages">
<title><firstterm>Порты</firstterm> против
<firstterm>Пакетов</firstterm></title>
<para>Отдельно от файлов, распространяемых вышеуказанно, &os;
поддерживает тысячи приложений, которые разрабатываются
третьими лицами, вне самого проекта. (Сюда включены
оконные системы, интернет браузеры, почтовые программы,
офисные пакеты, и так далее) В общем, сам проект не
разрабатывает это программное обеспечение, только инфраструктуру,
позволяющую установить эти программы (называется <firstterm>Коллекция
портов</firstterm>). Приложения могут быть установлены либо
из исходников, если условия лицензии позволяют такое
распространение (они называются <literal>порты</literal>),
либо в виде скомпилированных двоичных файлов, если разрешено (они
называются <literal>пакеты</literal>).</para>
</sect2>
</sect1>
<sect1 id="past-schedules">
<title>Планирование релизов в прошлом</title>
<para>Во время разработки и выпуска &os; 5.X было получено много
уроков, которые стали ясны только ретроспективно. Цели серии 5.X
были очень мощными и включали:</para>
<itemizedlist>
<listitem>
<para>Обеспечить поддержку машин с симметричной мультипроцессорностью
(Symmetric MultiProcessing, SMP);</para>
</listitem>
<listitem>
<para>Увеличить производительность, путём применения новой стратегии
работы с конкуренцией ресурсов в ядре;</para>
</listitem>
<listitem>
<para>Добавить несколько новых архитектур процессоров;</para>
</listitem>
<listitem>
<para>Ввести новую модель тредов;</para>
</listitem>
<listitem>
<para>Ввести новый планировщик;</para>
</listitem>
<listitem>
<para>Добавить поддержку новых технологий, таких как
управление питанием (это особенно важно для лэптопов);
и наиболее критично,</para>
</listitem>
<listitem>
<para>Не объявлять серии релизов, как <literal>STABLE</literal>
до тех пор, пока все эти задачи не будут выполнены.</para>
</listitem>
</itemizedlist>
<para>Это привело к ситуации, когда между моментом временем, когда
релиз из серии 4.X был объявлен, как <literal>STABLE</literal> и
моментом, когда релиз из 5.X был объявлен, как <literal>STABLE</literal>
прошло несколько лет. Это имело несколько нежелательных эффектов:</para>
<itemizedlist>
<listitem>
<para>Количество одновременных изменений групп характеристик сделало
очень сложным изолирование одного набора изменений для слияния обратно
в <literal>STABLE</literal> ветку;</para>
</listitem>
<listitem>
<para>что означало, что пользователи, которые должны иметь определённые
новые возможности (к примеру, использовать современное оборудование)
работали путём адаптирования (к примеру) &os; 5.2.1 хотя он был
известен, как релиз только для разработчиков, и независимо от того факта,
что <literal>CURRENT</literal> релиз не совсем подходил для их
нужд.</para>
</listitem>
<listitem>
<para>В случаях, когда обратные слияния имели место, это поставило
разработчиков в положение, когда они пытались поддерживать характеристики
(feautures) на версии, которую они сами не использовали, как первичную
платформу для разработки.</para>
</listitem>
<listitem>
<para>Задержка во времени также значила, что когда 5.3 был наконец
объявлен самым последним <literal>STABLE</literal> релизом,
накопившееся количество изменений сделало процесс обновления
очень болезненным.</para>
</listitem>
</itemizedlist>
<para>Более кратко, никто не был доволен результатом.</para>
<para>Уроки, которые были получены:</para>
<itemizedlist>
<listitem>
<para>Новые старшие релизы должны иметь меньшее количество
серьезных изменений характеристик и выпускаться более часто.</para>
</listitem>
<listitem>
<para>В самой большой степени, серьезные изменения должны
изолироваться друг от друга. (Это подразумевает, что некоторая
разработка должна вестись вне основного дерева и может
быть объединена с основным деревом только при условии, что это не
нарушит другую одновременно продолжающуюся разработку.)</para>
</listitem>
<listitem>
<para>Старшие релизы должны ориентироваться на последний срок по
времени, а не на последний срок по количеству характеристик.
Если какая-то возможность (характеристика) не закончена во время,
то она должна быть убрана и оставлена до следующего старшего
релиза.</para>
</listitem>
</itemizedlist>
<para>С помощью более частого выпуска меньшего количества изменений,
также существует надежда, что меньше времени будет проводиться,
пытаясь заниматься слиянием характеристик из <literal>HEAD</literal> обратно
в последнюю <literal>STABLE</literal> версию (и тем самым пытаясь
поддерживать эти характеристики более, чем в одной старшей версии);
и далее, чем изменения более изолированы, тем риск появления новых ошибок
намного меньше.</para>
<para>Также, фокусируясь больше на последний срок по времени нежели по
количеству характеристик, в итоге будет возможным для пользователей,
разработчиков внешних приложений и самих разработчиков &os; иметь более
лучший план на будущее.</para>
<para>Эти соображения более, чем любой вид погони за
основным номером релиза любой другой ОС, включают основную мотивацию для
продолжения изменений в планировании.</para>
</sect1>
<sect1 id="future-goals">
<title>Улучшения целей планирования релизов</title>
<para>Вот текущие цели в планировании для Проекта:</para>
<itemizedlist>
<listitem>
<para>Выпускать новый старший релиз каждые 18 месяцев;</para>
</listitem>
<listitem>
<para>Выпускать новый младший релиз каждые 4 месяца;</para>
</listitem>
<listitem>
<para>Обеспечивать предварительно собранные пакеты для последней
младшей версии каждой старшей версии;</para>
</listitem>
<listitem>
<para>Обеспечивать предварительно собранные пакеты для последнего
релиза каждой старшей версии;</para>
</listitem>
<listitem>
<para>Обеспечить обновления в безопасности и другие критические
исправления ошибок для последних нескольких младших версий
каждой старшей версии (<firstterm>ветки улучшений в безопасности</firstterm>,
security branches).</para>
</listitem>
</itemizedlist>
<para>Из-за большого количества возможных комбинаций устанавливаемых
версий, невозможно поддерживать каждую версию бессрочно; это от
части из-за нехватки машинных ресурсов, но в основном из-за
имеющихся усилий добровольцев.</para>
<para>Заинтересованные читатели также могут посмотреть текущее
<ulink url="&url.base;/releng/index.html#schedule">расписание
подготовки релизов</ulink> и <ulink
url="&url.base;/security/security.html#adv">расписание веток
улучшений в безопасности</ulink>. Оба документа содержат более детальную
информацию по предпосылкам и разумные обоснования этих решений.</para>
</sect1>
<sect1 id="decision-points">
<title>Как эти факторы повлияют на моё решение?</title>
<para>Основные факторы, которые могут повлиять на ваше решение
в выборе версии для установки:</para>
<itemizedlist>
<listitem>
<para>Какую степень стабильности требует ваша система?</para>
</listitem>
<listitem>
<para>Сколько усилий вы хотите прикладывать для обновлений?</para>
</listitem>
<listitem>
<para>Как долго вы планируйте оставаться на одной версии между
обновлениями?</para>
</listitem>
<listitem>
<para>Как важна безопасность для вашей системы?</para>
</listitem>
<listitem>
<para>Будете ли вы устанавливаться из исходников или посредством
двоичных файлов?</para>
</listitem>
<listitem>
<para>Желаете ли вы помочь участвовать в процессе разработки &os;?</para>
</listitem>
</itemizedlist>
<para>Вот некоторые примерные инструкции для помощи вам в вашем решении:</para>
<itemizedlist>
<listitem>
<para>Если ваши нужды имеют краткосрочный характер, вы нуждаетесь в
самой высокой степени стабильности, доступной на данный момент и
не собираетесь обновлять большое количество ресурсов, то вы возможно
захотите установить последний младший <literal>STABLE</literal> релиз и
остаться с ним. В зависимости от ваших требований к безопасности, вы
можете следить за изменениями в эту ветку, по мере их появления.</para>
</listitem>
<listitem>
<para>Если ваши нужды имеют краткосрочный характер, и полнота возможностей или
наилучшие уровни безопасности наиболее важны для вас, и вы желаете проводить
время, обновляясь, вы можете использовать последнюю
<literal>STABLE</literal> ветку.</para>
</listitem>
<listitem>
<para>Если вы не планируете сразу промышленное использование, а хотите
поработать с проблемами, и новый старший релиз появляется в
следующие несколько месяцев, то вы можете поисследовать, установив
эту ветку, чтобы помочь Проекту протестировать его, стабилизировать, сделать
его самым лучшим релизом с уровнем качества выше среднего.</para>
</listitem>
<listitem>
<para>Только если вы пожелаете устанавливаться из исходников и
проводить время, занимаясь отладкой проблем с базовой системой
и дальше передавать их посредством сообщений об ошибках и
прослеживать список рассылки, в котором обсуждаются такие
вопросы, вы можете рассмотреть для использования
<literal>HEAD</literal>.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="conclusion">
<title>Заключение</title>
<para>Мы надеемся, что эта статья послужила полезной стартовой точкой в
понимании модели разработки &os; и в решении того, какая версия наиболее
подходит для ваших нужд.</para>
</sect1>
</article>