Спустя почти два года с момента выхода версии 7.0 официально анонсирован выход релиза FreeBSD 8.0. Релиз поддерживает архитектуры amd64, i386, ia64, pc98, powerpc и sparc64. Для установки подготовлены 5 установочных сборок: bootonly, CD, DVD, LiveFS и Memstick для USB Flash.
Ключевые новшества FreeBSD 8.0:
- Реализация технологии виртуализации сетевого стека vimage, которая позволяет обеспечить поддержку на одной машине нескольких полностью виртуальных, изолированных сетевых стеков. Система значительно расширяет сетевую функциональность подсистемы jail. Так, например, появится возможность иметь для каждого jail индивидуальные настройки PF, ipfw, dummynet правил, net.inet sysctl переменных ядра, маршрутизации, IPSec и обеспечить возможность их автономного администрирования;
- C целью поддержки параллельного многопоточного режима переработан фреймворк NETISR, представляющий собой реализованный в ядре интерфейс для сетевой диспетчеризации, позволяющий драйверам напрямую перенаправлять пакеты обработчикам сетевых протоколов. Новая реализация поддерживает выполнение одного NETISR потока на каждый CPU, что значительно повышает производительность сетевой подсистемы на многопроцессорных конфигурациях;
- Поддержка выполнения FreeBSD i386/PAE в гостевом домене Xen (domU);
- Завершена четырехлетняя работа по переводу сетевой подсистемы FreeBSD на более эффективную систему блокировок. Все сетевые драйверы переведены на новую MPSAFE (Multi Processor Safe) систему блокировок, эффективную для многопроцессорных и многоядерных систем. На MPSAFE блокировки также переведена подсистема TTY;
- Режим эмуляции Linux (Linuxulator) переведен на использование 2.6.16 Linux ядра, в качестве порта, используемого для обеспечения работы Linuxulator, по умолчанию устанавливается emulators/linux_base-f10 (Fedora 10);
- По умолчанию GENERIC ядро собирается с поддержкой мандатного контроля доступа (Mandatory Access Control), реализация которого была подготовлена в рамках проекта Trusted BSD. По умолчанию MAC модули с определением политик не загружаются;
- Новый USB-стек HPS (USB2), который адаптирован для работы на SMP системах и содержит новые драйверы для современных высокоскоростных хост-контроллеров. Основные новшества:
- Новый USB API;
- Многие USB драйверы избавлены от глобальных блокировок;
- Режим совместимости с USB подсистемой Linux ядра;
- Новый UGEN бэкенд и библиотека libusb. Полностью решены проблемы с выгрузкой драйвера. Библиотека libusb20 распространяется под лицензией BSD и польностью совместима с GPL библиотекой libusb-0.1.12 (libusb.sourceforge.net);
- Новая утилита "usbconfig", для удобной настройки USB устройств;
- Полная поддержка разделенных транзакций (Split transactions), что подразумевает возможность использования скоростных USB аудио устройств на современных USB HUB.
- Поддержка HS ISOC транзакций, что, например, открывает двери для создания драйверов для различных высокоскоростных web-камер;
- Поддержка USB для встраиваемых платформ, улучшенный алгоритм сброса содержимого кэшей и буферов;
- Возможность автоопределения установочных USB дисков;
- Расширена поддержка USB устройств, различных режимов работы (например, I/O vectors позволяет увеличить пропускную способность и сократить число прерываний);
- Решение проблем с крахом при извелечении USB-устройств без их предварительного отмонтирования;
- Поддержка NDIS USB, позволяющая использовать во FreeBSD NDIS-совместимые драйверы USB устройств из Windows.
- В подсистему CAM, изначально реализующую унифицированный модульный интерфейс для разработки драйверов для SCSI устройств, добавлена поддержка средств для управления устройствами с шиной ATA/SATA. Усовершенствование не влияет на работу текущей ATA подсистемы FreeBSD, предоставляя пользователю альтернативный драйвер для AHCI совместимых контроллеров, который может быть загружен по желанию. Новая инфраструктура поддерживает такие возможности, как NCQ (Native Command Queuing), MSI (Message Signaled Interrupts) и мультипликатор портов (Port Multiplier). Управление производится через стандартную утилиту camcontrol.
- Обновлена поддержка ZFS до версии 13, список улучшений можно найти здесь, а примеры использования здесь. Поддержка файловой системы ZFS во FreeBSD объявлена готовой к промышленной эксплуатации. В настоящий момент ведется работа по портированию ZFS версии v22;
- Во FreeBSD реализации подсистемы NFS добавлена поддержка RPCSEC_GSS аутентификации, как на стороне сервера, так и на стороне клиента. Добавлена новая экспериментальная реализация кода для поддержки NFSv2, NFSv3 и NFSv4 (для включения вместо стандартной реализации нужно пересобрать ядро с опциями options NFSCL (клиент) или options NFSD (сервер)). По умолчанию в качестве транспорта для NFS теперь используется протокол TCP;
- В подсистеме net80211, обеспечивающей поддержку связанных с беспроводными сетями технологий, появилась возможность одновременного создания нескольких подсистем базовых станций (BSS) на базе одной точки доступа. Для определения беспроводного интерфейса отныне используются псевдоинтерфейсы wlanN, вместо имени привязанного к типу задействованного драйвера;
- В состав включены наработки проекта arp-v2 (L2+L3 rewrite project), cуть которого в выносе L2 данных (ARP и ND6) из L3 (IP) таблиц маршрутизации, улучшении параллельной обработки выборок данных за счет исключения лишних блокировок, упрощении логики кода связанного с маршрутизацией. Как итог интеграции arp-v2 стал возможным уход от концепции клонирования маршрутов (RTF_CLONING), сокращение объема кода в модулях IPv4 ARP и IPv6 NDP, а также уменьшение размера структуры данных rtentry;
- Реализация поддержки протоколов групповой маршрутизации IGMPv3 (Internet Group Management Protocol) и SSM (Source Specific Multicast). IGMP активно используется для организации доставки широковещательного мультимедийного контента в IPTV системах;
- В реализации IPSec появилась поддержка технологии NAT-Traversal (RFC 3948) для работы из подсети, находящейся за транслятором адресов.
- При сборке системы в компиляторе GCC отныне по умолчанию включена система защиты от переполнения стека ProPolice SSP (stack-smashing protection). Технология основна на установке и последующей проверке так называемого "канареечного слова" - случайной последовательности устанавливаемой в стек непосредственно перед адресом возврата. Потери производительности при сборке с защитой от переполнения стека составляют 1-2%;
- Jail2 - обновленный код реализации изолированных окружений Jail, в которой представлены следующие новшества:
- Поддержка установки нескольких IP на каждый jail;
- В дополнение к IPv4 реализована поддержка IPv6;
- Возможность создания Jail без указания IP-адреса (без поддержки сети), по аналогии с chroot(8);
- Обновлена поддержка SCTP внутри Jail, включая работу поверх IPv6;
- cpuset(1) способен привязывать набор процессоров к определенному jailid или irq, причем установка возможна и после создания jail окружения;
- В дополнение к имени хоста (hostname) добавлена возможность установки альтернативного имени для jail окружений, которое может использоваться для администрирования и не может быть изменено из jail;
- В ddb(4) добавлена команда "show jails" для выполнения отладки;
- Добавлена совместимость 32-разрядных jail'ов с 64-разрядными системами (32-разрядный бинарные файлы jail могут быть запущены в 64-битном системном окружении). Также обеспечена обратная совместимость с системными вызовами и утилитами предыдущей версии.
- Поддержка иерархических (вложенных) jail'ов. Теперь внутри защищенных контейнеров можно в свою очередь создавать другие контейнеры, при необходимости с более (но никогда не менее) жесткими ограничениями.
- Настройки, относящиеся к jail и доступные ранее глобально через sysctl, теперь можно изменять для каждого контейнера отдельно (sysctl оставлены для обратной совместимости);
- Команда jail также претерпела изменения и теперь позволяет вместо предопределенного набора параметров задавать произвольные пары "имя=значение" для более гибкой настройки и возможности последующего расширения. Также параметры jail теперь можно менять "на лету".
Читать полностью о : Официально вышел релиз FreeBSD 8.0 »