Официально объявлено о выходе FreeBSD 10.0

Спустя два года с момента выхода ветки FreeBSD 9 представлен релиз FreeBSD 10.0, ставший одним из самых значительных релизов за историю существования проекта. Новая ветка примечательна переходом на использование по умолчанию компилятора Clang для архитектур i386 и AMD64, интеграцией гипервизора BHyVe, заменой DNS-сервера BIND на Unbound и LDNS, реализацией протокола CARP2, интеграцией подсистемы FUSE, переходом по умолчанию на пакетный менеджер pkg. Установочные сборки, способные работать в Live-режиме, доступны в вариантах Bootonly (200 Мб), DVD (2.4 Гб), CD (630 Мб) и Memstick (680 Мб) для платформ amd64, i386, powerpc64, sparc64 и ia64. Основные новшества:

Система Переход на использование по умолчанию компилятора Clang для архитектур i386 и AMD64, для которых GCC теперь по умолчанию не собирается как часть базовой системы. Тем не менее GCC можно установить из портов или собрать из исходных текстов вместе с системой, указав параметры WITH_GCC в src.conf. Включение наработок по оптимизации производительности файловых систем UFS/FFS. Интегрирована поддержка unmapped VMIO, которая позволила поднять производительность ввода/вывода, благодаря исключению стадии маппинга буферов в TLB-кэше, что существенно снизило накладные расходы при работе на многопроцессорных системах. На некоторых крупных SMP-системах с интенсивным вводом/выводом наблюдается повышение производительности на 25–30%. Обновлён инсталлятор bsdinstall, в котором добавлена поддержка полноценной установки системы на разделы ZFS. Для архитектуры amd64 максимальный размер адресуемой ядром памяти увеличен с 1TB до 4TB. Добавлена поддержка маппинга страниц памяти большого размера (SuperPages).\ Для архитектур amd64, i386, ia64, powerpc по умолчанию GENERIC ядрах задействован планировщик задач ULE; В стандартную библиотеку добавлен вызов cpuset с связанная с ним утилита cpuset, позволяющая осуществлять привязку процессов к CPU, запускать команды в привязке к определённым процессорам и управлять группировкой и назначением ресурсов CPU. Поддержка генерации дампов ядра в структурированном формате textdump, включающем отладочную информацию. В отличие от ранее применяемых полных дампов памяти, использование формата textdump позволяет существенно упростить отладку проблем в ядре. Кроме того, внесены многочисленные улучшения в отладчик ядра ddb, в том числе поддержка выполнения скриптов. Для оценки поддерживаемых текущим ядром возможностей добавлен sysctl kern.features; Для архитектур добавлен новый загрузчик gptboot, поддерживающий загрузку с дисков, размеченных с использованием GPT. Внесены улучшения, связанные с обеспечением загрузки с USB-устройств; Дисковая подсистема, ввод/вывод, системы хранения и файловые системы Интеграция подсистемы FUSE (файловые системы в пространстве пользователя); Поддержка увеличения размера разделов UFS без отмонтирования; Поддержка в ZFS операции TRIM для SSD-накопителей, сжатия LZ4 и L2ARC, оптимизация NOP-записи; Сетевая подсистема Переработка пакетного фильтра pf для многоядерных систем; Интеграция наработок проекта CARP2; Реализация клиента NFSv4.1. Замена DNS-сервера BIND на связку из кеширующего DNS сервера Unbound и библиотеки LDNS. Unbound распространяется под лицензией BSD, имеет модульную структуру, поддерживает работу резолвера в рекурсивном и кэширующем режиме, обеспечивает проверку валидности DNSSEC-сигнатур. При необходимости использовать BIND, его следует установить из портов; Новый стек iSCSI; Изолированные окружения, безопасность и ограничения ресурсов Интеграция гипервизора BHyVe, изначально разработанного компанией NetApp. Для работы требуется система с процессором Intel, поддерживающим аппаратные средства виртуализации VT-x и EPT (Extended Page Tables). Из возможностей можно отметить поддержку создания вложенных окружений, проброс PCI-устройств, доступ к содержимому виртуальной машины через специальное блочное устройство, возможность назначения нескольких CPU гостевой системе. Поддержка BHyVe пока ограничена архитектурой amd64. В качестве гостевых систем могут запускаться системы для которых имеются драйверы VirtIO для паравиртуализации ввода/вывода, в том числе различные версии FreeBSD, свежие сборки OpenBSD и системы GNU/Linux (CentOS, Debian, Ubuntu, openSUSE). Для запуска виртуального окружения можно использовать команду »/usr/sbin/bhyveload -m 256 -d ./vm0.img vm0». Включение интерфейса Virtio с поддержкой паравиртуальных устройств ввода/вывода vtnet (Ethernet), virtio_blk (блочное устройство), virtio_scsi (SCSI HBA) и virtio_balloon (для возвращения памяти гипервизору). Драйверы протестированы при работе FreeBSD в качестве гостевой системы под управлением Qemu/KVM, VirtualBox и bhyve; Добавлены паравиртуальные драйверы для гипервизора Hyper-V, позволяющие запускать FreeBSD в качестве гостевой системы в окружении продуктов виртуализации Microsoft. Драйверы доступны для архитектур amd64 и i386. Для GENERIC-ядра amd64 драйверы включены по умолчанию. Доступны драйверы для организации управления с консоли Hyper-V, для синхронизации времени, для IDE и SCSI хранилищ, для сетевого адаптера и для организации live-миграции. В GENERIC ядрах для архитектур amd64 и i386 включён по умолчанию драйвер Xen PVHVM, предоставляющий возможность использования специальных дисковых и сетевых драйверов (PVHVM или PV-on-HVM) в гостевой системе, работающей в режиме полной виртуализации (HVM). Ранее в HVM-режиме допускалось использование PV-драйверов, но было невозможным задействование PVHVM-вариантов данных драйверов, специально оптимизированных для работы в режиме HVM. Наиболее существенным отличием PVHVM-драйверов является обход стадии эмуляции при трансляции дискового и сетевого ввода/вывода, что позволяет значительно повысить производительность HVM-окружений, приблизив их к производительности паравиртуализированных систем. Для архитектур amd64 и i386 активирован драйвер vmx для виртуального сетевого контроллера VMware VMXNET3 и драйвер для виртуального SCSI-контроллера PAPR VSCSI; Для архитектур amd64 и i386 добавлена поддержка аппаратного механизма генерации псевдослучайных чисел RDRAND, присутствующего в процессорах Intel, начиная с IvyBridge. Аппаратные генераторы случайных чисел применяются не напрямую, а в качестве одного из нескольких источников энтропии, смешиваемых при помощи алгоритма Yarrow. Оборудование и аппаратные архитектуры Включение KMS-модуля для видеокарт AMD. Поддержка KMS-модуля необходима для обеспечения работы во FreeBSD свежих версий драйвера xf86-video-radeon, в котором прекращена поддержка переключения видеорежимов на пользовательском уровне (UMS) и оставлена только возможность использования KMS (Kernel Mode Setting). Поддержка USB Audio 2.0, позволяющего обеспечить работу с устройствами, поддерживающими более высокую пропускную способность, повышенную частоту дискретизации и более широкий динамический диапазон; Адаптация для работы на Raspberry Pi (инструкция по установке); Улучшение поддержки архитектуры ARM: Добавлена поддержка ARMv6 и ARMv7, включая поддержку SoC Marvell MV78×60, TI OMAP4 и AM335x, реализована возможность использования SMP, TLS (thread-local storage) и инструкций VFP/Neon. По умолчанию в качестве ABI для arm, armeb, armv6 и armv6eb теперь используется ARM EABI. Добавлены средства для манипуляции страницами памяти большого размера (SuperPages), которые позволяют увеличить эффективность и производительность работы FreeBSD на ARM-системах, благодаря обеспечению средств трансляции TLB для динамического покрытия больших областей памяти, что особенно актуально с появлением серверных ARM-систем. При использовании SuperPages тестирование показало сокращение задержек при доступе к памяти на 34% в тесте GUPS и на 38% в тесте LMbench, время сборки buildworld сократилось на 20%. Переписан драйвер bxe, в который добавлена поддержка BCM57712 и BCM578XX; Добавлен драйвер cmx для устройств для чтения смарткарт Omnikey CardMan 4040 PCMCIA; Добавлен драйвер uslcom для адаптеров USB-serial на базе чипов Silicon Laboratories CP2101/CP2102; Добавлены новые сетевые драйверы: ale с поддержкой Gigabit/Fast Ethernet адаптеров Atheros AR8121/AR8113/AR8114, jme c поддержкой PCIe-контроллеров JMicron JMC250 Gigabit Ethernet и JMC260 Fast Ethernet, malo для PCI-карт на базе Marvell Libertas 88W8335, iw_cxgbe — iWARP/RDMA-драйвер для карт на базе Chelsio T4 и T5. В драйвер cxgbe добавлена поддержка 40G/10G Ethernet карт на базе Chelsio Terminator 5 (T5) ASIC. Драйвер em разделён на два отдельных драйвера: в em оставлена поддержка чипов 82575 и клиентских сетевых карт, а в драйвер igb вынесена поддержка новых серверных адаптеров; До состояния ядра Linux 3.7 обновлён стек OFED (OpenFabrics Enterprise Distribution), в состав которого входит набор драйверов и сопутствующих утилиты для обеспечения работы Infiniband-контроллеров, используемых для организации высокоскоростных соединений серверов и организации поддержки технологии RDMA (Remote Direct Memory Access). Приложения В качестве пакетного менеджера по умолчанию задействован пакетный менеджер pkg, который предоставляет интерфейс в стиле пакетного менеджера APT и обеспечивает поддержку таких функций, как обновление пакетов, работа с репозиториями бинарных пакетов, учёт зависимостей и полноценные средства для работы с метаданными. Для установки бинарных пакетов предлагается использовать репозиторий pkg.FreeBSD.org. Обеспечена поддержка проверки валидности бинарных пакетов из pkg-репозитория по цифровой подписи. Поддержка pkg_add, pkg_delete и подобных утилит прекращена. Утилита GNU make заменена на bmake, созданные в рамках проекта NetBSD.

© OpenNet