Представлен (http://www.freebsd.org/news/status/report-2014-01-2014-03.html) отчёт о развитии проекта FreeBSD с января по март 2014 года.Основные достижения:
-
Система
- Продолжается работа по внедрению системы непрерывной интеграции Jenkins (http://jenkins-ci.org/) в процесс разработки FreeBSD. Введены в строй два виртуальных сборочных сервера jenkins-9.FreeBSD.org и jenkins-10.FreeBSD.org, а также сайт jenkins.freebsd.org (https://jenkins.freebsd.org/) с отчётами о результатах сборки. В настоящее время обеспечены постоянные пересборки FreeBSD HEAD и некоторых веток STABLE. В случае выявления проблем при сборке уведомления автоматически отправляются в списки рассылки freebsd-current и freebsd-stable, а также напрямую разработчикам, осуществлявшим коммиты с момента последней успешной сборки. Инфраструктура непрерывной интеграции основана на системе, уже опробованной компанией iXsystems при разработке дистрибутива FreeNAS. Интересно, что внедрение новой системы позволило выявить выявить сбой в подсистеме виртуальной памяти, проявлявшийся в виде краха ядра во FreeBSD 9.2 и отдельных крахах Java-процессов во FreeBSD 10 при выполнении Jenkins. В дальнейшем планируется увеличить число веток, конфигураций и портов, проверяемых в системе непрерывной интеграции, а также обеспечить выполнение после сборки тестов kyua.
- Во FreeBSD HEAD приняты наработки проекта по обеспечению поддержки (https://wiki.freebsd.org/UEFI) загрузки FreeBSD на системах с UEFI. Проведена адаптация загрузчика и процесса загрузки ядра FreeBSD для обеспечения совместимости с прошивками UEFI, применяемыми на выпускаемых ноутбуках, ПК и серверах. Поддержку загрузки и установки на системы с UEFI планируется реализовать в выпуске FreeBSD 10.1. Из планов отмечается реализация поддержки UEFI Secure Boot и интеграция настройки UEFI в инсталлятор.
- В ветки stable/10 и stable/9 интегрирована поддержка подсистемы vt, развиваемой в рамках проекта Newcons (http://svn.freebsd.org/base/user/ed/newcons/) и пришедшей на смену syscons. Vt предоставляет новый интерфейс для обеспечения вывода через графические устройства, позволяющий организовать доступ простых драйверов к консоли и терминальному режиму, а также доступ к фреймбуферу для X.Org. При этом от драйвера не требуется встраивание шрифтов, цветовых карт и изображений курсоров мыши, все эти компоненты предоставлены Newcons-драйвером vt. Проект также включает интеграцию с модулями KMS (Kernel Mode Setting), что позволит добиться поддержки современных релизов X.Org и обеспечить корректный возврат к режиму виртуального терминала после смены видеорежима средствами X.Org. Среди возможностей отмечается поддержка мыши, KMS (i915kms и radeonkms), USB-клавиатур, экрана-заставки, vidcontrol, Unicode, xterm-подобная эмуляция терминала, использование различных шрифтов в разных окнах терминала. В настоящий момент vt находится на стадии повсеместного тестирования для архитектур ARM, i386 и amd64 и может быть активирован пересборкой ядра с заменой опций "device sc" и "device vga" на "device vt" и "device vt_vga". После завершение тестирования планируется переход на vt по умолчанию.
- Улучшена поддержка (https://wiki.freebsd.org/ExternalToolchain) использование внешнего инструментария Clang, что позволяет по аналогии GCC одновременно применять для сборки ядра и базовой системы разные версии Clang.
- Развивается инициатива по портированию для более новых выпусков GCC, доступных в портах lang/gcc*, возможностей и исправлений, созданных разработчиками FreeBSD, но по тем или иным причинам не принимаемых в upstream. Например, необходимо портирование дополнения для проверки форматирования кода ядра FreeBSD.
- В рамках проекта FreeBSD Test Suite (https://wiki.freebsd.org/TestSuite) продолжается работа по внедрению средств для обеспечения тестирования качества кода в процессе разработки FreeBSD. Роль базового инструмента для организации автоматизированного тестирования выполняет фреймворк kyua (http://code.google.com/p/kyua/) (devel/kyua). Сценарии тестирования размещаются в каталоге /usr/tests/. Для разработчиков формируемый тестовый набор позволяет постоянно контролировать качество кодовой базы и оперативно выявлять регрессивные изменения, для пользователей появляется возможность проверки корректности работы внедрённых программных и аппаратных конфигураций. За отчётный период добавлена большая порция новых тестов и портированы старые тесты src/tools/regression/. Число тестов доведено до 509. Синхронизированы тестовые наборы в ветках HEAD и stable/10. В кластер тестирования добавлены системы для выполнения сборки для архитектуры i386. Из планов на будущее отмечается включение сборки тестового набора по умолчанию, улучшение HTML-отчётов и создание системы предупреждения в случае нарушения работы отдельных тестов.
- Проведена работа по устранению ошибок и наращиванию функциональности отладчика LLDB (https://wiki.freebsd.org/lldb), развиваемого (http://www.opennet.me/opennews/art.shtml?num=26907) проектом LLVM. LLDB пока не собирается по умолчанию и требует отдельной сборки с указанием "WITH_LLDB=" в src.conf. По сравнению с прошлым отчётом добавлена поддержка аппаратных точек останова, улучшена поддержка протокола удалённой отладки, в debuggee реализованы очереди libdispatch (GCD), добавлена настройка "step-avoid-libraries", началась работа над консольным GUI. Из планов на будущее отмечается добавление LLDB в порты, реализация совместимого с gdb протокола удалённой отладки, обеспечение поддержки отладки ядра и включение по умолчанию в базовую систему для поддерживаемых архитектур.
-
Изолированные окружения, эмуляторы, безопасность и ограничения ресурсов
- Для всех архитектур обеспечена поддержка технологии ASLR (Address space layout randomization) для защиты от некоторых видов атак, манипулирующих переполнением буфера. Тем не менее, полноценно ASLR (http://ru.wikipedia.org/wiki/Address_Space_Layout_Randomization) пока поддерживается только для amd64, например, для ARM и sparc64 ещё предстоит устранить несколько ошибок. Из других средств защиты отмечается интеграция в некоторые приложение поддержки технологии PIE (http://en.wikipedia.org/wiki/Position-independent_code) (Position-Independent Executables).
- Началась разработка инфраструктуры для поддержки технологии PCI SR-IOV (PCI Single Root I/O Virtualization), нацеленной на предоставление средств для аппаратной акселерации виртуализации устройств PCIe. При использовании SR-IOV на базе физической функции PCI-устройства (PF, Physical Function) реализуется серия виртуальных PCI-функций (VF) на шине PCI, который выступают в роли независимых устройств PCI, имеющих доступ к ресурсам PF. В контексте систем виртуализации гипервизор, такой как bhyve, может использовать VF для организации проброса PCI-устройства в несколько гостевых окружений для организации совместного доступа без применения дополнительных прослоек. В настоящее время выполнена работа по проектированию универсального API для интеграции поддержки PCI SR-IOV в различные драйверы и ведётся работа по добавлению поддержки PCI SR-IOV в драйвер ixgbe.
- Продолжается работа по улучшению реализации гипервизора BHyVe (http://www.bhyve.org/), изначально разработанного компанией NetApp и поставляемого в базовом составе FreeBSD 10. Для работы BHyVe требуется система с процессором Intel, поддерживающим аппаратные средства виртуализации VT-x и EPT (Extended Page Tables). Из возможностей можно отметить проброс PCI-устройств, доступ к содержимому виртуальной машины через специальное блочное устройство, возможность назначения нескольких CPU гостевой системе. В качестве гостевых систем могут запускаться системы для которых имеются драйверы VirtIO для паравиртуализации ввода/вывода, в том числе различные версии FreeBSD, свежие сборки OpenBSD и системы GNU/Linux (CentOS, Debian, Ubuntu, openSUSE).
Текущая работа сосредоточена на обеспечении поддержки запуска в гостевом режиме 64-разрядных сборок различн...
URL: http://www.freebsd.org/news/status/report-2014-01-2014-03.html
Новость: http://www.opennet.me/opennews/art.shtml?num=39613