Официально представлен релиз FreeBSD 11.0, доступный для архитектур amd64, i386, powerpc, powerpc64, sparc64, armv6 (BANANAPI, BEAGLEBONE, CUBIEBOARD, CUBIEBOARD2, CUBOX-HUMMINGBOARD, GUMSTIX, Raspberry Pi B, Raspberry Pi 2, PANDABOARD, WANDBOARD) и aarch64 (arm64).
Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2.
Ключевые новшества:
- Новая система автоматического монтирования ФС (automounter), унифицированная с реализациями из других Unix-систем (macOS, Solaris), использующая совместимый с Solaris формат сопоставления точек монтирования и поддерживающая интеграцию с LDAP.
Вauto_master
добавлен новый тип сопоставления-media
, позволяющий автоматизировать подключение внешних накопителей CD и USB, а также тип-noauto
для обработки записей noauto в fstab. - Добавлена возможность загрузки с временным rootfs, вместо которого затем монтируется реальный корневой раздел. Процесс смены корневого раздела реализован в форме частичного завершения работы с удалением всех процессов, отмонтированием rootfs, монтированием нового rootfs, запуском init и переходом к выполнению скриптов инициализации.
- Новая высокопроизводительная реализация системного вызова
sendfile
, предназначенного для организации прямой передачи данных между файловым дескриптором и сокетом, поддерживающая отправку файла в сокет в асинхронном режиме без ожидания завершения чтения файла. - Новая версия подсистемы NetMap c поддержкой двунаправленных потоков, поддержкой kqueue, улучшенной пользовательской библиотекой, возможностью эмуляции netmap для любых адаптеров без родной поддержки netmap, интеграцией со стеком VALE (используется в системе виртуализации bhyve).
- Усовершенствован гипервизор BHyVe, в котором добавлена поддержка новых типов гостевых систем. В настоящее время поддерживается создание хост-систем на базе платформы FreeBSD/AMD64 и запуск гостевых систем c FreeBSD 8+, Linux i386/x64, OpenBSD i386/amd64, NetBSD/amd64, Illumos и Windows Vista/7/8/10/2008r2/2012r2/2016 x64. Отдельно отмечается возможность запуска гостевых систем FreeBSD/i386 на 64-разрядных хост-системах, поддержка процессоров AMD c аппаратными расширениями SVM и AMD-V, поддержка команды DSM TRIM для виртуальных дисков AHCI, поддержка графического режима (эмуляция VGA, framebuffer, мыши, клавиатуры, XHCI USB с применением сервера VNC для доступа к экрану гостевой системы).
- В Xen добавлена поддержка запуска гостевых систем FreeBSD/amd64 в режиме PVH, который комбинирует элементы режимов паравиртуализации (PV) и полной виртуализации (HVM). Проведена оптимизация производительности драйвера
netfront
и добавлена поддержка unmapped IO в драйверыblkfront
,virtio_blk
иvirtio_scsi
. - В механизм управления ресурсами RCTL добавлена возможность ограничения пропускной способности операций с файловой системой. Поддерживается ограничение полосы пропускания чтения/записи (байт в секунду) и интенсивности операций ввода/вывода (число операций чтения/записи в секунду). Также представлен новый механизм придерживания запуска процессов в условиях превышения лимита.
- Добавлена поддержка стандарта 802.11n для сетей Wi-Fi, позволяющего добиться скорости передачи данных в беспроводной сети до 600 Мбит/с в конфигурации адаптера с четырьмя антеннами (для одной антенны до 150 Мбит/с).
- Из NetBSD портирована библиотека libblacklist и связанное с ней приложение Blacklistd, которые можно использовать для реализации динамического межсетевого экрана для защиты от попыток взлома локальных сервисов, таких как ssh, named и ftpd, или для блокировки IP-адресов, участвующих в DDoS-атаках.
- Добавлена поддержка архитектуры AArch64 (arm64).
Другие улучшения:
- Улучшена поддержка систем с архитектурой NUMA.
- Возможность ведения черного списка сбойных областей памяти. Обновление компилятора Clang до версии 3.8.0. Для платформ amd64 и arm64 по умолчанию задействован отладчик LLDB, развиваемый проектом LLVM.
- В базовой системе задействованы варианты утилит для работы с объектными файлами в формате ELF:
addr2line
,elfcopy
(strip
),nm
,readelf
,size
иstrings
из набора ELF Tool Chain, эквивалентного набору GNU Binutils, но распространяемого под лицензией BSD. - В TCP-стеке добавлена поддержка определения PLPMTUD (Packetization Layer Path MTU Discovery, RFC 4821), которая отключена по умолчанию. Для включения следует использовать
sysctl net.inet.tcp.pmtud_blackhole_detection
,net.inet.tcp.pmtud_blackhole_mss
иnet.inet.tcp.v6pmtud_blackhole_mss
. - Большая порция улучшений, связанных с поддержкой различных устройств с процессорами ARM, ARM64 и PowerPC.
- В jail добавлена поддержка монтирования linprocfs и linsysfs, а также возможность разделения SYSV IPC примитивов, что позволяет иметь в каждом jail независимую область SYSV IPC.
- Для хэширования паролей в функции
crypt
по умолчанию задействован алгоритм SHA512; - Реализация IPsec расширена поддержкой аппаратных и программных режимов AES.
- При помощи Capsicum обеспечен сброс привилегий утилиты
ping
. - Усилена защита от переполнения стека.
- Обеспечена возможность использования DRM/KMS-драйверов AMD Radeon при запуске 32-разрядных приложений на 64-разрядных системах.
- Для звуковых адаптеров с интерфейсом USB добавлена поддержка более 8 звуковых каналов на PCM-поток.
- В установщик bsdinstall добавлен модуль для настройки беспроводных адаптеров.
- В редактор разделов из состава bsdinstall и в утилиту sade добавлена родная поддержка ZFS. Установка GPT+BIOS+GELI через bsdinstall/zfsboot теперь производится с привлечением GELIBOOT, что позволяет создавать ZFS Boot Environment с ZFS-пулами, зашифрованными при помощи GELI.
- В состав включен демон zfsd, обеспечивающий управление запасными дисками (hotspare) и заменой дисков.
- В gpart добавлена поддержка схем компоновки разделов disklabel64, apple-boot, apple-hfs и apple-ufs, а также GPT-разделов с атрибутом lenovofix.
- Удалена поддержка протокола IPX.
- В состав включена реализация протокола iSER (iSCSI Extensions for RDMA) от компании Mellanox.
- В команду
iscsictl
добавлена возможность определения доступных iSCSI target без подключения к ним. - В
newsyslog.conf
обеспечено включение настроек, разнесённых по отдельным файлам в/etc/newsyslog.conf.d/
и/usr/local/etc/newsyslog.conf.d/
. - В утилите
ifconfig
по умолчанию установлены параметры беспроводного интерфейса, отвечающие требованиям FCC. - В утилитах
ps
иtop
добавлена возможность фильтрации вывода по идентификатору или имени jail-окружения (флаг -J). - Во
freebsd-update
добавлена защита от загрузки обновления в ситуации, когда установка прошлого обновления не была завершена. - В подсистеме rc добавлена возможность размещения настроек в файлах
${LOCALBASE}/etc/rc.conf.d/
(LOCALBASE по умолчанию указывает на/usr/local
). - В подсистему rc добавлены новые команды:
describe
для вывода описания rc-скриптов иextracommands
для показа всех нестандартных команд, предоставляемых rc-скриптом (таких какreload
,configtest
иkeygen
). - Директория с модулями для загрузчика по умолчанию изменена на
/boot/modules
. - В поставляемом в базовой системе OpenSSH 7.2p2 по умолчанию включен режим sandbox-изоляции и удалена поддержка протокола SSH-1; отключена генерация ключей DSA.
- Включена по умолчанию опция
WITH_SYSTEM_COMPILER
, оптимизирующая процесс сборки благодаря тому, что компоненты кросс-компилятора не собираются. - В беспроводной стек внесены изменения, отключающие по умолчанию показ физических беспроводных устройств. Для просмотра доступных в системе беспроводных устройств следует использовать
sysctl net.wlan.devices
. - Библиотека резолвера теперь отслеживает состояние файла
/etc/resolv.conf
и перезагружает его, если время модификации изменилось.