Квартальный отчет о развитии 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 Statistical Information for TCP Research (SIFTR).
- Начаты работы по реализации шести ядерных модулей с алгоритмами управления TCP (congestion control) — NewReno, HTCP, CUBIC, Vegas, HD, CHD. Подробности [url=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). Однако, пока ещё нет полной поддержки всех возможностей оборудования.