Официально вышел FreeBSD 8.1-RELEASE

2010-07-24

Спустя 9 месяцев с момента выхода FreeBSD 8.0 увидел свет релиз FreeBSD 8.1. Релиз доступен для архитектур amd64, i386, ia64, pc98, powerpc и sparc64 в 5 установочных сборках: bootonly, CD, DVD, LiveFS и Memstick для USB Flash.

Ключевые улучшения новой версии:

  • Сетевая подсистема:

    • Проведена основательная ревизия кода ipfw и dummynet, в результате которой добавлены такие улучшения, как значительное ускорение работы инструкции skipto, поиск заданного правила теперь имеет сложность O(1) или O(log N) вместо O(N), также значительное увеличение производительности могут отметить пользователи конструкций "skipto tablearg" и "pipe tablearg", при большом наборе правил и pipe-ов. В таблицах теперь можно использовать в качестве аргумента опции "ports" и "tos". Атрибут 'log' теперь отправляет пакеты в псевдо-интерфейс "ipfw0" на котором можно запустить tcpdump для формирования дополнительной выборки. Расширено число поддерживаемых планировщиков в dummynet (FIFO, WF2Q+, Deficit Round Robin, Priority и QFQ).
    • Фреймворк для фильтрации пакетов pfil(9) поддерживает установку раздельных областей фильтрации пакетов, таких как ipfw(4) для разных VIMAGE jail.
    • В псевдо-интерфейсе vlan(4) появилась поддержка TSO (TCP Segmentation Offloading), для которой определен флаг IFCAP_VLAN_HWTSO, отделенный от IFCAP_VLAN_HWTAGGING. TSO поддерживается в драйверах age(4), alc(4), ale(4), bce(4), bge(4), cxgb(4), jme(4), re(4) и mxge(4). Кроме того в псевдо-интерфейс vlan(4) для IEEE 802.1Q VLAN отныне игнорирует переименование родительского интерфейса - сконфигурированный vlan-интерфейс продолжает работать с новым именем (ранее vlan-интерфейс удалялся);
    • В rc.conf добавлена поддержка новой директивы firewall_coscripts, позволяющей указать список команд, которые следует выполнять после запуска или остановки межсетевого экрана;
    • В rc.conf добавлена поддержка конфигурирования vlan-интерфейсов, как дочерних устройств (примерно так же как ранее сделано для wlan). Список интерфейсов задается через переменную vlans_IF, а параметры через create_args_IF. Если в поле VLAN указано число, то оно воспринимается как тег VLAN-а, интерфейс которого получает имя IF.tag;
    • Для ускорения сети на уровне L2 и L3 появилась система балансировки - ECMP (Equal-Cost Multi-Path routing), опция RADIX_MPATH.
  • Файловые системы и системы хранения:

    • Код ZFS zpool обновлен до версии 14, что позволяет добиться полной совместимости с ZFS-реализацией в OpenSolaris 2009.06. Улучшена стабильность L2ARC-кода, для контроля интенсивости записи добавлена sysctl-переменная vfs.zfs.txg.write_limit_override, а для просмотра статистики - kstat.zfs.misc.zfetchstats. В состав базовой системы добавлен zfsloader, который позволяет загружать систему с ZFS-разделов (для использования загрузчика zfsloader необходимо установить загрузочный код zfsboot или gptzfsboot);
    • В дополнение к поддержке POSIX.1e ACL для файловых систем UFS и ZFS реализована поддержка NFSv4 ACL, возможность работы с которой добавлена в утилиты cp(1), find(1), getfacl(1), mv(1) и setfacl(1);
    • В систему интегрирована реализация системы репликации устройств хранения данных (HAST, Highly Avalable STorage), которая позволяет использовать FreeBSD для создания высоконадежных конфигураций, в которых данные синхронизированы по всем узлам кластера. HAST реализован в виде GEOM-класса, обеспечивающего синхронную репликацию блочных устройств поверх TCP/IP сетей, независимо от типа накопителя и файловой системы. HAST предусматривает возможность быстрого восстановления после сбоя, причем, при выходе из строя первичного master-узла, его функции могут быть делегированы slave-узлу. После проверки и монтирования UFS раздела или импорта ZFS пула на поврежденном узле, система автоматически синхронизирует внесенные за время восстановления изменения и продолжит работу без потери данных. В текущем виде HAST поддерживает только конфигурацию из двух узлов (Master-Backup и Master-Slave);
    • Проведено улучшение CAM-реализации подсистемы ATA, позволяющей использовать для взаимодействия с PATA/SATA устройствами более совершенную систему CAM, ранее задействованную для обеспечения работы SCSI устройств. Новая инфраструктура поддерживает такие возможности, как NCQ (Native Command Queuing), MSI (Message Signaled Interrupts) и мультипликатор портов (Port Multiplier). Управление производится через стандартную утилиту camcontrol. Доведена до рабочего состояния поддержка горячего подключения устройств (hot-plug), добавлена опция ядра "options ATA_CAM", новые драйверы ahci(4) и siis(4) помечены как стабильные. Возможность по умолчанию отключена в GENERIC-ядре.
    • Добавлен GEOM-класс geom_sched, реализующий поддержку планировщиков ввода-вывода для подсистемы GEOM. Класс SCHED занимается планированием очередей запросов ввода-вывода на основании алгоритмов, реализованных в виде отдельных загружаемых модулей.
  • Поддержка оборудования:

    • Поддержка SMP-режима (симметричное мультипроцессирование) для систем на базе процессоров PowerPC G5 (по умолчанию в конфигурации GENERIC для FreeBSD/powerpc SMP-режим отключен);
    • В порт FreeBSD для платформы sparc64 добавлена поддержка процессоров UltraSPARC IV, IV+ и SPARC64 V;
    • Добавлен драйвер bwn(4) для беспроводных карт на базе чипсетов Broadcom BCM43xx;
    • Добавлен драйвер run(4) для беспроводных карт Ralink RT2700U/RT2800U/RT3000U (802.11agn) с интерфейсом USB;
    • Добавлен драйвер sge(4) для Ethernet-адаптеров Silicon Integrated Systems SiS190/191 Fast/Gigabit Ethernet, поддерживающий среди прочего режимы TSO и TSO поверх VLAN;
    • Добавлен драйвер uhso(4) для USB-устройств Option HSDPA. Для создания и завершения соединения с сетью необходимо использовать утилиту uhsoctl;
    • Улучшена работа драйвера urtw(4), добавлена поддержка устройств на базе чипа RTL8187B;
    • Подготовлен CAM ATA драйвер mvs для контроллеров Marvell SATA (88SX50XX/88SX60XX/88SX70XX), который поддерживает те же устройства, что и драйвер ata(4), но поддерживает дополнительные возможности, такие как NCQ и PMP;
  • Программы:

    • В базовую систему включена библиотека liblzma с поддержкой функций для сжатия данных методом LZMA2, а также добавлены сопутствующие утилиты xz(1), xzdec(1), lzma(1) и lzmainfo(1);
    • Для управления rc.d-сервисами добавлена специальная команда service(8);
    • В утилиту cp добавлена опция "-x" позволяющая ограничить область работы только текущей точкой монтирования;
    • В утилите ifconfig(8) появилась возможность манипулирования NDP-флагами и установки текстового описания интерфейса (команда description);
    • В команде netstat опция "-s" теперь выводит связанную с ARP статистику, также добавлена опция "-q" дающая возможность ограничения числа выводимых строк;
    • Добавлена утилита pwait, которая ожидает завершения заданного процесса;
    • Программы The sshd(8), cron(8), inetd(8) и syslogd(8) теперь запускаются с флагом MADV_PROTECT, что защищает их от принудительного завершения в случае нехватки оперативной памяти;
    • В утилите fetch(1) добавлена поддержка HTTP digest аутентификации;
    • Обновление версий программ: ISC BIND 9.6.2-P2, ACPI-CA 20100304, OpenSSH 5.4p1, OpenSSL 0.9.8n, sendmail 8.14.4;
    • В портах поставляются GNOME 2.30.1 (x11/gnome2) и KDE 4.4.5 (x11/kde4).

Для выполнения бинарного обновления с прошлых версий необходимо выполнить:

Загружаем обновления:

   freebsd-update upgrade -r 8.1-RELEASE

Устанавливаем обновления, попутно отвечая на вопросы, 
касающиеся решения конфликтов при обновлении файлов конфигурации:

   freebsd-update install

Перезагружаем систему:

   shutdown -r now

Еще раз выполняем:

   freebsd-update install
   shutdown -r now