Релиз FreeBSD 12.0

Спустя два года после формирования ветки 11.x представлен релиз FreeBSD 12.0, который подготовлен для архитектур amd64, i386, powerpc, powerpc64, powerpcspe, sparc64, aarch64, armv6 и armv7. Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2.

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

  • Реализована архитектура armv7 (ранее были только armv6 и aarch64). В сборках armv6 теперь поставляется только образ для устройств Raspberry Pi модели «B». Для устройств BANANAPI, BEAGLEBONE, CUBIEBOARD, CUBIEBOARD2, CUBOX-HUMMINGBOARD, Raspberry Pi 2, PANDABOARD, WANDBOARD, GENERICSD задействован порт armv7. Добавлена поддержка CPU Allwinner A13;
  • В пакетный фильтр ipfw добавлена поддержка именованных динамических состояний (keep-state, limit и check-state снабжены дополнительным аргументом flowname, который назначается для динамического правила опкодом keep-state или limit). Добавлен модуль ipfw_nptv6 с транслятором адресов для IPv6;
  • В конфигурации ядра по умолчанию включена опция VIMAGE, активирующая одноимённый фреймворк виртуализации, который базируется на Jail и виртуальном сетевом стеке VNET). При помощи VNET обеспечена возможность использования пакетного фильтра pf внутри jail-окружений. Добавлена возможность использования mount_fusefs в jail;
  • Добавлен драйвер netdump, позволяющий отправлять дампы состояния ядра после краха по сети, вместо их сохранения на локальном диске. Для отправки данных используется UDP-протокол, обслуживаемый минимальным обособленным TCP/IPv4 стеком. Приём дампа осуществляется netdump-сервером, запущенным на внешнем хосте. Создание Netdump целесообразно для отслеживания крахов бездисковых узлов кластеров, загружающихся по PXE машин или в случае отладки проблем в дисковой подсистеме;
  • Проведена реструктуризация поддержки графических драйверов. Свежие драйверы для GPU AMD и Intel теперь можно загрузить из портов. Драйверы для GPU AMD и Intel также сохранены в базовой системе и по-прежнему предлагаются по умолчанию, но они отстают в плане поддержки новых графических карт. Для получения более актуальных драйверов в большинстве случаев достаточно установить порт «graphics/drm-kmod» и активировать необхолимый дрвйвер в rc.conf при помощи опции kld_list (например, «kld_list=/boot/modules/i915kms.ko», «kld_list=/boot/modules/amdgpu.ko» или «kld_list=/boot/modules/radeonkms.ko»);
  • В файловой системе UFS2 обеспечена поддержка проверочных хэшей в таблицах групп цилиндров (cylinder-group map). В UFS/FFS также добавлена и включена по умолчанию возможность консолидации команд TRIM/BIO_DELETE для сокращения операций чтения и записи за счёт пакетной отправки сразу нескольких TRIM-сообщений. Для отключения консолидации TRIM можно использовать sysctl vfs.ffs.dotrimcons=0;
  • В сервере NFSv4.1 реализовано расширение Parallel NFS (pNFS), которое позволяет организовать высокоскоростной обмен данными между машинами сети за счет возможности распараллеливания обращения к данным на нескольких хранилищах, а также разделения передачи потоков данных и мета-данных. Реализация pNFS позволяет запустить один сервер метаданных и несколько серверов хранения, с которыми могут работать любые клиенты NFSv4.1 с поддержкой pNFS File Layout;
  • Компоненты графического окружения KDE в портах обновлены до выпуска 5.12.5 (ранее в портах предлагался KDE 4);


  • В инсталлятор bsdinstall добавлена поддержка установки с использованием связки UEFI+GELI (шифрованные разделы на системах с UEFI);
  • В ядрах GENERIC и MINIMAL для архитектуры amd64 включена по умолчанию поддержка систем NUMA (Non-Uniform Memory Access). Для отключения поддержки NUMA можно использовать sysctl-переменную vm.numa.disabled=1 в loader.conf.
  • В систему виртуализации добавлена поддержка эмуляции устройств NVMe и запуска в jail виртуальных окружений на базе гипервизора bhyve (активируется при помощи sysctl security.jail.vmm_allowed=1). Появилась возможность приёма соединений к VNC-серверу через IPv6;
  • В syslog и syslogd добавлена поддержка протокола RFC 5424 для отправки по сети syslog-сообщений о наступлении событий;
  • Обновлён драйвер виртуальной консоли. Новый вариант обеспечивает отрисовку текста в 2–6 раз быстрее;
  • Фреймворк capsicum, позволяющий организовать изолированное выполнение приложений с ограничением использования определённых функций, включён по умолчанию для архитектур armv6 и armv7;
  • Внесены улучшения в загрузчик, написанный на языке Lua: добавлено определение списка доступных ядер во время загрузки и реализована поддержка чёрного списка модулей ядра;
  • Обновлены компоненты прослойки для обеспечения совместимости с Linux. Добавлены новые версии модулей linux.ko и linux64.ko. Обеспечена возможность использования порта x11/nvidia-driver* с модулем linux64.ko;
  • Для группы operator открыт доступ к устройству /dev/acpi, что позволяет пользователям из этой группы запускать acpiconf для перехода в спящий режим;
  • При сборке активирован по умолчанию режим повторяемой пересборки, обеспечивающий тождественность исполняемых файлов исходным текстам (в src.conf добавлена опция WITH_REPRODUCIBLE_BUILD). В src.conf также добавлена опция WITH_RETPOLINE для сборки компонентов пользовательского окружения с защитой от уязвимостей Spectre;
  • Для динамического связывания на ситемах amd64, i386 и armv7. по умолчанию задействован компоновщик ld_lld, развиваемый проектом LLVM;


  • В утилиту dtrac добавлена поддержка выражений «if» и «else»;
  • В утилите geli добавлена возможность инициализации сразу нескольких шифрованных разделов, когда в них используется один и тот же пароль или ключ;
  • Переработана утилита top;
  • В качестве утилиты для многостроничного вывода по умолчанию для большинства команд задействововна программа less (переменная окружения PAGER ссылается на less вместо утилиты more);
  • В утилиту localedef добавлены опции '-b' и '-l' для определения порядка следования байт в выводе. Утилита localedef теперь используется при сборке share/ctypedef и share/colldef;
  • Пакетный менеджер pkg в dvd1.iso и файл конфигурации pkg обновлены для использования ежеквартально обновляемого набора пакетов (2018Q4);
  • В rc-скрипты добавлены новые ключевые слова «enable», «disable» и «delete» (помимо «yes» и «true»);
  • Добавлен дополнительный уровень изоляции выполнения процесса sshd, реализованный при помощи системы capsicum;
  • В набор rescue добавлена утилита bectl для управления загрузочными окружениями ZFS. Устранён вывод ошибки при попытке активации уже активного загрузочного окружения;
  • Обновлены версии поставляемых в базовой системе сторонних проектов: OpenSSL 1.1.1a (с поддержкой TLS 1.3), Unbound 1.8.1 с включением по умолчанию DANE-TA, OpenSSH 7.8p1. До версии 4.46 обновлён шрифт Terminus BSD Console, используемый драйвером виртуального терминала. Компоненты Clang, libc++, compiler-rt, LLDB, LLD и LLVM обновлены до версии 6.0.1 (во FreeBSD 11.2 используется версия 6.0.0, поэтому изменения только корректирующие);
  • Помечена устаревшей утилита ctm (зеркалирование исходных текстов FreeBSD);
  • Объявлены устаревшими драйверы: ae (4), bm (4), cs (4), de (4), dme (4), ed (4), ep (4), ex (4), fe (4), pcn (4), sf (4), sn (4), tl (4), tx (4), txp (4), vx (4), wb (4) и xe (4).

© OpenNet