Опубликован (https://www.freebsd.org/news/status/report-2017-01-2017-03.html) отчёт о развитии проекта FreeBSD с января по март 2017 года.
Основные достижения:
-
Общие вопросы
- По многочисленным просьбам рассматривается возможность выпуска релиза FreeBSD 10.4. В соответствии с планом релиз FreeBSD 10.3 должен был бы быть последним в своей серии, но после него в ветку FreeBSD 10 внесено достаточно много изменений, чтобы выпустить ещё один релиз. При этом версия FreeBSD 10.4 будет подготовлена в рамках обычного цикла сопровождения, т.е. не приведёт к продлению изначально намеченного срока поддержки ветки FreeBSD 10, исправления для которой будут выпускаться до 30 апреля 2018 года;
- Закрыт публичный доступ к сервису freefall.freebsd.org, который позволял использовать протокол finger для получения сведений о разработчиках FreeBSD. В системных профилях многих разработчиков добавлена приватная информация, такая как номер телефона, которую в современных реалиях не принято разглашать. Для внутреннего использования сервис freefall.freebsd.org по-прежнему доступен;
- Размер пожертвований в первом квартале 2017 года составил (https://www.freebsdfoundation.org/donate/) более 400 тысяч долларов, в основном благодаря финансовой поддержке компаний Intel и NetApp. Денежные вознаграждения выплачены за 168 коммитов в базовую систему: три разработчика получили средства будучи официально трудоустроенными во FreeBSD Foundation и ещё четыре были профинансированы через предоставление грантов.
Успешно выполнены развиваемые в рамках программы грантов проекты по интеграции cfumass, развитию порта FreeBSD/arm6 и расширения возможностей демона blacklistd. Почти доведён до конца проект по реализации 64-разрядных inode. Трудоустроенные инженеры выполнили работу по улучшению инструментария, сборочных компонентов, runtime-библиотек, утилит для формирования системных образов, устранению ошибок в системе управления памятью и расширению поддержки архитектур arm64, mips64 и x86 (32- и 64-bit);
- Определён план (https://www.freebsd.org/releases/11.1R/schedule.html) разработки FreeBSD 11.1, релиз запланирован на 26 июля 2017 года. Продолжено формирование еженедельных тестовых сборок для веток 12-CURRENT, 11-STABLE и 10-STABLE;
- Проект TrustedBSD (http://trustedbsd.org), в рамках которого развиваются некоторые технологии защиты для FreeBSD (например, были созданы ACL, расширенные атрибуты файлов, UFS2, OpenPAM, подсистема аудита, OpenBSM, система мандатного доступа и GEOM), перевёл процессы разработки с поддерживаемого сообществом FreeBSD сервера Perforce на GitHub (https://github.com/trustedbsd);
-
Изолированные окружения, эмуляторы, безопасность и ограничения ресурсов
- Продолжается работа по портированию приложений для runtime-окружения CloudABI (https://github.com/NuxiNL/cloudlibc), базирующегося (https://nuxi.nl/) на применении механизма управления доступом Capsicum и предоставляющего средства для разработки приложений, защищённых от типовых уязвимостей и переносимых между разными системами. CloudABI также может применяться для безопасного запуска не заслуживающих доверия программ, без применения окружений виртуализации и jail. Для пользователей развивается отдельная коллекция портов (https://github.com/NuxiNL/cloudabi-ports), в которую включены (https://github.com/NuxiNL/cloudabi-ports/tree/master/packages) варианты типовых утилит и библиотек, кросс-компилируемых для CloudABI. За последнее время подготовлены изолированные варианты библиотек Boost и LevelDB, что упрощает портирование на CloudABI приложений, использующих данные библиотеки. Развивается защищённый порт Bitcoin;
- В состав FreeBSD HEAD и STABLE включен новый выпуск пакета OpenBSM 1.2 alpha 5 (https://github.com/openbsm/openbsm/blob/master/NEWS) с открытой реализации Sun Basic Security Module (BSM) Audit API, предоставляющего средства для управления аудитом системы. OpenBSM содержит компоненты пространства пользователя, базирующиеся на реализации CAPP Audit во FreeBSD и macOS. За отчётный период добавлена экспериментальная поддержка UUID, подготовлен (https://reviews.FreeBSD.org/D10149) провайдер аудита для DTrace, в систему непрерывной интеграции добавлена поддержка статического анализа в сервисе Coverity;
- Продолжается развитие набора драйверов для работы в гостевых системах под управлением гипервизора Hyper-V и облачной платформы Azure. За отчётный период для сетевых адаптеров добавлена поддержка технологии виртуализации ввода-вывода SR-IOV (Single Root Input/Output Virtualization), которая пока протестирована только на карте Mellanox ConnectX-3 VF. Обновлены образы виртуальных машин, в которые добавлен драйвер виртуальной клавиатуры;
- В инфраструктуре эмуляции окружения Linux (Linuxulator) добавлена новая заглушка "UNIMPLEMENTED" для системных вызовов, нереализованных в эмуляторе, но присутствующих в ядре Linux. Ранее для подобных целей использовалась заглушка "DUMMY", но она также применяется для системных вызовов, нереализованных в самом Linux. В Linuxulator реализовано два новых системных вызова: preadv и pwritev, в ближайшее время планируется также добавить системный вызов execveat;
-
Системы хранения и файловые системы
- Наблюдается значительный прогресс в разработке порта (https://github.com/wjwithagen/ceph) распределённого хранилища Ceph (https://www.opennet.me/opennews/art.shtml?num=44303) для FreeBSD. Целью проекта является предоставление возможности развёртывания кластера Ceph с узлами хранения на базе FreeBSD и ZFS, а также поддержка запуска виртуальных машин bhyve на виртуальных дисках, развёрнутых поверх блочного устройства Ceph RBD. За отчётный период подготовлено блочное устройство RBD (Ceph Block Device) и реализация CephFS в пространстве пользователя (ceph-fuse), которые дополнили ранее реализованные объектное хранилище RADOS (Object Storage) и инструментарий. Для создания FileStore поверх ZFS подготовлены команды "ceph-disk prepare" и "ceph-disk activate". Для установки Ceph добавлен порт net/ceph-devel. Реализация RDB (KRBD) и файловой системы CephFS на уровне ядра, а также OSD-бэкенд BlueStore (Object Storage Device), пока не готовы;
- В драйверы mmc и mmcsd добавлена поддержка разделов eMMC (embedded MMC), используемых на впаянной в платы flash-памяти с MMC-контроллером. В mmcsd также добавлен ioctl-интерфейс, совместимый с Linux, что позволят использовать во FreeBSD уже существующие утилиты, такие как GNU mmc-utilssys (в портах utils/mmc-utils),
для разбивки разделов eMMC, запроса прогноза времени жизни накопителя, получения информации о скором истечении ресурса Flash-памяти и вывода базовой информации из SD-карт. Кроме eMMC в драйверы mmc и sdhci добавлена поддержка режима передачи DDR52 (Dual Data Rate 52 MHz), который по сравнению с обычным высокоскоростным режимом позволяет поднять скорость передачи с примерно 45 MB/s до 80 MB/s. Режим DDR52 присутствует в контроллерах, поставляемых в чипсетах Intel Apollo Lake, Bay Trail и Braswell. Поддержка eMMC и DDR52 уже добавлена в ветку FreeBSD 12 и в дальнейшем будет портирована в ветки FreeBSD 10 и 11;
- Продолжается развитие нового стека MMC/SD (https://bakulin.de/freebsd/mmccam.html), основанного на фреймворке CAM. Использование CAM позволяет задействовать уже хорошо проверенную модель организации блокировок и средства для отладки, а также делает возможным обработку прерываний при подключении карты, необходимую для реализации поддержки интерфейса SDIO. Например, SDIO исплльзуется во WiFi и Bluetooth модулях для многих плат, таких как Raspberry Pi 3.
Новый стек также позволяет использовать интерфейс CAM для отправки SD-команд из приложений в пространстве пользователя, что даёт возможность создавать драйверы устройств, работающие на уровне пользователя. Стек полностью протестирован на платах Beaglebone Black и Wandboard Quad, и готовится для включения в основной состав FreeBSD.
Вед...
URL: https://www.freebsd.org/news/status/report-2017-01-2017-03.html
Новость: http://www.opennet.me/opennews/art.shtml?num=46561