Квартальный отчет о развитии FreeBSD за июль-сентябрь 2010
В этом отчете перечислены проекты с разной степенью готовности - от принятых в STABLE, до таких, которые даже для CURRENT не готовы и разрабатываются в отдельной версии исходных кодов ОС.
Из-за большого количества текста статьи сильно сокращены, изменена группировка статей, в перевод не включена информация о модификации давно существующего функционала, о развитии в документации, о мероприятиях сообщества и отчеты отдельных команд: bugbusting, KDE, releng.
Ядро и базовая система
- Ведется работа по разработке контейнеров ресурсов и механизма управления ресурсами для jail. Уже реализован фреймворк по управлению абстрактными ресурсами, готов механизм установки лимитов для большинства имеющихся в системе ресурсов, ведутся работы по добавлению поддержки оставшися ресурсов, отладке и общему улучшению кода.
- Расширен функционал встроенного демона SNMP - добавлены модуль snmp_wlan, поддержка шифрования и аутентификации SNMPv3, модуль snmp_usm для конфигурирования пользовательских параметров SNMPv3 (RFC3414), модуль snmp_vacm, который позволяет управлять доступом к поддеревьям MIB на базе логинов-паролей (RFC3415)
- Ведутся работы по реализации проекта CAPSICUM, который расширяет POSIX API несколькими новыми примитивами ОС, позволяющими включать режим sandbox для процессов и анонимных объектов в разделяемой памяти. Также предоставляется модифицированная среда исполнения С, поддерживающая распределенные приложения, работающие в режиме sandbox.
- Новая инфраструктура временных событий ядра - написан новый аппаратно-независимый код управления событиями, который поддерживает старый режим периодических событий и новый режим разовых событий. В результате становится возможным эффективное использование состояний простоя процессора (CPU C-states), что уменьшает потребление и увеличивает результативность технологии Intel TurboBoost.
- Разрабатывается режим дампа ядра через сеть - реализован минимальный стек tcp/ipv4, используется свой UDP протокол для передачи дампа на сетевое устройство.
- Userland DTrace - реализована поддержка механизма динамической отладки Dtrace для пользовательских программ, как это сделано в OpenSolaris. Также поддержка DTrace включена в порты mysql-server и postgresql-server.
- Новая система мониторинга и управления системными сервисами (Freebsd Services control) - набор бинарных файлов, интегрированных с системой инициализации rc.d. Состоит из фоновой службы fscd, которая управляется через утилиту fscadm. Реализация системы частично основана на идеях daemontools и solaris service management facility.
Оборудование и драйвера
- Завершен проект по портированию фреймворка DAHDI (Digium/Asterisk Hardware Device Interface) и соответствующего набора драйверов для оборудования E1/T1, цифровых ISDN и аналоговых FXO/FXS карт.
- В эмуляторе Linux появилась поддержка V4L. Изменения внесены в ветку 8-stable и позволяют использовать видеокамеры, поддерживаемые драйверами pwcbsd или video4bsd.
- В ветке CURRENT появилась поддержка USB 3.0 и чипсета Intel XHCI.
Сетевой стек
- Разрабатывается новая система захвата пакетов, ориентированная на высокоскоростные сети. Текущее состояние: реализована фильтрация через BPF для ядра и пользовательских приложений, готова поддежка intel 8254х, частично реализована работа с драйвером ixgbe для захвата пакетов на скорости 10GB.
- В ветку CURRENT внесены изменения для модернизации работы протокола TCP. Реализована поддержка RFC3465 (Appropriate Byte Counting), улучшена работа очереди сборки TCP пакетов, портирован инструмент для анализа статистики TCP на основе технологии CAIA's Statistical Information for TCP Research (SIFTR).
- Начаты работы по реализации шести ядерных модулей с алгоритмами управления TCP (congestion control) - NewReno, HTCP, CUBIC, Vegas, HD, CHD. Подробности по адресу http://caia.swin.edu.au/urp/newtcp/tools.html Предполагается, что реализация этих планов резко выделит FreeBSD из ряда остальных ОС в области сетевых задач.
Файловые системы
- Новая криптографическая файловая система уровня ядра (PEFS) для прозрачного шифрования данных независимо от нижележащей ФС.
- Портирование openAFS - распределенная сетевая файловая система, возникшая из проекта Carnegie-Mellon University. Код клиента достаточно функционален, поэтому планируется в ближайшее время создать порт openafs-devel.
- В код FreeBSD импортирована ZFSv28 в режиме массового тестирования. Главная особенность этой версии - поддержка дедупликации.
Поддержка аппаратных архитектур
- Ветка CURRENT работает на AR9132 SoC (используется например для TP-Link TP-WN1043ND 802.11n wireless bridge/router). Пока еще не поддерживается USB и чипы ethernet Realtek Gigabit switch/PHY.
- Начаты работы по созданию ARM версии FreeBSD. Пока на совсем ранней стадии - знакомство с ARM структурой и исходными текстами MicroC OS.
- Версия FreeBSD/powerpc64 загружается и работает в режиме multiuser SMP на приставке PLaystation3. Открытые задачи: поддержка SATA, поддержка Cell SPU, модернизация загрузчика для интерактивного взаимодействия с пользователем на ранней стадии загрузки (user input at the loader input)
- FreeBSD/mips on Octeon - коды проекта перенесены в CURRENT. Достигнута стабильная работа на двухядерной системе, проведено тестирование работоспособности на системах с числом ядер до 16. Много открытых задач в поддержке оборудования (pci, usb, ethernet)
- Ветка FreeBSD/mips портирована на D-Link DAP-1350 (Ralink RT3052F SoC) и D-Link DIR-320 (BCM5354 SoC). Однако пока еще нет полной поддержки всех возможностей оборудования.