FreeBSD 10.0
Спустя два года с момента выхода ветки FreeBSD 9 представлен релиз FreeBSD 10.0, ставший одним из самых значительных релизов за историю существования проекта.
Спустя два года с момента выхода ветки FreeBSD 9 представлен релиз FreeBSD 10.0, ставший одним из самых значительных релизов за историю существования проекта.

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


Основные новшества:

Система
Переход на использование по умолчанию компилятора Clang 3.3 и развиваемой проектом LLVM библиотеки libc++ для архитектур arm, i386 и AMD64, для которых GCC и libstdc++ теперь по умолчанию не собираются как часть базовой системы. Исполняемые файлы cc, cpp и c++ отныне являются ссылками на clang. Тем не менее GCC и libstdc++ можно установить из портов или собрать из исходных текстов вместе с системой, указав параметры WITH_GCC и WITH_GNUCXX в src.conf.

Основной причиной перехода на Clang является желание задействовать распространяемый под лицензией BSD сборочный инструментарий вместо устаревшей весрии набора компиляторов GCC 4.2.1. FreeBSD не может перейти на более новую версию GCC, так как начиная с выпуска 4.2.2 GCC был переведен на лицензию GPLv3. Изначально интеграции GCC 4.2.2 мешала несовместимость runtime-компонентов GCC с лицензией BSD. В версии GCC 4.4 были введены дополнительные условия лицензирования, убирающие некоторые ограничения лицензии GPLv3 для Runtime-компонентов GCC. Тем не менее добавление в базовую систему FreeBSD компонентов под лицензией GPLv3 признано невозможным из-за противоречий с целями проекта FreeBSD и нежеланием налагать дополнительные ограничения на пользователей, такие как запрет тивоизации. Кроме лицензии, стимулом перехода на Clang также послужило желание задействовать реализованные в Clang дополнительные техники оптимизации, диагностики проблем и кросс-компиляции.

Интегрирована поддержка unmapped VMIO, которая позволила поднять производительность ввода/вывода, благодаря исключению стадии маппинга буферов в TLB-кэше, что существенно снизило накладные расходы при работе на многопроцессорных системах. На некоторых крупных SMP-системах с интенсивным вводом/выводом наблюдается повышение производительности на 25-30%.

Обновлён инсталлятор bsdinstall, в котором добавлена поддержка полноценной установки системы на разделы ZFS. Из базовой системы удалён старый инсталлятор sysinstall, вместо него следует использовать bsdinstall и bsdconfig. Утилита bsdconfig реализует интерфейс для настройки различных параметров системы, обеспечивая функциональность похожуюна меню "Configure" из sysinstall;

Для архитектуры amd64 максимальный размер адресуемой ядром памяти увеличен с 1TB до 4TB. Добавлена поддержка маппинга страниц памяти большого размера (SuperPages).

Для архитектур amd64,i386,ia64,powerpc по умолчанию GENERIC ядрах задействован планировщик задач ULE;

В стандартную библиотеку добавлен вызов cpuset с связанная с ним утилита cpuset, позволяющая осуществлять привязку процессов к CPU, запускать команды в привязке к определённым процессорам и управлять группировкой и назначением ресурсов CPU.

Поддержка генерации дампов ядра в структурированном формате textdump, включающем отладочную информацию. В отличие от ранее применяемых полных дампов памяти, использование формата textdump позволяет существенно упростить отладку проблем в ядре. Кроме того, внесены многочисленные улучшения в отладчик ядра ddb, в том числе поддержка выполнения скриптов.

Для оценки поддерживаемых текущим ядром возможностей добавлен sysctl kern.features;

Для архитектур добавлен новый загрузчик gptboot, поддерживающий загрузку с дисков, размеченных с использованием GPT. Внесены улучшения, связанные с обеспечением загрузки с USB-устройств. Поддержка UEFI Secure Boot ожидается в выпуске FreeBSD 10.1;


Дисковая подсистема, ввод/вывод, системы хранения и файловые системы

Интеграция подсистемы FUSE, обеспечивающей работу файловых систем, реализованных на уровне пользователя. Поддерживается использование большинства FUSE-модулей, в том числе sshfs, ntfs-3g и ext4fuse.

Поддержка увеличения размера разделов UFS без отмонтирования;

Включение наработок по оптимизации производительности файловых систем UFS/FFS.

Поддержка в ZFS операции TRIM для SSD-накопителей, сжатия LZ4 и L2ARC, оптимизация NOP-записи;


