Представлен (https://www.freebsd.org/news/status/report-2015-07-2015-09.h... отчёт о развитии проекта FreeBSD с июля по сентябрь 2015 года.Основные достижения:
-
Система
- Представлен системный менеджер nosh (http://homepage.ntlworld.com./jonathan.deboynepollard/Softwa... включающий набор средств для инициализации, загрузки, ведения логов, управления фоновыми процессами и терминалами. Nosh позиционируется как замена систем BSD init и NetBSD rc.d, вобравшая в себя черты таких систем, как Solaris SMF, daemontools-encore, UCSPI и средств IBM AIX по раздельному управлению системой и сервисами. Предоставляется набор прослоек для использования команд, ставших привычных в других системах, а также набор механизмов для импорта существующих конфигурационных файлов /etc/fstab, /etc/rc.conf, /etc/rc.local и /etc/ttys, а также настроек изолированных окружений Jail и PC-BSD Warden.
Система переносимая, не зависит от особенностей ядра и может применяться как в BSD-системах, так и в Linux. Доступны возможности для определения порядка запуска сервисов, организации зависимостей между сервисами и обеспечения параллельного выполнения сервисов. Nosh уже очень близок к готовности работы вместо системы rc.d - из 157 отмеченных в плане задач остаётся выполнить 39. Например, пока не обеспечена конвертация скриптов /etc/rc.d/gptboot, /etc/rc.d/growfs, /etc/rc.d/routing, /etc/rc.d/bluetoot и /etc/rc.d/kldxref;
- Поставляемые в базовой системе компилятор Clang, компоненты LLVM, compiler-rt, libc++ и отладчик LLDB обновлены до выпуска 3.7 (https://www.opennet.ru/opennews/art.shtml?num=42894);
- В системе динамической отладки DTrace реализованы (https://svnweb.freebsd.org/base?view=revision&revision=287759) контрольные проверки, трансляторы и скрипты сопровождения для отладки TCP-стека, реализующие функциональность TCPDEBUG;
- Синхронизация данных между многими серверами кластера, обслуживающего инфраструктуру FreeBSD, переведена с rsync на распределённую P2P-систему Syncthing (https://www.opennet.ru/opennews/art.shtml?num=42093). Реализованы дополнительные компоненты инфраструктуры для верификации кода и данных по цифровым подписям. Готовится к официальному анонсу новая система загрузки download.FreeBSD.org (https://download.FreeBSD.org/) с автоматическим выбором ближайшего зеркала;
- Улучшена совместимость с различными реализациями UEFI. Расширены возможности EFI-драйвера фреймбуфера efifb, улучшена совместимость с Apple MacBook Pro;
- Во FreeBSD HEAD приняты изменения ядра, необходимые для реализации runtime-окружения CloudABI (https://github.com/NuxiNL/cloudlibc), базирующееся (https://nuxi.nl/) на применении механизма управления доступом Capsicum и предоставляющего средства для разработки приложений, более защищённых от типовых уязвимостей и проще переносимых между системами. Для работы CloudABI требуется загрузка модуля ядра cloudabi64, после чего можно запускать программы, собранные с runtime CloudABI, из shell или при помощи специальной утилиты cloudabi-run (sysutils/cloudabi-utils), позволяющей определить к каким сокетам, файлам и директориям будет иметь доступ запускаемая программа. Для пользователей развивается отдельная коллекция портов (https://github.com/NuxiNL/cloudabi-ports), в которую включены (https://github.com/NuxiNL/cloudabi-ports/tree/master/packages) варианты типовых утилит и библиотек, кросс-компилируемых для CloudABI;
- Стартовал проекта по аудиту организации блокировок во FreeBSD и переводу подсистем на применение по возможности атомарных операций, не требующих установки блокировок (lockless).
-
Изолированные окружения, эмуляторы, безопасность и ограничения ресурсов
- Продолжается усовершенствование гипервизора BHyVe (http://www.bhyve.org), изначально разработанного компанией NetApp и поставляемого в базовом составе FreeBSD 10. Работа сосредоточена на обеспечении поддержки новых типов гостевых систем и доведении функциональности до других популярных гипервизоров. В настоящее время поддерживается создание хост-систем на базе платформы FreeBSD/AMD64 и запуск гостевых систем c FreeBSD 8+, Linux i386/x64, OpenBSD i386/amd64, NetBSD/amd64, Illumos и Windows Vista/7/8/10/2008r2/2012r2/2016 x64. Из последних достижений отмечается возможность загрузки внешних прошивок, в том числе прошивок Intel edk2 UEFI, что позволяет запускать в гостевых системах Windows без вывода на экран (режим headless) и Illumos;
Для управления запуском гостевых систем развивается инструментарий bhyveucl (https://github.com/allanjude/bhyveucl).
На ближайшее будущее запланирована поддержка virtio-scsi, создание сетевых бэкендов wanproxy и vhost-net, возможность работы без прав root, создание фильтров для популярных форматов виртуальных машин (VMDK, VHD, QCOW2), абстрактный слой для видео (не зависящий от X11 и SDL), поддержка спящего режима, live-миграция, вложенная виртуализация (гостевая система в гостевой системе), поддержка архитектур ARM, MIPS и PPC;
- Усовершенствована работа FreeBSD в качестве хост-системы (dom0) для запуска гостевых окружений с использованием гипервизора Xen. За отчётный период была проведена работа по реализации возможности загрузки ARM-систем FreeBSD/arm64 в форме гостевых окружений Xen. Продолжена работа по реализации (https://www.opennet.ru/opennews/art.shtml?num=41954) режима PVH, который комбинирует элементы режимов паравиртуализации (PV) и полной виртуализации (HVM). Подготовленные в рамках реализации PVH патчи скорее всего войдут в состав выпуска Xen 4.7. После реализации PVH работа будет сосредоточена на реализацию полной функциональности для запуска обычных паравиртуализирорваных окружений.
-
Сетевая подсистема
- Подготовлен скрипт automtud (https://github.com/jmgurney/automtud) для определения размера MTU удалённой машины и корректировки таблицы маршрутизации, позволяя FreeBSD отправлять jumbo-кадры (https://ru.wikipedia.org/wiki/Jumbo-%D0%BA%D0... для поддерживающих их хостов, продолжая использовать кадры нормального размера для остальных систем.
- Доступен новый выпуск патчей с реализацией расширения Multipath TCP (MPTCP), позволяющего организовать доставку пакетов одновременно по нескольким маршрутам через разные сетевые интерфейсы, привязанные к разным IP-адресам. Целью проекта является подготовка MPTCP-патчей для ядра FreeBSD, совместимых с эталонной реализацией MPTCP и дополнительными улучшениями.
- В ядре GENERIC по умолчанию активирована поддержка стека IPsec. Реализация IPsec расширена поддержкой аппаратных и программных режимов
AES;
- Стартовал проект (https://wiki.FreeBSD.org/SummerOfCode2015/MultiqueueTestingP... по тестированию поддержки многоуровневых очередей (multiqueue) при различных режимах работы сетевого стека;
-
Системы хранения и файловые системы
- Во FreeBSD HEAD и stable/10 принят обновлённый код файловой системы ZFS, синхронизированный с реализацией ZFS от проекта Illumos. Добавлена поддержка сжатия LZ4, на 50% сокращено потребление памяти при использовании L2ARC, улучшено агрегирование ввода/вывода, переработан код упреждающей загрузки данных. В UEFI-загрузчики boot1.efi и loader.efi добавлена поддержка загрузки и чтения данных с ZFS;
- В ветку FreeBSD 11-CURRENT добавлена поддержка функции смены корневой ФС на лету. Ранее для перемонтирования корневого раздела требовалась перезагрузка. Смена корневой ФС необходима для работы на ранней стадии загрузки временных образов ram-дисков, осуществляющих инициализацию сеанса iSCSI, с последующим подключением корневой ФС поверх iSCSI;
- В подсистему CAM Target Layer (CTL), обеспечивающую эмуляцию дисковых и процессорных устройств, через которую реализован сервер iSCSI, добавлена поддержка кластерных средств для обеспечения высокой доступности. Поддерживается создание двухузловых кластеров с асинхронными режимами доступ к юнитам LUN (ALUA, Asynchronous LUN Unit Acc...
URL: https://www.freebsd.org/news/status/report-2015-07-2015-09.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=43201