Релиз операционной системы DragonFly BSD 3.2
После восьми месяцев разработки представлен релиз DragonFlyBSD 3.2, операционной системы с гибридным ядром, созданной в 2003 году с целью альтернативного развития ветки FreeBSD 4.x. Из особенностей DragonFly BSD можно выделить распределённую версионную файловую систему HAMMER, поддержку загрузки "виртуальных" ядер системы как пользовательских процессов, возможность кэширования данных и мета-данных ФС на SSD-накопителях. Среди ключевых улучшений выпуска DragonFly BSD 3.2 отмечается интеграция нового USB-стека, новая реализация дисковых квот, значительное увеличение производительности планировщика задач.Для загрузки доступны 32- и 64-разрядные установочные образы размером 184 Мб для CD и USB Flash, а также расширенные образы размером 927 Мб с десктоп-окружением для установки на DVD и USB Flash. Все доступные образы могут работать в Live-режиме, что позволяет оценить работу DragonFly BSD без установки на диск. Репозиторий pkgsrc в DragonFlyBSD 3.2 обновлён до версии 2012Q3 и включает в себя около 10 тысяч предкомпилированных пакетов. Для поддерживаемого проектом NetBSD CVS-репозитория pkgsrc разработчиками DragonFly BSD поддерживается активное GIT-зеркало.
Основные улучшения, добавленные в DragonFlyBSD 3.2:
- Включение в состав нового USB-стека usb4bsd, обеспечивающего поддержку хост-контроллеров xhci (USB 3.0) и расширяющего совместимость с USB-устройствами. Новый стек создан на основе портирования кода поддержки USB из FreeBSD 8. Так как подсистема достаточно новая, она пока не включена по умолчанию и требует для активации пересборки ядра (в /etc/make.conf следует установить "WANT_USB4BSD=yes" и в конфигурации ядра заменить "device usb" на "device usb4bsd");
- Проведена работа по оптимизации планировщика задач, что позволило заметно поднять производительность операций, свойственных для высоконагруженных СУБД. Например, при оценке скорости выполнения теста pgbench, измеряющем производительность PostgreSQL, DragonFly BSD 3.2 приблизилась по своим показателям к дистрибутивам на базе RHEL 6.2, обогнав FreeBSD 9 и NetBSD 6.
Улучшенный планировщик задач, реализующий новую схему учета топологии CPU, получил название usched_dfly и задействован по умолчанию. Планировщик пытается использовать несколько алгоритов учёта весов ожидающих выполнения задач для оптимального распределения нитей по разным ядрам CPU. Дополнительно проведено несколько не связанных с планировщиком оптимизаций работы на многопроцессорных системах, например, устранены узкие места в системе виртуальной памяти, реализации unix-сокетов, семафоров SYSV и pmap;
- Добавлена новая подсистема vquota для организации работы дисковых квот, независимо от конкретных файловых систем;
- Устранено ряд проблем со стабильностью работы ядра системы. В частности, исправлены ошибки, приводящие к крахам вследствие выхода за границы буферов на системах x86-64.
- В сетевом стеке обеспечена поддержка RFC1405 (Mapping between X.400(1984/1988) and Mail-11 (DECnet mail)), RFC6675 (A Conservative Loss Recovery Algorithm Based on Selective Acknowledgment (SACK) for TCP) и RFC4653 (Improving the Robustness of TCP to Non-Congestion Events), а также техники быстрого восстановления состояния через повторную передачу SACK-ответов в ситуации большой потери пакетов в проблемных каналах связи. Улучшено соответствие требованиям RFC3390 (Increasing TCP's Initial Window), RFC6298 (Computing TCP's Retransmission Timer), RFC6633 (Deprecation of ICMP Source Quench Messages) и RFC4015 (Eifel Response Algorithm for TCP);
- Добавлена поддержка PUFFS, распространяемой под лицензией BSD FUSE-совместимой подсистемы для поддержки файловых систем, работающих на уровне пользователя;
- Возможность экспорта файловых систем tmpfs через NFS и устранение проблем при монтировании tmpfs до инициализации раздела подкачки;
- Подсистема carp(4) переведена на новый механизм разграничения выполнения кода, обеспечивающий корректную работу на многопроцессорных системах без глобальных блокировок;
- В вызов open(2) добавлена поддержка режимов O_DIRECTORY и O_CLOEXEC;
- Расширение поддержки оборудования:
- Обновлена эталонная реализация ACPI, многочисленные улучшения в коде поддержки ACPI и обработчиках прерываний;
- Добавлен драйвер для поддержки генератора случайных чисел, предоставляемого в чипах Ivy Bridge;
- Поддержка Smart Battery System;
- Из FreeBSD портированы драйверы ichwd(4) и amdsbwd(4) для поддержки watchdog-механизмов чипсетов Intel и AMD;
- Добавлен драйвер ixgbe(4) для сетевых карт Intel 10Gb/s;
- Добавлена большая порция драйверов для различных аппаратных RAID. В том числе добавлены драйверы для контроллеров HighPoint RocketRAID 27xx SAS и HighPoint RocketRAID 17xx, 22xx, 23xx и 25xx;
- Драйвер bge(4) синхронизирован с кодом из FreeBSD;
- В драйвер bnx(4) добавлена поддержка беспроводных чипов Broadcom 5718 и 57785;
- Добавлена поддержка аппаратной акселерации обработки TCP-пакетов. Поддержка TSO (TCP segmentation offloading) обеспечена в драйверах em(4), emx(4), bce(4), bge(4), bnx(4), igb(4), jme(4);
- Изменения в пользовательских компонентах:
- В утилиту mount(8) добавлено автоматическое определения типа ФС;
- В формат исполняемых файлов EFL добавлена поддержка секции DT_GNU_HASH с улучшенной реализацией хэша элементов от проекта GNU, позволяющей заметно ускорить запуск для исполняемых файлов с большим числом внешних библиотечных связей. Обновлена реализация компоновщика RTLD. Добавлена поддержка обработки исключений в статически собранных исполняемых файлах;
- База параметров терминалов termcap объявлена устаревшей, вместо неё интегрирована terminfo(5), которая используется по умолчанию;
- Из FreeBSD интегрированы новые версии утилит cut(1) и realpath(1);
- В rconfig добавлена поддержка объединённых LVM-разделов (stripe);
- Обновление сторонних приложений, поставляемых в базовой системе:
- Добавлены: libedit 2012-03-11 из NetBSD, libmpc 1.0.1 и gcc 4.7.2;
- Обновлены версии: gcc 4.4.7, grep 2.12, gdb 7.4.1, zlib 1.2.7, ncurses 5.9, libgmp 5.0.5, OpenSSL 1.01c, tzdata tzdata2012f, sh из FreeBSD, libpcap 1.3.0, dhclient из OpenBSD, OpenPAM 'Micrampelis', xz 5.0.4, tnftp из NetBSD, libarchive3.0.4, tcpdump 4.3.0, file 5.11
- Удалён из состава gcc 4.1.
© OpenNet