Сетевая подсистема

Интеграция наработок проекта CARP2, в рамках которого полностью переписана реализация протокола CARP (Common Address Redundancy Protocol) для FreeBSD. Протокол CARP, выступая в роли открытой альтернативы протоколам HSRP (Hot Standby Router Protocol) и VRRP (Virtual Router Redundancy Protocol), позволяет организовать совместное использование IP-адреса между несколькими серверами в локальной сети, что может применяться для балансировки нагрузки или для создания отказоустойчивых систем. В новой реализации CARP задействован отдельный сетевой интерфейс, проведена нормализация адресов CARP для демонов маршрутизации (например, quagga), обеспечена поддержка одного избыточного IP на подсеть и реализовать режим carpdev для интерфейсов без IP.

Замена DNS-сервера BIND на связку из кеширующего DNS сервера Unbound и библиотеки LDNS. Unbound распространяется под лицензией BSD, имеет модульную структуру, поддерживает работу резолвера в рекурсивном и кэширующем режиме, обеспечивает проверку валидности DNSSEC-сигнатур. Вместо утилиты dig используется drill. В качестве причины ухода от BIND называется проблема с протяжённостью цикла поддержки выпуска обновлений для BIND, который не укладываются в цикл поддержки релизов FreeBSD. При необходимости использовать BIND, его следует установить из портов;

В пакетном фильтре PF обеспечена поддержка распараллеливания на SMP-системах. В частности, PF избавлен от зависимости от единого мьютекса, из-за которого PF являлся по сути однопоточным. Параллельно были внесены разнообразные сопутствующие улучшения, направленные на общее улучшение работы порта PF для FreeBSD;

В ipfw добавлена поддержка установки и проверки значений (AFXY, CSX, BE, EF) поля DSCP (differentiated services codepoints) в заголовках IP-пакетов.

Новый нативный стек iSCSI, реализованный на уровне ядра и содержащий реализации iSCSI Target и iSCSI Initiator. Новый стек отличается более высокой надёжностью и производительностью, а также предоставлением значительно упрощённых средств администрирования.

Реализация клиента NFSv4.1, в том числе поддерживающего pNFS и кэширования на стороне клиента;

Обеспечена поддержка до 65536 таблиц маршрутизации;

Добавлен фреймворк netmap для высокоскоростной обработки пакетов. Фреймворк позволяет одним ядром CPU с частотой 1050 MHz генерировать поток в 14.8 Mpps (миллионов пакетов в секунду), которого достаточно для анализа трафика на 10-гигабитном сетевом интерфейсе. В относительных показателях производительность netmap в 5-10 раз выше стандартного сетевого драйвера. Для работы существующих приложений поверх нового API подготовлена небольшая библиотека-враппер libpcap-over-netmap, позволяющая задействовать netmap в программах, уже поддерживающих libpcap;


Изолированные окружения, безопасность и ограничения ресурсов

Интеграция гипервизора 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 MV78x60, 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_create, pkg_delete, pkg_info, pkg_updating и pkg_version;

Вместо make осуществлён переход на сботочную утилиту bmake, разработанную в рамках проекта NetBSD. Утилиты GNU patch, GNU sort, GNU cpio, GNU bc, GNU dc, GNU ar, Bison и GNU ranlib, заменены на аналоги, распространяемые под лицензией BSD;

Проделана большая работа по обеспечению возможности кросс-компиляции FreeBSD на других системах, что например, может быть использования для создания сборок FreeBSD из программного окружения других ОС;

Обновлены версии сторонних приложений, поставляемых в базовой системе FreeBSD: jemalloc 3.4.0, hostapd 0.5.10, IPFilter 5.1.2, OpenSSH 6.4, sendmail 8.14.7, WPA Supplicant 2.0, xz 5.0;

В качестве поддерживаемой версии рабочего стола GNOME заявлен выпуск 2.22;

В базовую систему интегрированы упрощённые компоненты для работы с Subversion (svnlite) и удалена поддержка CVS (CVS и полноценный пакет с Subversion можно установить из портов);
Sided
2014-01-20 22:25:53
Avatar

Заядлых фрибсдешников поздравляю! ))

Sargas
2014-01-20 22:55:43
Avatar

Наконец то будет людский пакетный менеджер :)

muff
2014-01-20 23:13:03
Avatar

Кажется следующий сервер будет на десятой фре... Ждать осталось недолго - железо уже есть, а релиз качается :)

