Реализована возможность сборки FreeBSD в других операционных системах
22 октября 2020 года
Разработчики FreeBSD опубликовали отчёт о развитии проекта с июля по сентябрь 2020 года. Наиболее существенным достижением стала реализация возможности сборки базовой системы FreeBSD в окружениях на основе других операционных систем. Необходимость сборки в других операционных системах обусловлена желанием задействовать для тестирования FreeBSD инструментарии непрерывной интеграции, завязанные на Linux или macOS.
Работа по реализации кросс-сборки продолжалась с 2017 года и в сентябре был включён последний патч, необходимый для полноценной работы buildworld и buildkernel в других ОС. Сборка запускается при помощи специально подготовленной прослойки ./tools/build/make.py и может быть произведена в системах с установленным LLVM 10 или 11.
Среди других изменений:
- На основе грантов от организации FreeBSD Foundation развиваются такие проекты, как улучшение поддержки WiFi, усовершенствование фреймворка Linux KPI для совместимости с DRM API ядра Linux, расширение совместимости Linuxulator с приложениями, обновление графических драйверов, добавление сжатия Zstd в OpenZFS, расширение разделов RAID-Z на лету, улучшение поддержки LLDB. Сотрудники FreeBSD Foundation также работают над усовершенствованием компоновщика rtld (Run-Time Dynamic Linker) и загрузчика ELF, улучшением блокировок для UNIX domain socket, модернизацией сборочной инфраструктуры, расширением поддержки ARM64 и миграцией репозитория на Git.
- Завершена разработка скриптов и сборочных инструментов для миграции с Subversion на Git. Все известные проблемы в svn2git решены, в том числе проблемы с несогласованностью метаданных в истории изменений из Subversion. Опробован новый Git-репозиторий и запущена сборка снапшотов веток 12.2 и 13.0-CURRENT из Git. Окончательный переход на Git будет осуществлён при подготовке релиза FreeBSD 13.0. Разработку существующих стабильных веток на Git переводить пока не планируют.В конце октября планируют запустить тестовый Git-репозиторий для обкатки хуков и ознакомления разработчиков. Перевод на Git основных репозиториев src и doc ожидается в середине ноября, сроки по переносу репозиториев портов пока не определены.
- Коллекция портов FreeBSD преодолела рубеж в 40 тысяч портов, число незакрытых PR составляет 2525, из которых 595 PR ещё не разобраны. Обновлены версии Perl 5.32, PostgreSQL 12, PHP 7.4, GNOME 3.36, Qt5 5.15.0, Emacs to 27.1, KDE Frameworks 5.74.0 и pkg 1.15.8. Реализована поддержка LibreOffice 7.0.
- Обновлены компоненты графического стека. Mesa и связанные порты переведены на использование сборочной системы meson вместо autotools. Обновлены X.org Server 1.20.9, libdrm и libevdev. графические драйверы drm синхронизированы с ядром Linux 5.4.62. В кодовые базы libdrm и libevdev приняты изменения для поддержки FreeBSD. Проведена работа по использованию udev/evdev и libinput для повышения совместимости с устройствами ввода, для которых теперь не требуются локальные настройки. Изменение будет предложено в выпуске FreeBSD 12.2, ожидаемом 27 октября.
- В инфраструктуре эмуляции окружения Linux (Linuxulator) началась работа по решению проблем с функционированием конкретных Linux-приложений (например, ведётся разбор причин неработоспособности Chromium, Firefox, DB2, Oracle, EAGLE, Memcached, Nginx, Steam, signal-desktop, VLC, 1password). За отчётный период объявляемая эмулятором версия ядра Linux повышена до 3.10.0 (как в RHEL 7), налажена работа вызова gettynam в chroot, улучшена поддержка memfd, добавлены системный вызов splice и ioctl BLKPBSZGET, реализована поддержка kcov. Добавлен новый sysctl compat.linux.use_emul_path. Переделана обработка ошибок. До версии 1.0.123 обновлён порт sysutils/debootstrap для создания изолированных окружений с Debian и Ubuntu. Изменения будут включены в состав выпуска 12.2.
- Файлы DTS (Device Tree Sources) синхронизированы с ядром Linux 5.8 в ветке HEAD и с ядром 5.6 в ветке 12-STABLE.
- Продолжается работа по реализации возможности работы NFS поверх шифрованного канала связи на базе TLS 1.3, вместо использования Kerberos (режим sec=krb5p), который ограничивается шифрованием только RPC-сообщений и реализуется только программно. Новая реализация использует предоставляемый ядром стек TLS, позволяющий задействовать средства аппаратного ускорения. Код NFS поверх TLS готов для тестирования, но поддержка TLS пока ограничена версией 1.2.
- Ведётся работа по реализации подсистемы XDP (eXpress Data Path), позволяющей запускать еBPF-программы на уровне сетевого драйвера с возможностью прямого доступа к DMA-буферу пакетов.
- В IPSec добавлена поддержка ESN (Extended Sequence Number).
- Ведётся работа по поддержке SoC NXP LS1046A на базе ARMv8 Cortex-A72.
- Развивается драйвер ure для гигабитных ethernet-адаптеров RealTek RTL8153 с интерфейсом USB 3.0.
- Во FreeBSD-CURRENT добавлена экспериментальная поддержка little-endian архитектуры PowerPC64 (PowerPC64LE) для систем POWER8 и POWER9.
- В беспроводном стеке улучшена поддержка 802.11n и 802.11ac. Развивается драйвер athp для чипов Atheros 802.11ac, основанный на коде проекта ath10k. В прослойке LinuxKPI обеспечена начальная поддержка беспроводных драйверов.
- Завершена работа по интеграции алгоритма сжатия ZSTD в OpenZFS. Изменения уже переданы в репозиторий OpenZFS и войдут в состав выпуска OpenZFS 2.0.
- Продолжается работа над CheriBSD, ответвления от FreeBSD для исследовательской процессорной архитектуры CHERI (Capability Hardware Enhanced RISC Instructions). Уже почти готова адаптация для процессора ARM Morello, который будет поддерживать систему управления доступом к памяти CHERI, основанную на модели защиты проекта Capsicum. Чип Morello планируют выпустить в 2021 году. Продолжается развитие CheriBSD для эталонного прототипа CHERI на базе архитектуры MIPS64 и порта для архитектуры RISC-V.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.