Опубликован
отчет о развитии проекта FreeBSD с января по март 2011 года. В первые
два месяца 2011 года основные усилия разработчиков были направлены на
подготовку релизов FreeBSD 8.2 и 7.4,
которые были выпущены в конце февраля. В настоящее время участники
проекта начали интенсивную работу по формированию следующей значительной
ветки - FreeBSD 9.0.
Основные достижения:
- Сетевая инфраструктура
- Системы хранения и файловые системы
- В коде поддержки файловой системы ext2fs реализована
поддержка перераспределения блоков (reallocblks), примерно так как это
уже реализовано в штатной FFS. В дальнейшем в ext2fs планируется
добавить поддержку htree-индекса директорий;
- Во FreeBSD 9-CURRENT интегрирована
новая реализация программного RAID - graid, призванная заменить
устаревшую систему управления программными RAID-массивами ataraid. Новая
реализация основана на использовании инфраструктуры GEOM и построена в
соответствии с принципами модульной архитектуры, что позволило разделить
систему на базовый модуль, модули для обработки преобразования данных
(RAID-уровни) и модули для определения формата хранения мета-данных на
диске.
В отличии от ataraid, graid не зависит от устаревшей подсистемы ata и
может быть использован с любыми драйверами дисковой подсистемы, включая
новые, основанные на CAM (ahci, siis, mvs, ata с использованием
"options ATA_CAM"). Поддерживаются популярные форматы метаданных Intel,
JMicron, NVIDIA, Promise (используется AMD/ATI) и SiliconImage.
Реализованы следующие RAID-уровни: RAID0, RAID1, RAID1E, RAID10, SINGLE,
CONCAT. Среди приоритетных планов по улучшению graid названо добавление
поддержки дополнительных форматов метаданных и реализация уровня RAID5;
- Отмечен прогресс в развитии системы репликации
устройств хранения данных (HAST), которая позволяет использовать FreeBSD
для создания высоконадежных конфигураций, в которых данные
синхронизированы по всем узлам кластера. HAST реализован в виде
GEOM-класса, обеспечивающего синхронную репликацию блочных устройств
поверх TCP/IP сетей, независимо от типа накопителя и файловой системы.
HAST предусматривает возможность быстрого восстановления после сбоя,
причем, при выходе из строя первичного master-узла, его функции могут
быть делегированы slave-узлу. После проверки и монтирования UFS раздела
или импорта ZFS пула на поврежденном узле, система автоматически
синхронизирует внесенные за время восстановления изменения и продолжит
работу без потери данных.
С момента прошлого отчета в HAST добавлена поддержка сжатия
передаваемых по сети данных, опциональная возможность вычисления и
проверки контрольных сумм для передаваемых данных, поддержка изоляции
(sandboxing) вторичных узлов и hastctl, поддержка дополнительной защиты
(Chroot+setuid+setgid) для первичного узла, возможность выбора IP для
инициирования соединений. В HandBook добавлена секция, посвященная настройке HAST;
- Во FreeBSD-HEAD решены все известные проблемы (в
рассмотрении остается несколько сообщений о проблемах с
производительностью) с работой механизма журналирования Soft Updates для
файловой системы UFS. Данное нововведение позволяет отказаться от
необходимости запуска fsck после "грязного" размонтирования файловой
системы и достичь очень высокой скорости восстановления состояния
файловой системы при очень малом объеме журнала, при этом система
полностью обратно совместима с нежурналируемым вариантом softupdates. Во
FreeBSD 9 новая система будет использована по умолчанию, также её можно
будет использовать и для корневой ФС;
- Продолжена работа по доведению до рабочего состояния поддержки работы FreeBSD в качестве клиента распределенной сетевой файловой системы OpenAFS. Ожидается, что порт версии OpenAFS 1.6 будет достаточно стабилен для повседневного использования;
- В дерево исходных текстов FreeBSD-CURRENT
интегрирована поддержка ZFSv28. Обзор отличий ZFSv28 от ранее доступных
версий ZFS v13-v15 можно посмотреть здесь;
- Изолированные окружения, безопасность и ограничения ресурсов
- Продолжается работа по адаптации
FreeBSD для функционирования в качестве гостевой ОС для cloud-окружений
Amazon EC2. В дополнение к ранее реализованному запуску в окружениях
"t1.micro", добавлена
поддержка окружений "cc1.4xlarge". При работе FreeBSD 8.2-RELEASE пока
наблюдаются проблемы, связанные с ограничением micro-окружения размера
ОЗУ (600 Мб), но FreeBSD 9.0 ведет себя уже достаточно стабильно. Среди
планов на будущее, расширение поддерживаемых EC2-окружений,
переработка системы блокировок в head/sys/i386/xen/pmap.c для устранения
эффектов гонки, повышение стабильности 9.0-CURRENT при работе в режиме
паравиртуализации, решение некоторых проблем с планировкой задач и
выделения квантов времени.
- Во FreeBSD-CURRENT интегрирована большая часть кода
проекта RCTL по реализации контейнеров ресурсов и возможности установки
индивидуальных ограничений ресурсов в привязке к конкретным
Jail-окружениям. Разработан общий фреймворк для управления ресурсами,
обеспечена поддержка лимитирования различных типов ресурсов, таких как
память и загрузка CPU. Для активации системы ядро нужно пересобрать с
опциями "options RACCT" и "options RCTL", управление производится
утилитой rctl(8). До релиза 9.0-RELEASE остается решить две проблемы:
переработать систему аккаунтинга и органичения ресурсов CPU и обеспечить
возможность задания правил независимо от наличия Jail (сейчас правила
могут быть применены только к уже созданным Jail);
- Поддержка оборудования
- Улучшена работа демона Webcamd,
предназначенного для организации работы с web-камерами, работающего на
пользовательском уровне и созданого на основе портирования
Video4Linux-драйверов. В настоящий момент поддерживается около 1500
различных web-камер, DVB и пультов удаленного управления с интерфейсом
USB. За отчетный период добавлена трансляции специфичных для Linux ioctl
DVB и V4L2, что позволило обеспечить в таких программах, как SageTV,
Skype и Flash поддержку работы с тюнерами DVB/ATSC и web-камерами.
В будущем, связанный с поддержкой DVB код планируется вынести в
отдельный порт, так как в базовую систему интегрировать все наработки
мешает поставка некоторых компонентов под лицензией LGPL (в системе
будет поставляться враппер linux_dvbwrapper.ko). Также будет продолжена
работа по реализации новых ioctl, что позволит задействовать такие
функции как акселерация декодирования MPEG2-потоков для аналоговых или
DVB-тюнеров;
- Сформирован список совместимых с FreeBSD web-камер, DVB-устройств и пультов удаленного управления;
- Продолжается работа по обеспечению поддержки
ARM-платформы OMAP3. Эмулятор qemu-omap3 пока не портирован для
FreeBSD, поэтому приходится запускать эмулятор в Linux. Из незавершенных
задач отмечается создание драйверов для процессоров OMAP3;
- В FreeBSD/arm обеспечена поддержка интегрированного
RAID-контроллера (RAID-on-Chip) Marvell 88RC8180, основанного на
процессорном ядре Feroceon 88FR331 (ARMv5TE), а также более нового
контроллера Marvel 88RC9580, основанного на процессорном ядре Sheeva
88SV581 CPU(ARMv6). Поддержка включает возможность загрузки с
использованием U-Boot, использование L1 и L2 кэша, контроллера
прерываний, таймеров, шины PCI Express, Ethernet-контроллера. Остается
довести код до финального вида, почистить и интегрировать во
FreeBSD-HEAD;
- Добавление в FreeBSD/powerpc поддержки процессоров
Freescale QorIQ, идущих на смену семейству PowerQUICC (MPC85xx). В
настоящий момент обеспечена поддержка чипов QorIQ P2020, возможность
загрузки с использованием U-Boot, поддержка L1 и L2 кэшей,
последовательного порта (UART), контроллера прерываний, Ethernet (в
режимах TSEC, SGMII), I2C, EHCI-контроллера, Security Engine (SEC) 3.1,
Enhanced SDHC и Dual-core (SMP) систем.
- Ведется работа по улучшению поддержки MIPS-процессоров Octeon интеграции наработок с кодом поддержки других процессоров MIPS;
- Система
- Во FreeBSD-CURRENT завершён переход
на bsdinstall в качестве инсталлятора по умолчанию. BSDInstall
отличается модульностью, простотой подключения расширений, поддержкой
управляющих установкой скриптов и ускорением выполнения процесса
инсталляции. По своей сути BSDInstall представляет собой shell-скрипт, в
определенной последовательности вызывающий дополнительные скрипты или
приложения.
Любое звено установки может быть легко модифицировано или заменено на
альтернативную реализацию (например, вместо вызова редактора дисковых
разделов можно указать скрипт, который вернет определенную
последовательность gpart-команд). В процессе установки, работа
инсталлятора сводится к распаковке трех архивов: образа с базовой
системы (world.tgz), ядра (kernel.tgz) и коллекции портов (ports.tgz),
после чего могут быть запущены постустановочные конфигураторы или
скопированы типовые файлы конфигурации (fstab, rc.conf, resolv.conf).
Базовые возможности:
- Возможность установки на GPT-диски;
- Поддержка установки, охватывающей несколько дисков;
- Поддержка установки внутрь jail-окружений;
- Поддержка упрощенного PXE-режима установки;
- Дружественность к системам виртуализации, например, можно произвести установку в дисковый образ из работающей системы;
- Значительное ускорение процесса установки системы;
- Гибкое управление установкой через написание скриптов;
- Возможность простой реализации мелких настроек;
- Установочный CD выступает в роли LiveCD.
- Режим настройки параметров беспроводной сети;
- Поддержка установки на ZFS-разделы (реализация функции не завершена).
- Старый порт (linux_base) с набором компонентов для работы Linux-эмуляции признан
устаревшим, так как многие программы в нем устарели и уже не
поддерживаются. Обновлен порт linux-f10-pango, выполненный на базе
Fedora 10. Тем не менее в базовой системе по умолчанию продолжает
использоваться linux_base, в связи с чем рассматривается вопрос на базе
какого RPM-совместимого дистрибутива создать новый современный порт,
подготовить его и протестировать на предмет совместимости с кодом
поддержки ядра;
- Приложения и система портов
- Продолжается работа по адаптации FreeBSD для
использования в качестве платформы для создания домашнего кинотеатра.
Работа сосредоточена на улучшении поддержки во FreeBSD существующих
медиа-центров, таких как MythTV, VDR, XBMC, Enna и me-tv. За последние
месяцы отмечено расширение возможностей по дистанционному управлению
мультимедиа приложениями и web-камерами (webcamd), благодаря улучшению
поддержки проекта lirc.
Завершено портирование и интегрировано в дерево портов
(multimedia/vdr) приложение VDR (Video Disk Recorder), а также 17
сопутствующих плагинов. Из остающихся открытых задач отмечено доведение
до конца поддержки lirc и удаленного управления webcamd, портирование
дополнительные приложений, таких как Enna и me-tv, создание руководства
по созданию домашнего кинотеатра на базе FreeBSD;
- Обновление порта
web-браузера Chromium максимально приближено к выходу официальных
релизов. Обеспечение поддержки платформы FreeBSD производится при тесном
взаимодействии с upstream и непосредственно с Google. Проекту требуются
добровольцы для работы с командой разработчиков Chromium по
продвижению в основную кодовую базу патчей, разработанных при
прортировании;
- В порты интегрирована версия 7.0.3 функционального языка программирования Haskell.
Другие связанные с Haskell порты, общее число которых уже превышает
200, также обновлены до последних версий. Многие из портов пока доступны
только через специальный репозиторий. Из задач на будущее отмечено создание метапорта для установки платформы Haskell, создание портов для систем Happstack и gitit;
- Группа, занимающаяся портированием десктоп-оболочки
KDE и Qt для FreeBSD, сообщила об улучшении поддержки совместных
ресуросов (например, битовых карт), реализации мониторинга изменения
файлов через kevent, обеспечении поддержки новых сенсоров в KSysGuard.
Из последних портированных систем отмечены: Qt 4.7.2, KDE 4.5.5, 4.6.1 и
4.6.2, KOffice 2.3.3, KDevelop 4.2.0 и 4.2.2;
- В утилиту для управления портами portmaster
добавлена поддержка опции "--update-if-newer", улучшена реализация
опций "--index-only", "--check-depends" и "--packages-only", файл
portmaster.rc отныне может быть размещен в текущей директории скрипт;
- Число портов приблизилось к отметке 23000. Проведена
работа по закрытию накопившихся PR, число незакрытых PR сохраняется на
уровне тысячи. Бинарные пакеты в настоящее время собираются для
архитектур amd64-6, amd64-7, amd64-8, i386-6, i386-7, i386-8, i386-9,
ia64-8, sparc64-7, sparc64-8.
- На 95% доведена до конца работа по использованию по умолчанию порта www/apache22 при установке Apache. К релизам 8.3 и 9.0 все оставшиеся недоработки будут доделаны;
- Разное
- Продолжается работа по разбору накопившихся сообщений об
ошибках (PR). Группа "Bugbusting Team" пытается разобрать накопившиеся
сообщения, классифицировать их через привязку тегов и передать требующие
внимания PR-ы коммиттерам и мантейнерам портов;
- Близится к концу подготовка релиза pfSense 2.0.
|