sokol33
2014-01-20 23:46:28
Avatar

на мне эксперементы ставить будешь? :)

Kto To
2014-01-20 23:48:08
Avatar

Паралелизацию пппое трафика сделали? Или снова говно будет когда весь пппое трафик ложится на одно ядро?

muff
2014-01-21 00:22:07
Avatar

на мне эксперементы ставить будешь? :)

Не-а. У тя уже много чего настроено, сносить неохота, апдейтить - рановато...

Ну и потестить 10 релиз нужно будет сначала, посмотреть что и как, а тогда уже и в продакшен запускать.

Abram
2014-01-21 00:42:09
Avatar

Я не фанат FreeBSD, но внушает.

Phsm
2014-01-22 23:35:14
Avatar

Я также не фанат FreeBSD - когда-то ушел с неё как раз из-за отсутствия виртуализации, вменяемого iscsi (не было ничего лучше линуксового SCST), однако список новшеств говорит что фря наконец догоняет линуксы по функционалу. Поздравляю фряшников с апдейтом.

Кстати, объясните мне, зачем нужен этот CARP в качестве "открытой альтернативы", ведь VRRP вполне себе открытый протокол?

Ruslik
2014-01-22 23:57:52
Avatar

Знатно обновили. Теперь будет больше инсталяций фряхи IMHO.

ttttt
2014-01-23 00:23:36
Avatar

Кстати, объясните мне, зачем нужен этот CARP в качестве "открытой альтернативы", ведь VRRP вполне себе открытый протокол?

В википедии даже есть об этом:

Cisco informed the OpenBSD developers they would enforce their patent of HSRP. This may have been related to their lawsuit with Alcatel. Thus, a free implementation of VRRP could not be made. OpenBSD developers started CARP as an alternative to the patented VRRP, as the "reasonable and non-discriminatory" licensing terms necessarily excluded open-source implementations.

adeep
2014-01-23 11:00:00
Avatar

Знатно обновили. Теперь будет больше инсталяций фряхи IMHO.

Если виртуализацию до победы докрутят - будет отлично.

Ruslik
2014-01-23 23:46:48
Avatar

 

Знатно обновили. Теперь будет больше инсталяций фряхи IMHO.

Если виртуализацию до победы докрутят - будет отлично.

 

 

Виртуализация на фре отстала от Xen/KVM/VMWARE - это факт. Она вообще есть в каком-то виде?

Если заработает - должно еще время пройти, пока в массы пойдет. Процесс не быстрый.

 

PS. Кто-то в курсе про сутьбу UAFUG? :) Интресное сообщество было когда-то по фре. Если живое комьюнити, почитать бы списки рассылки.

 

Melanxolik
2014-01-23 23:58:42
Avatar

там вроде наконец smp по pf обещали, а этого ох как многие ждали.

надо наверное пару своих тазиков обновить, на остальное железо пока пускать думаю не стоит.

adeep
2014-01-24 00:02:13
Avatar

 

 

 

 

Знатно обновили. Теперь будет больше инсталяций фряхи IMHO.

Если виртуализацию до победы докрутят - будет отлично.

Виртуализация на фре отстала от Xen/KVM/VMWARE - это факт. Она вообще есть в каком-то виде?

Если заработает - должно еще время пройти, пока в массы пойдет. Процесс не быстрый.

 

PS. Кто-то в курсе про сутьбу UAFUG? :) Интресное сообщество было когда-то по фре. Если живое комьюнити, почитать бы списки рассылки.

то есть анонс не читай, комментируй?

 

uafug живет, хотя трафика там немного по сравнению с былыми временами

Ruslik
2014-01-24 16:11:24
Avatar

 

 

 

Знатно обновили. Теперь будет больше инсталяций фряхи IMHO.

Если виртуализацию до победы докрутят - будет отлично.

Виртуализация на фре отстала от Xen/KVM/VMWARE - это факт. Она вообще есть в каком-то виде?

Если заработает - должно еще время пройти, пока в массы пойдет. Процесс не быстрый.

 

PS. Кто-то в курсе про сутьбу UAFUG? :) Интресное сообщество было когда-то по фре. Если живое комьюнити, почитать бы списки рассылки.

то есть анонс не читай, комментируй?

 

uafug живет, хотя трафика там немного по сравнению с былыми временами

 

 

Вопрос больше про то, пользуется ли кто этим.

Я например пока не слышал.

 

