Отчёт о состоянии развития FreeBSD за первый квартал 2013 года

14 мая 2013 года

Представлен отчёт о развитии проекта FreeBSD с января по март 2013 года. В указанный период наиболее важными событиями стали подготовка выпуска 8.4-RELEASE, восстановление сборки бинарных пакетов, обеспечение поддержки плат Cubieboard и Hackberry, прогресс в портировании новых выпусков X.Org, GNOME, KDE и Xfce, разработка поддержки GPU AMD, увеличение производительности UFS/FFS, реализация поддержки multipath TCP в сетевом стеке.

Одновременно сообщается о возобновлении доступа к бинарным пакетам, которые полгода назад были убраны из публичного доступа в связи с обнаружением следов взлома двух серверов, участвующих в сборке пакетов.

Основные достижения:

  • Сетевая подсистема
  • Доступны первые три выпуска реализации MPTCP (Multipath TCP) для ядра FreeBSD. MPTCP позволяет организовать работу TCP-соединения с доставкой пакетов одновременно по нескольким маршрутам, что может использоваться как для увеличении надёжности, так и для расширения пропускной способности. Код отмечен как имеющий качество альфа-выпуска, готового для начальных экспериментов и тестирования. В дальнейшем разработчики намерены обеспечить полную совместимость с реализацией MPTCP, развиваемой для ядра Linux. Основной целью проекта является создание платформы для исследования особенностей передачи данных с мультиплексированием нескольких маршрутов (multipath) в плане применения различных алгоритмов управления перегрузкой, стратегий повторной отправки пакетов и выработки правил планирования отправки пакетов. В настоящее время ведётся работа по перемещению разработки в SVN репозиторий FreeBSD и ежедневному формированию готовых тестовых iso-образов с преднастроенной для работы MPTCP сборкой FreeBSD;
  • Поддержка расширения TCP-AO (TCP Authentication Option, RFC5925, RFC5926), позволяющего использовать цифровые подписи TCP-MD5 для аутентификации сеанса, например, для защиты от спуффинга сеансов BGP на маршрутизаторах;
  • Системы хранения и файловые системы
  • Выполнена работа по оптимизации производительности файловых систем UFS/FFS. Наиболее заметным улучшение стало значительное ускорение выполнения полной проверки целостности ФС утилитой fsck, а также ускорение случайного доступа к большим файлам и увеличение скорости прохождения по дереву директорий. Ускорение достигнуто за счёт более активного кэширования и оптимизации размещения метаданных на диске (метаданные размещаются рядом со связанными с ними блоками inode). Наработки уже интегрированы в ветку HEAD и в течение мая запланированы для включения в ветки 9-STABLE и 8-STABLE.
  • Проект по созданию нативного iSCSI стека расширен и помимо iSCSI Target теперь включает новую реализацию iSCSI Initiator. По сравнению с ранее поставляемым iSCSI Initiator, новый вариант отличается более высокой надёжностью и производительностью, он также гораздо проще в администрировании. Для упрощения миграции со старого iSCSI Initiator в новом обеспечена совместимость на уровне файлов конфигурации. Что касается реализации iSCSI Target, то она проверена на совместимость со многими iSCSI Initiator, доступными для FreeBSD, Linux, Solaris, Windows и VMWare ESX. Из планов на будущее отмечается проведение оптимизации производительности и реализация поддержки RDMA;
  • Для FreeBSD портирована реализация файловой системы UDF, развиваемая проектом NetBSD. Возможности порта пока ограничены доступом только на чтение. ФС UDF обычно используется на дисках CD, DVD и Blu-Ray. В отличие от ранее доступной во FreeBSD реализации UDF, новый порт поддерживает версию UDF 2.60 вместо устаревшего UDF 1.5, обеспечивает возможность переопределения прав доступа, владельца и группы для всех файлов/директорий через указание опции монтирования;
  • Изолированные окружения, эмуляторы, безопасность и ограничения ресурсов
  • Представлен рабочий прототип реализации поддержки аккаунтинга ввода/вывода блочных устройств, выполненной на базе фреймфорка RACCT, используемого для аккаунтинга и лимитирования потребления ресурсов;
  • Система
  • В core-файлы, создаваемые при крахе пользовательских процессов, обеспечено помещение дополнительной информации от ядра системы, которую для работающего процесса можно посмотреть через команду procstat. Например, теперь сохраняется список открытых дескрипторов и состояние лимитов на ресурсы. В дальнейшем возможность извлечения из core-файла сохранённого во время краха среза состояния будет добавлена в libprocstat и доступна для просмотра через procstat. Связанные с указанной возможностью изменения уже добавлены в HEAD и ожидают помещения в stable/9;
  • Реализация атомарной установки флага "close-on-exec" для предотвращения утечки файловых дескрипторов в дочерние процессы при вызове fork() и exec() в нитях и обработчиках сигналов. В настоящее время флаг уже атомарно устанавливается в функциях recvmsg(), socket(), socketpair() и posix_openpt();
  • Реализован новый программный интерфейс callout_*(), который предлагается использовать в ядре вместо timeout()/untimeout() для организации вызова функций в определённый момент в будущем. Новая реализация решает проблемы с вызовом событий с высокой точностью и устраняет зависимость от периодических структур, приводящих к лишним пробуждениям процессора, которые приводят к повышению энергопотребления. Более точный вызов событий актуален для таких применений, как VoIP, приложения режима реального времени и высокопроизводительные сетевые операции;
  • Поддержка оборудования
  • Продолжается активная разработка проекта по добавлению во FreeBSD поддержки переключения видео-режимов на уровне ядра (Kernel Mode Setting) для видеокарт AMD. В целом драйвер уже более-менее работоспособен, позволяет запустить X-сессию, управлять параметрами мониторов через xrandr, обеспечивает работу большинства не использующих OpenGL приложений, в том числе даёт возможность просматривать видео. В ветку FreeBSD 10-CURRENT принят код с реализацией механизма управления видеопамятью TTM (Translation Table Maps), значительно улучшена поддержка Video BIOS, устранены проблемы при подключении монитора через DVI и HDMI и чтения параметров EDID, ведётся работа по бэкпортированию драйвера для ветки 9-STABLE. Областью ещё не готовой для тестирования, в которой остаются нерешённые проблемы, является поддержка OpenGL;
  • Началась работа по реализации во FreeBSD/arm поддержки средств для манипуляции страницами памяти большого размера (SuperPages), поддерживаемыми процессорами ARMv7. Необходимость поддержки SuperPages обусловлена тенденциями выхода ARM-систем на серверный рынок. Поддержка данной технологии позволит увеличить эффективность и производительность работы FreeBSD на серверных ARM-системах, благодаря обеспечению средств трансляции TLB для динамического покрытия больших областей памяти;
  • Осуществлён переход на Clang в качестве компилятра по умолчанию для порта FreeBSD/ARM. Выявленные в процессе адаптации clang проблемы переданы вместе с патчами для исправления в upstream.
  • В состав FreeBSD CURRENT включён начальный порт для Allwinner A10 SoC, позволяющий запустить FreeBSD на таких платах, как Cubieboard и Hackberry. Из периферии поддерживается USB EHCI и GPIO, в ближайшее время планируется обеспечить работу EMAC Ethernet и других драйверов;
  • Приложения и система портов
  • Добавлен новый порт i386-wine, обеспечивающий возможность запуска 32-разрядной версии Wine (и 32-разрядных программ для Microsoft Windows) на 64-разрядной системе FreeBSD/amd64;
  • Дерево портов FreeBSD преодолело отметку в 24,300 портов, число незакрытых PR держится на уровне 1600. После завершения аудита последствий инцидента нарушения безопасности, возвращён к работе сайт redports.org и сервис Tinderbox. Официально прекращено распространение дерева портов через CVS, оставлен только доступ через систему контроля версий Subversion;
  • Выпущено обновление FreeNAS 8.3.1, которое базируется на FreeBSD 8.3 и поддерживает ZFSv28. Из наиболее важных изменений по сравнению с прошлым выпуском отмечается реализация поддержки шифрования разделов ZFS. Кроме того, в новом выпуске проведена работа по увеличению удобства работы в web-интерфейсе, обновлена реализация iscsi target, в поставку включены драйверы Virtio, обновлена версия пакета Samba, добавлена функция инициализации дисков c заполнением случайным набором данных. Версия FreeNAS 8.3.1 является последним выпуском на базе FreeBSD 8.x. В настоящее время ведётся работа по миграции на ветку FreeBSD 9.X, обеспечению поддержки NFSv4, добавлению средств для настройки HAST в web-интерфейс, интеграции новой реализации iSCSI target;
  • Проведена адаптация новых версий десктоп-оболочки KDE и фреймворка Qt для FreeBSD. В порты помещены релизы KDE SC 4.9.5, 4.10.1, Qt: 5.0.0 (area51) и 4.8.4, KDevelop 4.4.1, Calligra 2.6.2, Amarok 2.7.0,

