Отчёт о развитии FreeBSD за третий квартал 2017 года
26 декабря 2017 года
Опубликован отчёт о развитии проекта FreeBSD с июля по сентябрь 2017 года.
Основные достижения:
- Общие и системные вопросы
- Возобновлена разработка системного менеджера nosh (Архивная копия от 17 мая 2016 на Wayback Machine), включающего набор средств для инициализации, загрузки, ведения логов, управления фоновыми процессами и терминалами. 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.
Доступны возможности для определения порядка запуска сервисов, организации зависимостей между сервисами, обеспечения параллельного запуска сервисов, автоматической ротации логов, отслеживания работы сервисов и применения kevent для обеспечения событийно-ориентированного параллелизма. Система переносимая, не зависит от особенностей ядра и может применяться как в BSD-системах, так и в Linux.
С момента прошлого упоминания nosh в отчёте о развитии FreeBSD в 2015 году, проведена реструктуризация пакетов, позволившая сократить число конфликтов с другими инструментариями. Добавлен файл для автодополнения ввода к zsh. Улучшены подсистемы управления виртуальными терминалами, раскладкой клавиатуры, мышью, ugen и DECSCUSR. Добавлена возможность удалённой передачи логов (RFC 5424/5426). Представлено несколько вспомогательных команд. Добавлено автоматическое определение местоположения Java VM. Улучшены средства активации по обращению к сокету. Улучшена работа одноразовых сервисов. Добавлена поддержка псевдонимов (alias) сервисов. Улучшена работа привязанных к пользователю сервисов D-Bus. Улучшен импорт сервисов MySQL, MariaDB, Percona и OpenVPN, а также импорт конфигурации.
- Размер пожертвований за 2017 год составил 978 тысяч долларов от 859 участников, при поставленной цели в 1250 тысяч долларов.
- В рамках программы грантов завершены или находятся в разработке проекты по обеспечению поддержки OpenZFS RAID-Z, улучшению драйвера bhnd для беспроводных адаптеров Broadcom, обеспечению работы на плате Beaglebone Black в режиме без вывода на экран (headless), расширению возможностей гипервизора bhyve для ARMv7, портированию bhyve/ARM на системы ARMv8;
- Трудоустроенные в организации FreeBSD Foundation инженеры выполнили работу по улучшению ZFS, поддержке новых серверных платформ Intel, обновлению реализации kqueue, поддержке 64-разрядных inode, возможности сборки с защитой стека (Stack guard), поддержке сборки ядра в режиме выявления неопределённого поведения (Undefined Behavior Sanitizer), улучшению системного инструментария, портированию свежего кода графического драйвера i915, поддержке памяти NVDIMM в acpiconf, интеграции ФС FAT в makefs;
- Развивается инфраструктура непрерывной интеграции, в которой налажено регулярное автоматизированное тестирование в Travis CI и Jenkins содержимого Subversion-репозитория проекта. Введён в строй (Архивная копия от 12 июня 2019 на Wayback Machine) дополнительный тестовый сценарий на базе DTrace;
- Системы хранения и файловые системы
- Ведётся тестирование реализации расширения Parallel NFS (pNFS), которое позволяет организовать высокоскоростной обмен данными между машинами сети за счет возможности распараллеливания обращения к данным на нескольких хранилищах, а также разделения передачи потоков данных и мета-данных. Реализация включает модифицированное ядро и демон nfsd, которые можно использовать в окружениях, начиная с FreeBSD 11. В текущем виде можно запустить один сервер метаданных и несколько серверов хранения, с которыми могут работать любые клиенты NFSv4.1 с поддержкой pNFS File Layout. Сервера хранения могут зеркалироваться (Flex Files Layout) для обеспечения избыточности (средства оценки сбоев и восстановления зеркал пока отсутствуют);
- Поддержка оборудования
- Значительно улучшена поддержка процессоров AMD на базе микроархитектуры Zen (семейство 17h, CPU Ryzen, Threadripper, Epyc), в том числе в cpufreq добавлены средства для управления частотой и уровнями производительности, в amdtemp добавлена поддержка мониторинга температуры CPU, а в aesni поддержка механизмов ускорения вычисления хэшей SHA. Уровень поддержки Zen во FreeBSD оценен как пригодный для широкого использования на серверах и рабочих станциях. Из нереализованных особенностей остаются только поддержка счётчиков производительности и CCP (Crypto Co-Processor);
- Драйвер ixgbe для 10-гигабитных сетевых адаптеров Intel переведён на использование фреймворка iflib. Ведётся портирование на iflib драйвера ixl (40G чипы);
- Передан для рецензирования код драйвера для адаптеров Intel X722 (iw_ixl) с реализацией поддержки протокола iWARP (Internet Wide-area RDMA Protocol) для обеспечения удалённого прямого доступа к памяти. В дальнейшем планируется представить полную поддержку iWARP для систем на чипах Intel C620;
- Приложения и система портов
- Для FreeBSD-CURRENT (amd64) представлен порт graphics/drm-next-kmod, обеспечивающий работу DRM-модулей amdgpu, i915 и radeon, используя фреймворк linuxkpi, обеспечивающий совместимость с DRM API (Direct Rendering Manager) ядра Linux. В настоящее время порт соответствует состоянию подсистемы DRM ядра Linux 4.9. Несмотря на то, что порт экспериментальный, он вполне работоспособен на многих современных GPU, включая серию AMD HD7000 (от Tahiti до Polaris) и Intel HD3000 (от Sandy Bridge до Skylake);
- Дерево портов FreeBSD преодолело рубеж в 31600 портов (на 1600 портов больше, чем в прошлом отчёте), число незакрытых PR держится на отметке в 2671, из которых 718 неразобраны. За отчётный период внесено 5900 изменений от 175 разработчиков. Права коммиттера получили пять новых участников: Zach Leslie (zleslie@), Luca Pizzamiglio (pizzamig@), Craig Leres (leres@), Adriaan de Groot (adridg@), and Dave Cottlehuber (dch@). Четыре участника лишились права коммита в порты из-за длительной неактивности (alonso@), смерти ( ache@) или по собственному желанию (rpaulo@, kami@).
Удалены два новых USES-набора: execinfo (libexecinfo перенесён в базовую систему), twisted (остался лишь один порт Twisted). По умолчанию вместо GCC 5 в портах теперь предлагается GCC 6. Обновлены порты с Firefox и Chromium. Пакетный менеджер pkg обновлён до выпуска 1.10.1. Улучшена работа флагов USE_GITHUB и SHEBANG_FILES.
- Принято решение исключить из базовой системы утилиты rlogin, rsh, rcp, ruptime и rwho, которые объявлены устаревшими и давно вытеснены инструментарием SSH. Указанные команды не войдут в состав выпуска FreeBSD 12, но их можно будет отдельно установить из порта net/bsdrcmds;
- Добавлены порты с компонентами платформы OpenJFX, в рамках которого развивается полностью открытый вариант JavaFX для разработки пользовательских и встраиваемых приложений на базе JavaSE. В том числе добавлен порт с графическим интерфейсом для построения сцен. По умолчанию для задействования ускорения GPU включен бэкенд OpenGL Prism;
- Создана команда разработчиков puppet@, которая взяла на себя сопровождение около 30 портов, связанных с системой управления конфигурацией Puppet. В дерево портов добавлен выпуск Puppet 5 (sysutils/puppet5). В качестве замены варианта Facter, написанного на языке Ruby (sysutils/rubygem-facter), предложена версия Facter на C++ (sysutils/facter). Ведётся работа по добавлению в порты Puppetserver 5;
- Началась работа по замене в базовой системе Heimdal Kerberos на MIT Kerberos, которая обеспечивает более полную совместимость с решениями от Microsoft и Red Hat;
- Порт devel/gdb обновлён до GDB 8.0.1. В основную кодовую базу GDB включены подготовленные разработчиками FreeBSD патчи с поддержкой $_siginfo (необходимы для извлечения информации о сигналах из core-файлов) и исправления для поддержи приложений в окружении FreeBSD/aarch64 (патчи для отладки ядра FreeBSD/aarch64 пока доступны через порт). На этапе рецензирования находятся патчи с поддержкой FreeBSD/arm. В ветке FreeBSD 12 проведена работа по обеспечению отладки core-дампов и VFP-регистров через ptrace().
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.