loki
2014-02-02 03:41:53
Avatar

У кого получилось завести ipfw в юзерспейсе с netmap-ом. Да так, чтоб и dummynet работал корректно ? 

Respect!
2014-04-06 17:43:20
Avatar

ЗвЫняюсь за оффтоп, нужна помощь. Кто подскажет как настроить мультикаст?

loki
2014-04-06 17:49:39
Avatar

Если в кратце, то берешь и настраиваешь.

loki
2014-04-06 17:51:25
Avatar

У кого получилось завести ipfw в юзерспейсе с netmap-ом. Да так, чтоб и dummynet работал корректно ? 

 Помучался, получилось. Но для продакта пока не годиться. А так, 900К ппс жувало спокойно, загрузка процессора почти нулевая. Правда, при перезапуске крэшилось (

CETEBiK
2014-07-28 16:20:32
Avatar

В FreeBSD 10 новая реализацией протокола CARP весьма своеобразная.

Делаю как обычно: advskew 0 и advskew 10 , но оба хоста становятся MASTER.

Вопрос: Возможно ли и как правильно поменять поведение carp устройства с redundancy на failover ?

 

 

cat /etc/rc.conf|egrep 'vhid|em0|hostname'

 hostname="carp_master"

 ifconfig_em0=" inet 10.110.0.253/16"

 ifconfig_em0_alias0="inet 10.110.0.200/16 vhid 1 advskew 0 pass P@ssSW0Rd"

 

sysctl net.inet.carp

 net.inet.carp.allow: 1

 net.inet.carp.preempt: 1

 net.inet.carp.log: 1

 net.inet.carp.demotion: 240

 net.inet.carp.senderr_demotion_factor: 240

 net.inet.carp.ifdown_demotion_factor: 240

 

ifconfig em0

 em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=303<RXCSUM,TXCSUM,TSO4,TSO6>

 inet 10.110.0.253 netmask 0xffff0000 broadcast 10.110.255.255

 inet 10.110.0.200 netmask 0xffff0000 broadcast 10.110.255.255 vhid 1

 status: active

 carp: MASTER vhid 1 advbase 1 advskew 0

cat /etc/rc.conf|egrep 'vhid|em0|hostname'

 hostname="carp_backup"

 ifconfig_em0="inet 10.110.0.250/16"

 ifconfig_em0_alias0="inet 10.110.0.200/16 vhid 1 advskew 10 pass P@ssSW0Rd state BACKUP"

 

sysctl net.inet.carp

 net.inet.carp.allow: 1

 net.inet.carp.preempt: 1

 net.inet.carp.log: 1

 net.inet.carp.demotion: 240

 net.inet.carp.senderr_demotion_factor: 240

 net.inet.carp.ifdown_demotion_factor: 240

 

ifconfig em0

 em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=303<RXCSUM,TXCSUM,TSO4,TSO6>

 inet 10.110.0.250 netmask 0xffff0000 broadcast 10.110.255.255

 inet 10.110.0.200 netmask 0xffff0000 broadcast 10.110.255.255 vhid 1

 status: active

 carp: MASTER vhid 1 advbase 1 advskew 10

kvirtu
2014-12-06 15:05:45
Avatar

вышел релиз 10.1

Я обновился:

1. freebsd-update -r 10.1-RELEASE upgrade

2. freebsd-update install

3. reboot

4. freebsd-update install

5. Перекомпилировать свое ядро

Maed
2014-12-06 22:15:58
Avatar

Chan_dongle под 10.х не собирается :(  Абидна.

bos
2014-12-07 08:58:59
Avatar

все собирается, 

FreeBSD 10.0-RELEASE-p7 (GENERIC) #0:
module show like dongle

Module                         Description                              Use Count 

chan_dongle.so                 Huawei 3G Dongle Channel Driver          0         

1 modules loaded

Maed
2014-12-07 10:53:58
Avatar

Тю, КАК???  У меня он CLANGом никак линковаться не хотел (как в 10ке и в 10.1)! Или Вы его GCC собирали? И какая версия chan_dongle???

bos
2014-12-07 11:03:59
Avatar

dongle show version 

 

chan_dongle: Huawei 3G Dongle Channel Driver, Version 1.1, Revision 34

Project Home: code.google.com/...ongle

Bug Reporting: code.google.com/.../list

 

давно это было, даже хотел написать как это сделал, руки не дошли, в памяти уже не освежу(  

You should to log in

loading