Отчет о состоянии развития FreeBSD за четвертый квартал 2010 г
26 января 2011 года
Представлен отчет о развитии проекта FreeBSD с октября по декабрь 2010 года.
Основные достижения:
Система
- Представлен проект по созданию новой программы установки BSDInstall, выступающей в роли замены ранее доступных sysinstall и pc-sysinstall. BSDInstall отличается модульностью, простотой подключения расширений, поддержкой управляющих установкой скриптов и ускорением выполнения процесса инсталляции. В настоящее время BSDInstall уже почти готов и может использоваться для архитектур i386, amd64, sparc64, powerpc, powerpc64 и PC98.
В настоящий момент реализовано:
- Возможность установки на GPT-диски;
- Поддержка установки, охватывающей несколько дисков;
- Поддержка установки внутрь jail-окружений;
- Поддержка упрощенного PXE-режима установки;
- Дружественность к системам виртуализации, например, можно произвести установку в дисковый образ из работающей системы;
- Поддержка платформы PowerPC;
- Значительное ускорение процесса установки системы;
- Гибкое управление установкой через написание скриптов;
- Возможность простой реализации мелких настроек;
- Установочный CD выступает в роли LiveCD.
Еще не реализовано:
- Режим настройки параметров беспроводной сети;
- Поддержка установки на ZFS-разделы.
- В рамках проекта FSC (FreeBSD Services Control) продолжена работа по подготовке похожих на Solaris SMF и daemontools инструментов для управления и мониторинга работой системных сервисов. Для контроля за работой сервисов используется фоновый процесс fscd, сервисы добавляются при помощи утилиты fscadm. В случае аварийного завершения работы сервиса, fscd распознает падение процесса и запускает сервис вновь. По сравнению со сторонними пакетами, такими как daemontools, система FSC имеет несколько преимуществ, например fscd использует push-нотификацию вместо поллинга (отправляет уведомления, не требуя периодического опроса состояния), fscd является внутренней подсистемой, легко интегрируемой в rc.d-инфраструктуру FreeBSD и полностью поддерживаемой разработчиками (daemontools является неподконтрольным портом для которого можно лишь поддерживать набор патчей). В настоящее время базовый код FSC готовится для интеграции в дерево исходных текстов FreeBSD. Для упрощения тестирования связанные с FSC утилиты будут добавлены в дерево портов;
Сетевая инфраструктура
- Подготовлен первый выпуск проекта DIFFUSE (DIstributed Firewall and Flow-shaper Using Statistical Evidence), добавляющего в пакетный фильтр IPFW функции классификации IP-трафика на основании статистических данных. Патчи уже доступны для FreeBSD-CURRENT. Система позволяет для отдельных потоков трафика накапливать и учитывать в IPFW такую статистику, как размер пакетов или время между поступлением пакетов, организуя привязку потоков к определенным классам трафика при помощи техник машинного обучения.
Подобная классификация может оказаться полезной, когда нет возможности прибегнуть к прямому инспектированию пакетов, напирмер, когда приложение работает через нестандартный для используемого протокола сетевой порт. Другой примечательной особенностью DIFFUSE является возможность организации распределенной системы, в которой накопление статистики и классификация трафика производится на одной машине, а приоритезация или блокирование трафика может производиться на других машинах в сети.
- Представлен Ethernet Switch Framework - фреймворк для управления встроенными Ethernet-коммутаторами, часто встречающимися в различных встраиваемых платформах. В настоящее время для настройки используются расширенные опции ifconfig, реализована поддержка vlan для каждого порта и возможность управления состоянием интерфейсов. Поддерживаются коммутаторы на базе IP175D (платы mikrotik) и AR8316 (Ubiquiti RSPRO);
- Близка к завершению работа по интеграции в ядро FreeBSD пяти новых модулей с реализацией различных алгоритмов для контроля перегрузки (Congestion Control) в TCP: HTCP, CUBIC, Vegas, HD и CHD. Готовится к интеграции в ядро FreeBSD фреймворк Khelp, представляющий интерфейс для создания модулей ядра, на лету обеспечивающих выполнение определенных сервисных функций. Также включения в ядро ожидает Khelp-модуль ERTT (Enhanced Round Trip Time), позволяющий более точно измерять параметры TCP потока для использования в алгоритмах управления контроля перегрузки TCP. Разработчики планируют полностью завершить проект в конце января;
- Проведена большая работа по устранению известных ошибок и увеличению качества работы сетевого стека. Исправления в основном связанны с работой IPv6, портированием патча NAT64 и повышением стабильности виртуального сетевого стека (vimage).
- Близок к завершению проект по увеличению масштабируемости TCP-стека на SMP-системах. В ближайшие несколько месяцев во FreeBSD 9.x будет интегрирован патч с реализацией ряда новшеств: поддержкой группировки TCP-соединений в привязке к CPU, задействованием некоторых аппаратных механизмов снижения нагрузки и возможностью привязки отдельных соединений к заданному CPU;
Поддержка оборудования
- Ведется работа по созданию патчей для обеспечения поддержки ARM-платформы OMAP3;
- Отмечается прогресс создании беспроводного 802.11n-стека. Для Net80211 добавлена поддержка режима 2.4ghz HT/20 (HT/40 и 5ghz пока не реализованы). Для AR9160 реализована базовая поддержка 802.11 TX и RX. Написан, но еще не отлажен, код для поддержки RX A-MPDU и A-MSDU. Обеспечена поддержка технологии WPA2;
- Обеспечена поддержка работы FreeBSD на игровых приставках Sony PlayStation 3. Код подготовлен для порта FreeBSD/powerpc64 и уже достиг должного уровня стабильности. 5 января все созданные в рамках инициативы патчи были добавлены в ветку FreeBSD 9.0-CURRENT. Работа FreeBSD протестирована на приставке Sony Playstation 3 Fat с прошивкой версии ниже 3.21, установка осуществляется в режиме сетевой загрузки с монтированием файловой системы по NFS. Из видеорежимов поддерживаются только 480i/480p (640 × 480). Несмотря на то, что еще отмечается отсутствие поддержки некоторых аппаратных особенностей приставки, работа FreeBSD на Playstation 3 оценена как стабильная. Порт проходит тестирование собственной пересборкой (self-hosting). Из оборудования поддерживается USB и Ethernet. В ближайших планах реализация поддержки SATA, SPU-блоков (Synergistic Processing Unit) процессора Cell и создание интерактивного загрузчика;
- Значительны расширены возможности порта FreeBSD для платформы SPARC64. Обеспечена поддержка CPUTYPE, что позволяет организовать корректную оптимизацию кода для поддерживаемых CPU "ultrasparc", "ultrasparc3" и "v9". Добавлена поддержка некоторых специфичных для UltraSPARC-III+ возможностей. Ведется работа по обеспечению поддержки серверов Sun Fire 3800;
- Для Ethernet-драйверов добавлена поддержка автоматического полного дуплексного контроля за потоком, в соответствии со спецификацией IEEE 802.3 Annex 31B;
- Улучшена работа демона Webcamd, предназначенного для организации работы с web-камерами. Webcamd, работающий на пользовательском уровне, создан на основе портирования Video4Linux-драйверов. В настоящий момент поддерживается около 1500 различных web-камер, DVB и пультов удаленного управления с интерфейсом USB;
Изолированные окружения, безопасность и ограничения ресурсов
- Подготовлен FreeBSD-драйвер VirtIO, позволяющий оптимизировать производительность операций ввода/вывода при работе FreeBSD в качестве гостевой системы KVM/Qemu или Virtualbox. Доступна бета-версия драйвера для оптимизации работы сетевых устройств, ведется работа по созданию аналогичного паравиртуального драйвера для блочных устройств;
- Проведена адаптация FreeBSD для функционирования в качестве гостевой ОС для cloud-окружений Amazon EC2. Поддерживается только запуск в окружениях "t1.micro";
- Для платформ amd64 и PowerPC реализован режим неисполняемого стека, позволяющих защитить приложения от эксплуатации некоторых уязвимостей, вызываемых переполнением буфера. Соответствующие патчи интегрированы в HEAD, но еще не включены по умолчанию;
- Близка к завершению разработка проекта по реализации контейнеров ресурсов и возможности установки индивидуальных ограничений ресурсов в привязке к конкретным Jail-окружениям. Разработан общий фреймворк для управления ресурсами, обеспечена поддержка лимитирования различных типов ресурсов, таких как память и загрузка CPU;
- Подготовлен патч, обеспечивающий проверку валидности типов аргументов для различных SYSCTL;
Системы хранения и файловые системы
- Подготовлена реализация geom_raid - основанная на GEOM замена системе управления программными RAID-массивами ataraid. Проект выполнен при поддержке компании Cisco и отличается модульным дизайном, позволившим разделить систему на базовый модуль, модули для обработки преобразования данных (RAID-уровни) и модули для определения формата хранения мета-данных на диске. В настоящее время работа сосредоточена на обеспечении поддержки RAID0/RAID1 и формата мета-данных Intel: уже можно создавать разделы, читать и записывать данные, но еще не готов код для восстановления и перестроения массива;
- В GEOM-класс gpart, используемый для управления дисковыми разделами, добавлена поддержка команды для изменения размера раздела - "gpart resize". Другим улучшением является поддержки команды "gpart recover", предназначенной для исправления повреждённых мета-данных таблицы GPT (Guid Partition Table). Кроме того, добавлены команды "gpart backup" и "gpart restore" для ручного сохранения и восстановления таблицы разделов;
- Во FreeBSD-HEAD интегрирована поддержка операций TRIM для файловой системы UFS, что позволит увеличить производительность при работе с SSD-накопителями и повысить их срок службы;
- Ведется тестирование реализации файловой системы ZFS v28 для FreeBSD 9-CURRENT и 8-STABLE. C особенностями новой версии можно познакомиться здесь.
Приложения и система портов
- Доведен до актуального состояния порт с web-браузером Chromium 9-beta. Развитием порта теперь занимается Рене Ладан (Rene Ladan), который продвигает патчи в upstream и непосредственно с Google работает над вопросом обеспечения поддержки платформы FreeBSD. Новая версия Chromium пока не включена в официальное дерево портов - включение ожидается через несколько недель;
- Ведется работа по адаптации FreeBSD для использования в качестве платформы для создания домашнего кинотеатра. В частности, производится портирование медиа-центров Enna и me-tv, улучшение поддержки FreeBSD в медиа-центрах MythTV, VDR, XBMC, обеспечение поддержки пультов дистанционного управления и создание сопутствующей документации;
- Продолжается работа по интеграции во FreeBSD системы mandoc, выступающей в роли упрощенной альтернативы nroff/groff, нацеленной на отображение man-страниц. Из достоинств mandoc отмечается распространение под лицензией BSD, компактный код, очень быстрая работа и высокая устойчивость к ошибкам форматирования;
- На финальную стадию разработки перешел проект Port-Sandbox (Архивная копия от 13 июля 2012 на Wayback Machine), в рамках которого разработана новая система для автоматизации тестирования сборки портов в изолированном окружении, симулирующем установленную с нуля систему. Код Port-Sandbox написан на языке Python и использует СУБД MySQL, управление производится через web-интерфейс;
- Выпущен и интегрирован в дерево портов релиз утилиты для управления портами portmaster 3.6.1 (Архивная копия от 12 июля 2012 на Wayback Machine). За последнее время в portmaster существенно расширены возможности по обработке ошибок и поддержанию целостности системы портов, уменьшено потребление памяти;
- Добавлены рабочие порты для таких программ, как обучающая платформа Bigbluebutton, основанный на технологиях KDE4 браузер сетевых ресурсов smb4k и VoIP-платформа FreeSWITCH;
- В разработке(недоступная ссылка) находится портирование мета-операционной системы ROS (Robot Operating System). Например, сформированы порты devel/ros-tutorials и devel/ros-nxt, позволяющие использовать FreeBSD с роботами LEGO Mindstorms NXT;
- Число портов достигло 23000. проведена работа по закрытию накопившихся PR, число незакрытых PR сохраняется на уровне тысячи. Бинарные пакеты в настоящее время собираются для архитектур amd64-6, amd64-7, amd64-8, i386-6, i386-7, i386-8, i386-9, ia64-8, sparc64-7, sparc64-8.
- В pkg_create, pkg_add и bsdtar добавлена поддержка работы с файлами, сжатыми методом xz. Поддержка xz уже интегрирована в ветки 9-CURRENT и 8-STABLE. Протестировать работу с txz-пакетами можно добавив строку "PKG_SUFX=.txz" в файл /etc/make.conf. В ports-mgmt/portupgrade поддержка пакетов txz добавлена начиная с версии 2.4.8, для ports-mgmt/portmaster уже подготовлен, но еще не принят патч. Патч для newsyslog, позволяющий сжимать архивы логов методом XZ, находится на стадии рецензировния.
Разное
- Продолжается работа по разбору накопившихся сообщений об ошибках (PR). Группа "Bugbusting Team" пытается разобрать накопившиеся сообщения, классифицировать их через привязку тегов и передать требующие внимания PR-ы коммиттерам и мантейнерам портов;
- Релизы FreeBSD 7.4 и 8.2, изначально запланированные на 24 января, немного запаздывают, но по заявлению разработчиков выйдут до конца месяца.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.