Релиз FreeBSD 11.0

2016-10-10

Официально представлен релиз 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;
  • В jail добавлена возможность по разделению 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 и перезагружает его, если время модификации изменилось;