Copyright © 2002, 2003, 2004 Группа подготовки релизов FreeBSD
$FreeBSD: src/release/doc/ru_RU.KOI8-R/early-adopter/article.sgml,v
1.5 2004/08/12 08:44:49 den Exp $
FreeBSD это зарегистрированная торговая марка Wind River Systems, Inc. Ожидается, что в скором времени это изменится.
Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, и Xeon это торговые марки или зарегистрированные торговые марки Intel Corporation или ее дочерних компаний в Соединенных Штатах и других странах.
Microsoft, FrontPage, MS-DOS, Outlook, Windows, Windows Media, и Windows NT это или зарегистрированные торговые марки или торговые марки Microsoft Corporation в Соединенных Штатах и/или других странах.
Sparc, Sparc64, SPARCEngine, и UltraSPARC это торговые марки SPARC International, Inc в Соединенных Штатах и других странах. Продукты с торговой маркой SPARC основаны на архитектуре, разработанной Sun Microsystems, Inc.
Многие из обозначений, используемые производителями и продавцами для обозначения своих продуктов, заявляются в качестве торговых марок. Когда такие обозначения появляются в этом документе, и Проекту FreeBSD известно о торговой марке, к обозначению добавляется знак ``™'' или ``®''.
Эта статья разъясняет статус FreeBSD 6.0-CURRENT с точки зрения тех пользователей, которые только начинают работать с серией релизов 5.X или с FreeBSD вообще. Она содержит некоторую внутреннюю информацию о процессе подготовки релизов, информацию об отдельных новых возможностях, и о проблемах, которые могут возникнуть у новых пользователей. Описаны также планы относительно дальнейшей разработки релизов ветви 4-STABLE и приемы обновления существующих систем.
FreeBSD 5.X стала новой основной версией FreeBSD за последние более чем два года. Помимо множества новых возможностей, она содержит также многочисленные разработки во внутренней системной архитектуре. Наряду с этими преимуществами, в систему пришел большой объем нового, мало протестированного кода. По сравнению с существующей линейкой релизов 4.X, первые несколько релизов 5.X могут иметь меньшую стабильность, производительность, и иногда меньшую функциональность.
По этим причинам, Группа Выпуска Релизов FreeBSD <re@FreeBSD.org> особо предостерегает
пользователей от обновления старых релизов FreeBSD до 6.0-CURRENT, пока они не узнают о
возможных недостатках новых релизов (и приготовятся к ним). Специально для более
консервативных пользователей мы рекомендуем работать с 4.X
(например, с 4.10-RELEASE) в ближайшем будущем. Мы считаем, что таким пользователям
возможно лучше всего обновиться до 5.X только после
создания ветви разработки 5-STABLE; это может произойти во время выпуска 5.3-RELEASE.
(FreeBSD 5.X страдает от так называемой проблемы ``курицы и яйца''. Цель всего проекта это выпуск релизов, которые стабильны и надежны настолько, насколько это возможно. Стабильность и надежность требуют обширного тестирования, в частности новых возможностей системы. Однако, в целях получения большого количества пользователей для тестирования системы, в данном случае необходимо сначала создать и распространить релиз!)
В этой статье описываются некоторые проблемы, возникающие при установке и работе FreeBSD 6.0-CURRENT. Мы начнем с краткого обзора процесса выпуска релизов FreeBSD. Затем мы представим некоторые наиболее заслуживающие внимания возможности FreeBSD 6.0-CURRENT, вместе с информацией о проблемных для неподготовленных пользователей местах. Для пользователей, решивших остаться с релизами, основанными на 4-STABLE, мы опишем кратко- и среднесрочные планы для этой ветви разработки. Наконец, мы представим заметки по обновлению существующих 4.X систем до 6.0-CURRENT.
FreeBSD использует модель разработки, основанную на наличии множества ветвей разработки в репозитории исходных текстов. Основная ветвь называется ``CURRENT'', и в репозитории CVS она означает тег HEAD. Новые возможности сначала вносятся в эту ветвь; хотя это означает, что CURRENT первой получает новую функциональность, это также означает, что она периодически страдает от нарушений работоспособности при добавлении и отладке новых возможностей.
Большинство релизов FreeBSD выпускаются из одной или нескольких ветвей ``STABLE''. В эти ветви возможности добавляются только после некоторого тестирования в CURRENT. На данный момент только одна ветвь STABLE находится в активной разработке; эта ветвь обозначается как ``4-STABLE'', и все релизы FreeBSD 4.X были выпущены из нее. В репозитории CVS тег этой ветви RELENG_4.
FreeBSD 5.0, 5.1, 5.2 и 5.2.1 основаны на ветви CURRENT. Первый из этих релизов был выпущен после более двух лет разработки (до них последним релизом, выпущенным из HEAD был FreeBSD 4.0, в марте 2000).
Через некоторое время после выпуска FreeBSD 5.0, в CVS репозитории FreeBSD будет создана ветвь ``5-STABLE'' с тегом RELENG_5. Последние две стабильные ветви (3-STABLE и 4-STABLE) были выпущены непосредственно после соответствующих ``точка-нуль'' релизов (3.0 и 4.0). Эта практика не дает достаточно времени для стабилизации CURRENT перед созданием новых ветвей. Это приводит к потере времени на усилия по портированию исправлений между ветвями, а также на на некоторые архитектурные изменения, которые вообще не могут быть портированы между ветвями.
Поэтому группа подготовки релизов создаст ветвь 5-STABLE в репозитории CVS только после достижения относительно стабильного состояния. Перед этим будет выпущено несколько релизов из серии 5.X; мы ожидаем создания 5-STABLE приблизительно во время выпуска 5.3-RELEASE.
Дополнительную информацию по процессу создания релизов FreeBSD можно найти на веб страницы выпуска релизов и в статье ``Выпуск релизов FreeBSD''. Специфичную информацию по будущей ветви разработки 5-STABLE можно найти в статье ``Дорога к 5-STABLE''.
FreeBSD 5.X привлекает большим количеством новых возможностей. Новые возможности и функциональность обычно вызывают серьезные архитектурные изменения, которые не могут быть портированы обратно в ветвь разработки FreeBSD 4-STABLE (напротив, множество автономных расширений, таких как новые драйвера устройств или утилиты пользователя, уже были портированы). Краткий, но не исчерпывающий список включает:
SMPng: ``Новое поколение'' поддержки SMP компьютеров (находится в разработке). Продолжается работа над ``fine-grained locking'' различных подсистем ядра для увеличения количества потоков выполнения, которые могут работать в ядре. Дополнительную информацию можно найти на странице FreeBSD SMP проекта.
KSE: Kernel Scheduled Entities позволяют одному процессу иметь несколько потоков уровня ядра, подобно Scheduler Activations. Библиотеки потоков libkse и libthr делают эти возможности доступными многопоточным программам пользователя через API pthread(3).
Новые архитектуры: Поддержка архитектур sparc64, ia64, и amd64 в дополнение к i386, pc98, alpha.
GCC: Набор инструментов компилятора теперь основан на 3.3.X, вместо GCC 2.95.X.
MAC: Поддержка расширяемых, загружаемых политик Mandatory Access Control (принудительный контроль доступа).
GEOM: Гибкая подсистема трансформации запросов ввода/вывода на диск. Было реализовано основанное на GBDE шифрование дисков.
FFS: Файловая система FFS теперь поддерживает фоновые операции fsck(8) (для более быстрого восстановления после сбоев) и снэпшоты файловой системы.
UFS2: Был добавлен новый дисковый формат UFS2, поддерживающий расширенные файловые атрибуты и большие размеры файлов. UFS2 теперь формат по умолчанию для newfs(8). На всех платформах, за исключением pc98, файловые системы, созданные из sysinstall(8), используют UFS2 по умолчанию.
Cardbus: Поддержка для устройств Cardbus.
Bluetooth: Поддержка устройств Bluetooth.
Более полный список новых возможностей можно найти в информации о различных релизах FreeBSD 5.X.
Вместе с новыми возможностями в FreeBSD 5.X присутствуют некоторые проблемные или как минимум вызывающие неожиданное поведение части. В основном причиной этого является то, что многие новые возможности находятся в работе. Неполный список этих частей включает:
Многие новые возможности еще не были завершены. Примеры из списка новых возможностей включают SMPng и KSE. Хотя они подходят для тестирования и экспериментов, для реальных задач они еще не готовы.
Вследствие изменения в структурах данных ядра и ABI/API, сторонние бинарные драйвера устройств должны быть изменены для корректной работы в FreeBSD 5.0. Возможны дополнительные изменения в ABI/API перед созданием ветви 5-STABLE, в частности на новых аппаратных архитектурах. В некоторых (надеемся редких) случаях могут измениться видимые пользователю структуры, что потребует перекомпиляции приложений или переустановки портов/пакетов.
Некоторые части функциональности базовой системы FreeBSD были перемещены в коллекцию портов. Примеры таких приложений Perl, UUCP, и большинство (но не все) игры. Хотя эти программы все еще поддерживаются, удаление их из базовой системы может причинить некоторые неудобства.
Некоторые части базовой системы FreeBSD стали неработоспособны по причине малого количества пользователей и отсутствия поддержки. Они были удалены. Отдельные примеры включают поколение исполняемых файлов a.out, поддержку сетей XNS и драйвер контроллера X-10.
Большое количество портов и пакетов не компилируются или не работают корректно в FreeBSD 5.X, в отличие от FreeBSD 4-STABLE. Обычно причина этих проблем в изменениях компилятора или включаемых файлов. В некоторых случаях они вызываются изменениями в ядре или устройствах.
Многие возможности FreeBSD 5.X реализованы впервые. Некоторые из этих возможностей (такие как SMPng) серьезно влияют на работу ядра и определить их влияние на на стабильность и производительность сложно.
Определенное количество отладочного и диагностического кода все еще присутствует для выявления проблем в новом коде FreeBSD 5.X. Это может вызвать понижение производительности по сравнению с 4-STABLE.
В ветвь разработки 4-STABLE новые возможности добавляются только после тестирования в -CURRENT. FreeBSD 5.X не имеет стабилизирующего влияния ветви -STABLE (вероятно, что ветвь разработки 5-STABLE будет создана около времени создания 5.3-RELEASE.)
Документация (такая как Руководство FreeBSD и FAQ) могут не отражать изменения, недавно внесенные в FreeBSD 5.X.
Поскольку большое количество недостатков влияет на стабильность системы, группа подготовки релизов рекомендует более консервативным сайтам и пользователям оставаться на релизах, основанных на ветви 4-STABLE до того, как серия 5.X станет более стабильной. Хотя мы верим, что многие первоначальные проблемы со стабильностью были исправлены, некоторые вопросы производительности все еще находятся в работе. Мы также обращаем внимание, что наилучшая общая практика системного администрирования требует обновления операционной системы в тестовом режиме перед обновлением системы под нагрузкой.
Важно заметить, что не смотря на выпуск релизов серии 5.X, поддержка релизов 4.X продолжится еще некоторое время. На самом деле, FreeBSD 4.8 была выпущена двумя месяцами после 5.0, в апреле 2003, затем 4.9 в октябре 2003 и 4.10 в мае 2004. Следующие релизы из ветви 4-STABLE будут зависеть от нескольких факторов. Наиболее важный из них это существование и стабильность ветви 5-STABLE. Если CURRENT недостаточно стабильна для создания 5-STABLE, возможно потребуются дополнительные релизы из 4-STABLE. До последнего релиза из ветви 4-STABLE новые возможности могут переноситься из HEAD, на усмотрение разработчиков и в соответствии с существующей политикой подготовки релизов.
До некоторой степени группа подготовки релизов (как и сообщество разработчиков в целом) учтет потребности пользователей в будущих релизах 4-STABLE. Тем не менее эти потребности необходимо будет сбалансировать с ресурсами (в частности время разработчиков, вычислительные ресурсы и объем зеркалируемых архивов). Мы обращаем внимание, что в целом сообщество FreeBSD (пользователи и разработчики) предпочитают использовать новые возможности в 5.X в связи с трудностями, возникающими при портировании новой функциональности на 4.X.
Группа Офицеров Безопасности <security-officer@FreeBSD.org>
продолжит поддержку релизов, выпущенных их ветви 4-STABLE в соответствии с опубликованной
политикой, которую можно найти на странице безопасности веб сайта FreeBSD. Обычно два последних релиза из
ветви поддерживаются в соответствии с сообщениями и исправлениями безопасности. По
собственному усмотрению группа может вносить определенные исправления и в другие
релизы.
На данный момент у группы подготовки релизов нет определенных планов по дальнейшим
релизам из ветви разработки 4-STABLE, и мы решили продолжать поддержку 4.10-RELEASE в
качестве ``ветви исправлений'' (``Errata Branch''). Ранее ветвь, из которой выпускался
релиз, поддерживалась Группа Офицеров Безопасности <security-officer@FreeBSD.org> в
качестве ``ветви безопасности'' (``Security Branch'') в течение определенного периода, и
в нее вносились только критически важные исправления безопасности. Для FreeBSD
4.10-RELEASE набор исправлений будет расширен для включения исправлений локальных DoS, а
также других ключевых и хорошо протестированных исправлений, которые могут не относиться
к безопасности. Хотя эти исправления скорее всего не будут опубликованы в качестве
``релиза'' из ветви, сообщения о проблемах FreeBSD будут включать их подобно сообщениям
безопасности FreeBSD.
Для пользователей системы FreeBSD этот раздел предоставляет несколько заметок по обновлению FreeBSD 4.X до 5.X. Как и при любом обновлении FreeBSD, необходимо прочесть информацию о релизе и список исправлений к новому релизу, а также src/UPDATING при обновлении из исходных текстов.
Возможно наиболее прямой способ это ``сохранить все, переформатировать, переустановить, и восстановить все''. Это исключает проблемы с несовместимыми или отсутствующими в новой версии исполняемыми файлами или файлами настройки, захламляющими новую систему. Это позволяет создать новые файловые системы с новой функциональностью (наиболее значимая -- UFS2 по умолчанию).
На данный момент опция бинарного обновления в меню sysinstall(8) не была достаточно протестирована для обновлений между основными ветвями. Использование этой возможности не рекомендуется. В частности, бинарное обновление не касается множества файлов, существующих в 4.X, но отсутствующих в 5.X. Эти более не нужные файлы могут создать некоторые проблемы. Пример таких файлов -- старые заголовки C++, перемещенные в коллекцию портов программы, или совместно используемые библиотеки, которые были перемещены для поддержки динамически загружаемых исполняемых файлов в корневой файловой системе.
На платформах i386™ и pc98 в 4-STABLE имеется утилита UserConfig, позволяющая во время загрузки настраивать устройства ISA при загрузке с установочного дистрибутива. В FreeBSD 5.X эта функциональность была частично замещена механизмом device.hints(5) (он позволяет указывать те же параметры, но интерфейс сильно отличается).
Для установки с дискет может понадобиться третья, новая дискета, на которую копируются дополнительные драйвера устройств в модулях ядра. Эту дискету drivers.flp обычно можно найти там же, где и kern.flp и mfsroot.flp.
CDROM установки на архитектуру i386 теперь используют ``не-эмулирующий'' загрузчик. Это позволяет, помимо прочего, использовать GENERIC ядро вместо урезанного ядра на дискетах. В теории, любая система, способная загрузиться с установочных компакт дисков Microsoft® Windows NT® 4, должна быть способна загрузиться с компакт дисков 5.X.
Прочтение src/UPDATING абсолютно необходимо. Раздел, озаглавленный ``To upgrade from 4.x-stable to current'' содержит пошаговую процедуру обновления. Эта процедура должна быть в точности выполнена, без ``сокращений'', которые зачастую применяют некоторые пользователи.
Perl был удален из основной системы и должен быть установлен или из готового пакета или из коллекции портов. Наличие Perl в базовой системе создавало множество сложностей с обновлением. Утилиты базовой системы, использовавшие Perl, были или переписаны (если они были нужны) или удалены (если они больше не требовались). sysinstall(8) теперь устанавливает пакет Perl как часть большинства дистрибутивных наборов, так что большинство пользователей не заметят этого изменения.
Обычно возможна работа старых исполняемых файлов 4.X в 5.X, но это требует установки дистрибутивного набора compat4x. Использование старых портов возможно в некоторых случаях, хотя известно много случаев обратной несовместимости. Например, порты devel/gnomevfs2, mail/postfix, и security/cfs необходимо перекомпилировать из-за изменений в структуре statfs.
При установке или обновлении поверх существующей системы, основанной на 4-STABLE, крайне важно удалить старые файлы заголовков в /usr/include. Переименование или перемещение этого каталога перед бинарной установкой или installworld обычно достаточно. Невыполнение этого шага может привести к ошибке, поскольку компилятор станет работать со смешанным набором из устаревших и новых файлов заголовков.
MAKEDEV более не существует и не требуется. FreeBSD 5.X использует файловую систему устройств, которая автоматически создает устройства при необходимости. За дополнительной информацией обращайтесь к devfs(5).
UFS2 это формат по умолчанию для файловых систем, созданных с помощью newfs(8). Для всех платформ за исключением pc98, это также формат по умолчанию для файловых систем, созданных с помощью программы разметки диска из sysinstall(8). Поскольку FreeBSD 4.X распознает только UFS1 (а не UFS2), дисковые разделы, к которым требуется доступ из 5.X и 4.X, должны быть созданы с UFS1. Этот формат может быть задан параметром -O1 или из программы разметки дисков в sysinstall(8). Такая ситуация чаще всего возникает на компьютере с двойной загрузкой FreeBSD 4.X и FreeBSD 5.X. Обратите внимание, что нет способа конвертации файловых систем между двумя дисковыми форматами (кроме резервного копирования, воссоздания файловой системы и восстановления).
Хотя в FreeBSD 6.0-CURRENT имеется множество новых и замечательных возможностей, она не подходит на данный момент для всех пользователей. В этом документе мы представили немного внутренней информации по разработке релизов, некоторые из наиболее заметных новых возможностей серии 5.X, и отдельные недостатки раннего перехода. Мы также представили планы на ветвь разработки 4-STABLE и заметки по обновлению.
Этот файл и другие документы, относящиеся к данной версии FreeBSD, могут быть найдены по адресу http://snapshots.jp.FreeBSD.org/.
Если у вас возник вопрос, касающийся FreeBSD, прочтите документацию, прежде чем написать письмо в <questions@FreeBSD.org>.
Всем пользователям FreeBSD 6-CURRENT рекомендуется подписаться на список рассылки <current@FreeBSD.org>.
Вопросы, касающиеся этого документа, вы можете направить по адресу <doc@FreeBSD.org>.