После восьмимесячного перерыва возобновлена публикация отчётов о развитии проекта FreeBSD. Доступен отчёт с апреля по июнь 2012 года. В конце февраля планируется опубликовать отчёт с июля по декабрь 2012 года.
Основные достижения:
- Система
- Во FreeBSD 10-CURRENT по умолчанию задействован распространяемый под лицензией BSD вариант утилиты sort (bsdsort),
написанный с целью замены GNU sort. Новая утилита близка по
производительности и совместима c утилитой sort из состава пакета GNU
coreutils 8.15, за исключением поддержки многопоточности, которая пока
отключена по умолчанию. Из планов на будущее отмечается повышение
стабильности работы в многопоточном режиме и вынос базовой
функциональности в отдельную библиотеку libsort, которую смогут
использовать и другие утилиты;
- В дерево портов добавлен (sysutils/fsc) проект FSC
(FreeBSD Services Control), в рамках которого развиваются похожие на
Solaris SMF и daemontools инструменты для управления и мониторинга
работой системных сервисов. Для контроля за работой сервисов
используется фоновый процесс fscd, сервисы добавляются при помощи
утилиты fscadm. В случае аварийного завершения работы сервиса, fscd
распознает падение процесса и запускает сервис вновь. По сравнению со
сторонними пакетами, такими как daemontools, система FSC имеет несколько
преимуществ, например fscd использует push-нотификацию вместо поллинга
(отправляет уведомления, не требуя периодического опроса состояния).
Кроме того, fscd является внутренней подсистемой, легко интегрируемой в
rc.d-инфраструктуру FreeBSD и полностью поддерживаемой разработчиками
(daemontools является неподконтрольным портом для которого можно лишь
поддерживать набор патчей). В новой версии FSC добавлены дополнительные
возможности, связанные с управлением сервисами, загрузкой системы и
упрощением процесса;
- Продолжается работа по замене устаревшей реализации регулярных выражений в libc на библиотеку TRE,
распространяемую под лицензией BSD, поддерживающую многобайтные
символы, совместимую с POSIX и работающую не хуже других альтернатив.
Близится к завершению разработка нового эвристического метода выявления
соответствий с поддержкой поиска по множественным шаблонам
(multi-pattern), который отличается заметным ускорением поиска по
шаблонам. Проведён существенный рефакторинг кода проекта. Решено
выделить из TRE оптимизации и расширения, реализовав их в виде
отдельного изолированного уровня. Из планов на будущее отмечается
добавление поддержки возможностей, специфичных для GNU grep, а также
проведение тестирования на предмет соответствия стандартам и
корректности работы;
- Сетевая подсистема
- Подготовлен и готовится к публикации код с начальной реализацией MPTCP
(Multipath TCP) для ядра FreeBSD, что позволит организовать работу
TCP-соединения с доставкой пакетов одновременно по нескольким маршрутам,
что может использоваться как для увеличении надёжности, так и для
расширения пропускной способности. Основной целью проекта является
создание платформы для исследования особенностей передачи данных с
мультиплексированием нескольких маршрутов (multipath) в плане применения
различных алгоритмов управления перегрузкой, стратегий повторной
отправки пакетов и выработки правил планирования отправки пакетов.
Кроме того, разработчики намерены обеспечить полную совместимость с
реализацией MPTCP, развиваемой для ядра Linux.
- Близится к завершению проект
обеспечению распараллеливания на SMP-системах пакетного фильтра PF
(сейчас PF зависит от единого мьютекса и является по сути однопоточным).
После завершения тестирования и изучения производительности
многопоточный PF будет интегрирован во FreeBSD HEAD;
- Поддержка оборудования
- Во FreeBSD/arm обеспечена
возможность работы на платформе ARM Fast Models в режиме симуляции SoC
на базе многоядерного процессора Cortex-A15. В настоящее время
обеспечена загрузка в однопользовательский режим с использованием
RAM-диска с минимальным корневым окружением. Реализована поддержка L1 и
L2 кэшей, двухядерных конфигураций, встроенного базового таймера, UART и
контроллера прерываний. Пока не поддерживается задействование четырёх
ядер CPU и загрузка в многопользовательском режиме;
- Во FreeBSD/at91
проведена работа по
упрощению реализации поддержки новых SoC Atmel за счёт ведения
унифицированной базы .dsti-файлов с описанием особенностей чипов;
- Приложения и система портов
-
Дерево портов FreeBSD приближается к отметке в 24 тысячи портов, число
незакрытых PR держится на уровне 1200. Проведена миграция дерева портов с
CVS на систему контроля версий Subversion;
- Продолжается совершенствование
проекта Portbuilder
(ports-mgmt/portbuilder), предназначенного для организации параллельной
одновременной сборки разных портов в несколько потоков. В процессе
сборки имеется возможность контролировать нагрузку на систему через
top-подобный интерфейс. Тестирование сборки порта KDE (x11/kde4) с
использованием Portbuilder показало ускорение на 51%, время сборки
уменьшилось с 4 часов 47 минут до 2 часов 21 минут. С момента прошлого
отчёта выпущено два значительных и четыре корректирующих релиза
portbuilder. Добавлена поддержка пакетного менеджера pkgng,
обеспечена возможность установки пакетов из репозиториев, возможность
определения параметров через /etc/make.conf, создан новый фреймворк для
парсинга опций (OptionsNG);
- Проведена работа по обновлению версий компонентов
X.Org в портах. В порты помещён X.Org 7.5.2, обновлены драйверы, в том
числе пакет Mesa и драйвер xf86-video-intel. Для сборки новой версии
X.Org следует в /etc/make.conf использовать опцию WITH_NEW_XORG, для
активации KMS для драйверов Intel нужно указать WITH_KMS;
- Прогресс в адаптации новых версий десктоп-оболочки
KDE и Qt для FreeBSD. В порты помещены свежие релизы: KDE SC 4.8.4 (4.9 в
экспериментальном репозитории area51),
Qt 4.8.2, CMake 2.8.8, PyQt 4.9.1, KDevelop: 2.3.1, KDevPlatform 1.3.1,
Calligra 2.4.3, Digikam 2.6.0, Amarok: 2.5.90 (в area51). По данным
сервиса PortScout доступно 393 связанных с KDE порта, из которых 91% содержат свежие версии приложений;
- Расширены возможности redports.org,
сервиса для разработчиков, коммитеров и мэйнтейнеров портов FreeBSD .
Сервис позволяет организовать автоматическую сборку портов для различных
архитектур и версий FreeBSD. Добавлены две дополнительные машины
сборки, решены проблемы со стабильностью работы;
|