Спустя год после прошлого значительно выпуска официально представлен релиз FreeBSD 11.1, который доступен для архитектур 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.

Ключевые новшества:

  • Компоненты Clang, libc++, compiler-rt, LLDB, LLD и LLVM обновлены до версии 4.0, из новых возможностей которой можно отметить использование статистики выполнения в оптимизаторе ThinLTO, более агрессивное устранение бесполезного кода, экспериментальную поддержку сопрограмм, улучшение совместимости с GNU ld и значительное увеличение производительности компоновщика LLD;
  • В стандартной Си-библиотеке и системных библиотеках задействован вызов reallocarray для проверки соблюдения границ буферов. Функция reallocarray отличается тем, что производит очистку содержимого выделяемых блоков памяти, по аналогии с calloc(), а также обнуляет или отдаёт системе (unmap) не распределённые блоки памяти;
  • В OpenSSH добавлена поддержка динамического межсетевого экрана blacklistd;
  • В ZFS обеспечена возможность сохранения сжатых данных в кэше, что увеличило эффективность кэширования положительно отразилось на производительности;
  • Добавлена утилита zfsbootcfg для настройки загрузочных опций zfsboot;
  • Добавлена утилита efivar, предоставляющая средства для управления переменными UEFI;
  • В пакетный фильтр ipfw добавлена поддержка именованных динамических состояний. Добавлены новые модули: ipfw_pmod для изменения пакетов любых протоколов, ipfw_nptv6 с реализацией Network Prefix Translation для IPv6 и ipfw_nat64 с реализацией NAT64;
  • В набор FreeBSD Integration Services (BIS), предоставляющий средства для работы в гостевых системах под управлением гипервизора Hyper-V и облачной платформы Azure, добавлена поддержка виртуальных машин с интерфейсом UEFI (Hyper-V Generation-2 VM);
  • Добавлен драйвер ena с поддержкой сетевых адаптеров ENA (Elastic Network Adapter), используемых компанией Amazon в инфраструктуре Elastic Compute Cloud (EC2) для организации связи между узлами EC2;
  • В NFS-клиент добавлена поддержка файловой системы EFS (Amazon Elastic File System);
  • В загрузчике EFI реализована поддержка доступа к удалённым файлам через TFTP, в дополнение к ранее имеющейся поддержке NFS;
  • Реализована сборочная опция WITH_REPRODUCIBLE_BUILD, при которой при сборке не используются специфичные метаданные ядра, что позволяет добиться повторяемых сборок, идентичных при сборке одного кода в разных системах;
  • По умолчанию в ядре включена поддержка NAT-T;

Другие улучшения:

  • Добавлена сборочная опция WITH_LLD_AS_LD для установки компоновщика LLD от проекта LLVM в качестве /usr/bin/ld. На системах FreeBSD/arm64 компоновщик LLD теперь используется по умолчанию;
  • Добавлена сборочная опция WITH_RPCBIND_WARMSTART_SUPPORT для сборки rpcbind с поддержкой режима warmstart, при котором регистрации RPC сохраняются перед завершением работы и загружаются после запуска, что позволят избежать нарушения работы RPC-сервиса при перезапуске;
  • Добавлены средства защиты утилиты bspatch при помощи capsicum;
  • В утилите syslogd появилась поддержка ключевого слова «include», через которое можно определить директорию с файлами конфигурации, помимо базового syslog.conf (по умолчанию теперь дополнительно подключаются /etc/syslog.d и /usr/local/etc/syslog.d);
  • Из NetBSD портирована утилила getaddrinfo, представляющая собой обвязку над одноимённой функцией резолвера;
  • В утилите jail появилась возможность явного назначения IPv4 и IPv6 адресов для использования внутри jail-окружения;
  • В утилиту daemon добавлена поддержка перенаправления вывода stdout и stderr в syslog или в файл;
  • Добавлена утилита cxgbetool, предоставляющая интерфейс для отладки и изменения параметров устройств cxgbe;
  • В установщик bsdinstall добавлена поддержка включения скрытых беспроводных сетей при настройке интерфейса wlan. В bsdinstall также обеспечено сохранение настроек ZFS min_auto_ashift и добавлен режим автоматической конфигурации ZFS для систем ARM64. Проведена работа по целостному использованию конфигурации разделов EFI на всех поддерживаемых платформах;
  • Добавлен новый системный вызов clock_nanosleep();
  • В cloudabi добавлена возможность запуска 32-разрядных исполняемых файлов в 64-разрядном пользовательском окружении, при наличии в настройках ядра включенной опции COMPAT_CLOUDABI32;
  • Добавлен драйвер cfumass, предоставляющий фронтэнд для устройств хранения, подключаемых через USB OTG;
  • В гипервизоре bhyve расширены средства для проброса PCI-устройств;
  • В сетевой стек добавлена поддержка повторной передачи GARP (Gratuitous ARP). Для задания максимального числа повторных передач предложена переменная net.link.ether.inet.garp_rexmit_count;
  • Обеспечена возможность использования системных вызовов cpuset_getaffinity(2) и cpuset_setaffinity(2) в режиме capabilities;
  • Обновлены версии сторонних компонентов, в том числе tcsh 6.20.00, unbound 1.5.10, Subversion 1.9.5, xz 5.2.3, tcpdump 4.9.0, ntpd 4.2.8p10, bmake 20170510.