Отчет о развитии FreeBSD за четвертый квартал 2007 года
18 февраля 2008 года
Доступен отчет в котором отражены улучшения FreeBSD, внесенные с октября по декабрь 2007 года. Ниже представлен краткий обзор:
Проекты
- DTrace: Благодаря поддержке компании Cisco Systems продолжена работа по портированию OpenSolaris подсистемы DTrace, а главное найден способ совмещения кода под лицензиями CDDL и BSD. В ядре будет только BSD код, под лицензией BSD также переписана библиотека DWARF. Комплект утилит CTF (Compact C Type Format) теперь работает на всех поддерживаемых архитектурах, но поддержка DTrace пока доступна только для архитектур amd64 и i386. Текущая уровень портирования DTrace позволяет выполнить 822 теста DTrace Test Suite;
- FreeBSD Installer: В альтернативной программе установки FreeBSD появилась поддержка разбиения диска, выбора компонент базовой установки, настройки имени хоста и задания пароля суперпользователя. Ведется работа над реализацией настроек связанных с установкой времени, выбором и установкой дополнительных пакетов программ (packages), использованием HTTP и FTP в качестве транспорта для установки.
- Performance Monitoring Project: в рамках проекта производится накопление результатов измерения производительности ежедневных сборок FreeBSD-Current;
- TCP ECN - завершена и протестирована реализация поддержки Explicit Congestion Notification (ECN) для управления интенсивностью передачи данных хостом по другую сторону соединения;
- TrustedBSD Audit: представлен OpenBSM 1.0, первый полностью работоспособный релиз открытой реализации Sun Basic Security Module (BSM) Audit API, входит в состав FreeBSD 6.3 и FreeBSD 7.0. Началась работа над альфа версией OpenBSM 1.1, задачи новой версии - увеличение производительности, экспериментальный пакет bsmtrace для выявления попыток вторжений злоумышленников и т.д.;
- Xen: порт позволяет выполнять FreeBSD i386/PAE в гостевом домене Xen (domU). Поддержка domU ведется в ветке 8-CURRENT, поддержка SMP и amd64 ожидается в мае, реализация dom0 пока даже не планируется.
Ядро
- Проведена большая работа по исправлению ошибок в реализации распределенной файловой системы Coda, написана страница системного руководства. Во FreeBSD 7.x и 8.x уже можно экспериментировать с ее использованием, не опасаясь частых падений в "panic";
- В отладчике ядра DDB реализованы средства для написания простых скриптов для автоматизации отладки, добавлена возможность сохранения вывода отладчика, с возможностью его записи в новом формате textdump;
- Оптимизация FreeBSD для работы на многопроцессорных/многоядерных системах: проводится профилирование BIND9, MySQL, PostgreSQL и Apache для выявления узких мест, оптимизирована работа блокировок в ядре - разбиение на более мелкие блокировки tcbinfo лока, блокирующего доступ к глобальным структурам сетевого стека; реализация предотвращения миграции обработчика TCP соединения от процессора к процессору (CPU affinities);
- Порт FreeBSD для архитектуры mips (MIPS32 и MIPS64) уже грузится в многопользовательском режиме, в настоящее время проводится увеличение стабильности работы различных подсистем и реализация возможности работы на многоядерных CPU. Базовый код для поддержки архитектуры MIPS был предоставлен компанией Juniper Networks, код поддержки многоядерных процессоров mips64r2 был разработан компанией Cavium Networks;
- GEOM модуль geom_lvm для доступа к LVM2 (Logical Volume Manager, менеджер логических томов Linux) разделам из FreeBSD. geom_lvm поддерживает чтение метаданных для линейных "stripe" разделов, сегменты которых разнесены на разные диски. Создание и изменение LVM2 разделов не реализовано.
- Чистка и переработка кода TCP стека. В планах добавление возможности TCP pluggable congestion control - подключения различных алгоритмов для контроля перегрузки в TCP, через плагины. Так же намечен аудит кода на предмет полного соответствия всем текущим и планируемым к принятию TCP RFC;
- Продолжена работа над упрощенным вариантом виртуализации сетевого стека для jail окружений (multi-IP);
- Почти готова новая реализация кода очереди сборки TCP (Reassembly Queue);
- VM Overcommit - возможность расчета требуемого размера памяти подкачки (swap) и средства для ограничения порогового объема выделяемой памяти или объема в привязке к идентификатору пользователя (т.е. при активном своппинге, не будет выделено памяти больше, чем может вместить своп или указано в лимите RLIMIT_SWAP);
- Новый драйвер if_nxge для карт Neterion Xframe 10GbE принят в ветку FreeBSD 8-CURRENT и будет помещен в 7-STABLE после выхода релиза FreeBSD 7.0. Драйвер поддерживает TCP Segmentation Offload (снижение нагрузки системы через вынос некоторых моментов обработки TCP соединений на плечи сетевой карты), Large Receive Offload (LRO), Jumbo Frames, Header Separation, VLAN, и работу в Promiscuous режиме.
Уровень пользователя
- Реализация malloc(3) оптимизирована для уменьшения числа блокировок при параллельных запросах памяти из многопоточных (multi-threaded) программ. Код намечен для включения в релиз FreeBSD 7.1;
- Создана новая утилита procstat для просмотра детальной информации о процессе, включая данные о используемых файловых дескрипторах, нитях, мапинга памяти и т.д. procstat принята в ветку FreeBSD 8-CURRENT и будет помещена в 7-STABLE после выхода релиза FreeBSD 7.0;
Порты
- Проект Ports 2.0 - модернизация системы сборки портов, используя положения теории графов и более гибкий метод расчета зависимостей. С точки зрения пользователя планируется полная совместимость интерфейса с текущей системой портов.
- Коллекция портов включает более 18000 приложений, ожидаемые изменения: переход порта KDE на KDE4, обновление gettext и libtool, помещение perl 5.10 в порты, финальное удаление XFree86 и других устаревших портов.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.