Отчёт о развитии FreeBSD за четвёртый квартал 2018 года
25 марта 2019 года
Опубликован отчёт о развитии проекта FreeBSD с октября по декабрь 2018 года.
Основные достижения:
- Общие и системные вопросы
- Продолжено развитие инфраструктуры непрерывной интеграции, в которой проводится регулярное автоматизированное тестирование изменений и пересборка содержимого Subversion-репозитория проекта в Travis CI и Jenkins. За отчётный период была проведена работа по расширению окружения для выполнения тестов, расширению покрытия тестами кодовой базы и налаживанию сотрудничества по совместному тестированию с внешними проектами. Из планов отмечается добавление в CI сборки drm-портов в окружении ветки CURRENT, реализация автоматических тестов на невиртуализированном оборудовании (bare metal) и добавление тестов для отдельных веток, таких как clang800-import;
- FreeBSD Core Team одобрил план по переводу драйверов для 10 и 100 мегабитных сетевых адаптеров Ethernet в разряд устаревших;
- Размер собранных в прошлом году пожертвований превысил 1.3 млн долларов. Наиболее значительный вклад внесли компании Juniper, Netflix и Facebook, а также проект Handshake.org
- Трудоустроенные в организации FreeBSD Foundation инженеры выполнили работу по выявлению и исправлению узких мест в ядре и системных библиотеках, обеспечению сборки системы и портов с использованием утилиты Poudriere, добавлению встроенного в ядро загрузчика микрокода для CPU Intel, расширению изоляции системных утилит при помощи фреймворка capsicum, улучшению поддержи NUMA, внесению исправлений, связанных с компоновщиком lld (от LLVM) и компонентами инструментария ELF, обновлением OpenSSL до версии 1.1.1 и добавлением защиты Retpoline от атак Spectre;
- В дополнение к недавно добавленной в реализацию виртуальных терминалов поддержке установки цветовых схем (kern.vt.color.X.rgb tunables) пользователям предложена готовая коллекция из примерно 200 цветовых схем для различных терминалов. Для применения схем достаточно скопировать их параметры в /boot/loader.conf или /boot/loader.conf.local;
- Для ядра i386 предложена опция PAE_PAGETABLES, включающая поддержку нового формата таблиц страниц памяти, который ранее был доступен только в режиме PAE. Новый формат необходим для реализации поддержки не исполняемых страниц памяти (бит noexec) и увеличения адресуемой памяти (до 24G). Его применение без PAE позволит сохранить прежними структуры vm_paddr_t и bus_addr_t, т.е. обеспечить неизменными интерфейсы ядра и избежать нарушения совместимости с драйверми. Чтобы не распространять несколько сборок ядра i386 поддержка страниц памяти вынесена в отдельные модули - два модуля pmap, один для PAE и один для поддержки старых двухуровневых таблиц страниц памяти;
- Безопасность
- Добавлена поддержка механизма ключей защиты памяти Usermode Protection Keys, позволяющего приложениям разбить используемую память на зоны, применив к каждой зоне дополнительные ограничения, например, можно установить права при которых код может быть запущен, но не может быть прочитан. Механизм предоставляется в процессорах Intel Xeon на базе микроархитектуры Skylake;
- В гипервизор bhyve добавлена поддержка Live-миграции гостевых окружений с одного хоста на другой. Для управления переносом в bhyvectl добавлена опция "--migrate-live". В
bhyve также реализована функциональность Save/Restore, позволяющая заморозить гостевую систему с сохранением состояния в файл, а затем возобновить выполнение. При сохранении в разные файлы записывается образ памяти, метаданные для восстановления, состояние CPU и устройств. Для заморозки гостевой системы в bhyvectl добавлена команда "--suspend state_file", а для восстановления опция "-r" (используется вместе с "--suspend");
- Внесены улучшения во фреймворк Capsicum, предоставляющий механизмы ограничения использования приложениями определённых системных функций. В Casper, фоновый процесс для организации доступа к привилегированным операциям из режима повышенной изоляции, добавлен сервис fileargs для обращения к частям ФС из sandbox-окружения. Использование fileargs позволяет изолировать такие приложения, как brandelf, wc, savecore, head и strings, а также добавить в bhyve поддержку доступа к звуковым устройствам, изолированным при помощи Capsicum. Кроме того, добавлен
Casper-сервис private и реализована sandbox-изоляция процессов rtsold и rtsol , используемых для отправки сообщений ICMPv6 Router Solicitation;
- Добавлена поддержка устройств TPM 2.0 (Trusted Platform Module) с отдельным чипом и памятью для безопасных вычислений, которые обычно применяются для верифицированной загрузки прошивок и загрузчика ОС. Во FreeBSD TPM также может использоваться для усиления безопасности Strongswan IPsec, SSH и TLS за счёт выполнения криптографических операций на отдельном чипе;
- Для режима верифицированной загрузки UEFI Secure Boot реализована поддержка сертификатов X509. На базе библиотеки BearSSL для загрузчика EFI подготовлен код проверки цифровых подписей. Обеспечено извлечение списка разрешённых и запрещённых сертификатов из переменных окружения UEFI. Предоставленной функциональности достаточно для верифицированной загрузки ядра с использованием цифровой подписи на основе самостоятельно сгенерированного сертификата;
- Проходит рецензирование код с реализацией системы контроля целостности исполняемых файлов Veriexec, который скорее всего будет интегрирован с кодом для поддержки UEFI Secure Boot;
- Библиотека
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.