Digikam (+ KIPI-plugins) 3.1.0 (area51), QtCreator 4.6.1 и KDE Telepathy 0.6.0 (area51). По данным сервиса PortScout(недоступная ссылка) доступен 431 связанный с KDE порт, из которых 93.5% портов содержат свежие версии приложений;

  • В портах обновлены компоненты элементами десктоп-окружения Xfce: tumbler 0.1.27, Parole 0.5.0, xfdesktop 4.10.2, Midori 0.4.9/0.5.0, Orage 4.8.4 и xfce4-terminal 0.6.1;
  • В порты интегрированы новые версии библиотек Glib 2.34, Gtk+ 2.24.17 и Gtk+ 3.6.4. Обновлены связанные с GNOME компоненты, такие как libsoup, gobject-introspection, atk, vala, telepathy stack и empathy. Началась работа по обновлению порта GNOME до версии 3.6. Подготовлен порт с окружением Mate 1.6, который в скором времени будет включён в составе штатного дерева портов;
  • Добавлен порт с графическим стеком на базе X.Org 7.7. Ведётся работа по переносу в порты новых версий MESA и xorg-server. В долгосрочной перспективе планируется обеспечение поддержки Wayland;
  • Добавлен порт с PyPy 2.0, высокопроизводительной реализацией языка Python, написанной на языке Python.
  • Разное
  • Введена в строй новая поисковая система по исходным текстам FreeBSD, OpenBSD, NetBSD и DragonFly BSD - bxr.su (BSD Cross Reference). Сервис представляет собой модифицированный и улучшенный движок OpenGrok, переписанный для работы с nginx. Проект отличается от предыдущих установок OpenGrok тем, что поиск работает в 200 раз быстрее (например, чем code.metager.de), а адреса индивидуальных файлов и поисковых запросов являются намного более короткими, понятными и лаконичными;
  • Запущен сайт mdoc.su для быстрого проброса на системные руководства FreeBSD, NetBSD, OpenBSD и DragonFly через Web. Формат запроса - "mdoc.su/система/имя[.раздел]", например, "http://mdoc.su/f/ls" для просмотра "man ls" из состава FreeBSD. Логика работы сайта целиком определена средствами nginx (см. файл конфигурации).
  • Обновлена инфраструктура проекта по подготовке документации. Осуществлён переход на DocBook 4.5, для генерации вывода XHTML задействован XSLT вместо DSSSL, обеспечена генерация PDF;
  • Рассматривается вопрос внедрения альтернативной системы обработки информации об ошибках. В качестве основных кандидатов называются системы Bugzilla и roundup.

Источники

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

Комментарии

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