Отчёт о развитии 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;
  • Библиотека

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Отчёт о развитии FreeBSD за четвёртый квартал 2018 года», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.