Название базовой системы (платформы): | FreeBSD |
Дата премьеры системы: | 2003/06/15 |
Дата последнего релиза: | 2022/12/30 |
Технологии: | ОС |
Содержание |
DragonFly BSD - операционная система с открытым кодом.
2022: DragonFlyBSD 6.4
3 января 2023 года стало известно о том, что после года разработки 30 декабря 2022 года опубликован релиз DragonFlyBSD 6.4, операционной системы с гибридным ядром, созданной в 2003 году с целью альтернативного развития ветки FreeBSD 4.x. Из особенностей DragonFly BSD можно выделить распределённую версионную файловую систему HAMMER, поддержку загрузки "виртуальных" ядер системы как пользовательских процессов, возможность кэширования данных и мета-данных ФС на SSD-накопителях, учитывающие контекст вариантные символические ссылки, возможность заморозки процессов с сохранением их состояния на диске, гибридное ядро, использующее легковесные потоки (LWKT).
Основные изменения, добавленные в DragonFly BSD 6.4:
- Продолжена работа над файловой системой HAMMER2, которая примечательна такими функциями, как отдельное монтирование снапшотов, доступные на запись снапшоты, квоты на уровне директорий, инкрементальное зеркалирование, поддержка различных алгоритмов сжатия данных, multi-master зеркалирование с распределением данных на несколько хостов. В обновленном выпуске устранено несколько серьёзных ошибок, среди которых проблема, которая могла привести к повреждению данных при монтировании нескольких PFS (Psuedo File-System), и ошибка, приводящая к задержке фактического удаления некоторых файлов до отмонтирования.
- В системном вызове mlockall() реализована поддержка режима MCL_CURRENT, позволяющего заблокировать все отражённые в адресное пространство страницы памяти процесса для предотвращения их вытеснения в раздел подкачки.
- Из FreeBSD перенесена реализация функции gtaskqueue().
- Оптимизирована производительность функций nlookup*().
- Оптимизирована производительность файловой системы tmpfs.
- В ext2fs реализована более точная проверка корневого inode и элементов каталогов.
- Добавлена поддержка Wi-Fi-адаптера Edimax EW-7811Un V2 (N150).
- Для jail sysctl net_raw_sockets переименован в allow_raw_sockets.
- В интерфейсе DRM (Direct Rendering Manager) решена проблема с аварийным завершением работы сервера X.org при подключении или отключении мониторов. В evdev оптимизирована совместимость с обновленным кодом X-сервера.
- В утилиту makefs добавлена поддержка ФС HAMMER2.
- В утилиту date добавлен флаг "-I" для вывода в формате ISO 8601.
- В /bin/sh реализована возможность корректной записи в файловые дескрипторы, работающие в неблокирующем режиме, что решило проблему с записью в работающие в неблокирующем режиме неименованные каналы, буфер которых оказался заполненным.
- В libc размер буфера для opendir/readdir увеличен с 4 до 16 КБ. Добавлена функция strerror_l(). В printf() и scanf() добавлены модификаторы размера "ll" и "L".
- В libkern из FreeBSD перенесён код функции timingsafe_bcmp().
- В утилите dsynth, предназначенной для локальной сборки и сопровождения бинарных репозиториев DPort, осуществлён переход по умолчанию на вторую версию метаданных. Добавлены директивы 'add' (добавление дополнительного порта для сборки), "fetch-only" и "list-system". В файл конфигурации добавлена настройка 'Check_plist' (аналог опции "-P").
- Обновлены версии сторонних компонентов: awk 20220912, bmake 20220928, byacc 20221106, dialog 1.3-20220728, expat 2.5.0, file 5.43, ldns 1.8.3, less 608, libedit 2022-10-30, libpcap 1.10.1, tcpdump 4.99.1, LibreSSL 3.6.1, OpenSSH 9.1p1, TCSH 6.24.02, TNFTP 2021082, libarchive 3.6.1[1].
2015: DragonFly BSD 4.4
4 декабря 2015 года сообщество разработчиков представило релиз DragonFlyBSD 4.4[2].
Из значимых изменений в DragonFly BSD 4.4 - реализация локали, улучшение файловой системы Hammer, переход по умолчанию на систему динамического связывания и обновление драйверов видеоадаптеров i915 и Radeon.
Основные изменения в DragonFlyBSD 4.4
- Модернизация drm-драйверов radeon и i915, предоставляющих интерфейс для управления видеокартами AMD и Intel на уровне ядра. Код драйверов i915 и radeon синхронизированы с ядром Linux 3.18. В i915 добавлена поддержка ValleyView, Baytrail и Cherryview Atom SOC, реализована полная поддержка аппаратного ускорения для GPU Broadwell, добавлена базовая поддержка APU на базе микроархитектуры Skylake, улучшены механизмы управления энергопотреблением. Системная консоль по умолчанию поддерживает работу через drm (KMS-консоль). Для карт Radeon добавлена поддержка датчиков температуры;
- Полная переработка системы локали. До сих пор систем локали в DragonFly BSD синхронизировалась с FreeBSD, но в DragonFly BSD 4.4 реализация локали была полностью переработана. Данные для всех шести категорий локали (LC_CTYPE, LC_COLLATE, LC_TIME, LC_NUMERIC, LC_MONETARY, LC_MESSAGES) теперь основываются на актуальных выпусках Unicode CLDR. Внесены улучшения в обработку чисел, времени и денежных единиц. Все определения CTYPE объединены в один набор сопоставлений. Добавлена поддержка трёхкомпонентных имён локалей, таких как sr_cyrl_RS, sr_latn_RS, zh_Hans_CN и zh_Hant_TW. Реализованные сокращённые коды локалей, например, "de_DE", "fr_FR" и "en_US" для 8-битовых кодировок.
- Поддержка свойства локали LC_COLLATE (Collation), позволяющего задавать правила сортировки и методы сопоставления с учётом смысла символов. При установке LC_COLLATE для указанной локали при сортировке и проверке диапазонов не будут разделяться строчные и прописные буквы (например, символы "A" и "a" войдут в диапазон [a-z], в то время как без LC_COLLATE в данный диапазон войдёт только "a"), при сортировке цифровых значений будет учитываться наличие минуса и точки перед числом и разные виды написания (1e3 = 1000), будут учитываться особенности языков (например, игнорироваться артикли, такие как The). Отмечается, что DragonFly BSD стала первой из BSD-систем с корректной поддержкой Collation для именованных локалей, что позволяет, например, использовать выражение COLLATE в PostgreSQL. Поддержка Collation уже портирована из DragonFly BSD во FreeBSD-CURRENT;
- Системная библиотека регулярных выражений заменена на TRE, что позволило избавиться от привязки к режиму POSIX (однобайтовые сопоставления) и реализовать полноценную поддержку многобайтовых кодировок в регулярных выражениях. Кроме поддержки многобайтовых кодировок библиотека TRE, которая уже используется в musl и OS X, обладает более высокой производительностью и поддерживает больший спектр регулярных выражений;
- Система динамического связывания переведена по умолчанию на компоновщик Gold, разработанный инженерами Google и входящий в состав GNU binutils. Старый компоновщик "ld.bfd" доступен в качестве опции и может быть активирован в make.conf;
- В ядре улучшена поддержка возможностей CPU по экономии энергии. Добавлен системный вызов lwp_setname(2). Добавлен драйвер aperf(4) для вывода эффективной частоты CPU;
- Улучшение сетевых возможностей:
- Добавлен драйвер iwm(4), в драйвер re(4) добавлена поддержка чипов Realtek 8168H.
- Добавлена утилита rtadvctl.
- Реализована асинхронная обработка UDP-соединений.
- Увеличен размер начального окна для TCP.
- Добавлена возможность изменения размера nmbcluster на лету.
- Код IPv6 синхронизирован с FreeBSD.
- Увеличена производительность вызова socket(2) для TCP и UDP.
- Добавлен системный вызов accept(4).
- Добавлена поддержка флагов SOCK_CLOEXEC и SOCK_NONBLOCK для вызовов socket(2) и accept4(2);
- Библиотека libm заменена на вариант от проекта OpenBSD;
- Утилита sort заменена на вариант от проекта FreeBSD (ранее использовался sort из NetBSD);
- В libc добавлена поддержка версионирования наборов символов, что даёт возможность запуска в будущих выпусках исполняемых файлов из DragonFly BSD 4.4;
- В состав включена утилита tcpdrop;
- Внесены многочисленные правки и чистки в реализацию файловой системы HAMMER. В состав выпуска также входит обновлённый вариант ФС HAMMER2, которая примечательна такими функциями, как отдельное монтирование снапшотов, доступные на запись снапшоты, квоты на уровне директорий, инкрементальное зеркалирование, поддержка различных алгоритмов сжатия данных, multi-master зеркалирование с распределением данных на несколько хостов. Новая версия HAMMER2 поддерживает монтирование корневого раздела и операции дедупликации данных (dedup) на лету. В настройки сборки ядра добавлена опция WANT_HAMMER2 для включения поддержка файловых систем Hammer2;
- Обновлены версии сторонних программ, поставляемых в базовой системе: gcc 5.2, nvi2 2.1.3, libexecinfo (синхронизирован с FreeBSD), iconv (синхронизирован с FreeBSD), openssl 1.0.1p, xz 5.2.2, libedit 2015-03-25, binutils 2.25.1, grep 2.22, tcsh 6.19.00, (tn)ftp '10 OCT 2015', acpica 20150717;
- Из базовой системы удалены hostapd (перемещён в порт net/hostapd), dsched, mklocale (заменён на localedef), colldef (заменён на localedef).
- Коллекция DPorts достигла 22800 портов.
2014: DragonFly 4.0.1
1 декабря 2014 стало известно о выходе нового релиза ОС DragonFly 4.0.1[3].
Цель проекта — оптимальное использование ресурсов процессора и оперативной памяти, прежде всего на мультипроцессорных системах.
DragonFly BSD может использоваться на сервере и на рабочей станции. Устанавливается с графическим интерфейсом (с включением дополнительных программ: браузер и т.п.) или с поддержкой командной строки.
Скриншот интерфейса DragonFly BSD
В основе DragonFly модель LWKT - легковесных потоков ядра. Модель LWKT совмещена с механизмом планирования потоков (вместо единого планировщика — sсheduler). Эта модель помогает контролировать несколько таких потоков, каждый из которых в мультипроцессорной системе привязан к своему процессору. При определенных условиях допускается передача исполнения потока с одного процессора на другой. При этом данные отдельных потоков могут быть кэшированы независимо для каждого процессора.TAdviser выпустил новую карту российского рынка информационных технологий: более 380 разработчиков и интеграторов
Принципиальное отличие DragonFly BSD - максимальное количество функций ядра вынесено из памяти ядра в пользовательскую память, что, по мнению разработчиков, помогает обеспечить рост производительности и надежность системы.
Другое отличие DragonFly BSD - ее собственная 64-разрядная распределенная файловая система HAMMER, оптимизированная для работы с кластерами и удаленным доступом к информации, предлагает возможность работы с псевдофайловыми системами и зеркалирования на уровне псевдофайловых систем. HAMMER характеризуется разработчиками, как устойчивая и надежная файловая система. Обеспечивается сохранение истории файловой системы (с настраиваемой очисткой старых данных). Реализован усиленный контроль целостности данных (проверка CRC метаданных).
Из особенностей DragonFly BSD выделяют поддержку загрузки виртуальных ядер системы как пользовательских процессов, возможность кэширования данных и метаданных файловой системы на SSD, гибридное ядро и др.
В отличие от родительской операционной системы FreeBSD, где ядро и драйверы представляют собой единое целое, в DragonFly BSD, наподобие микроядерных операционных систем, основные функции ядра вынесены в пользовательское пространство, что, как утверждается, позволяет увеличить производительность и надёжность системы в целом при сохранении высокой функциональности ядра, что является ее отличием от микроядерной ОС.
Традиционные для Unix системные вызовы эмулируются только в целях совместимости. Вместо них используется механизм сообщений (messages) и их очередей.
Подчеркивается, что новые релизы DragonFly BSD смогут работать только на 64-разрядных системах. Из улучшений в последнем релизе отмечаются: добавление в драйвер i915 поддержки графических чипов Intel Haswell, поддержка 3D-ускорения, проведение оптимизации производительности сетевого стека в условиях высокой нагрузки, добавление в пакетный фильтр PF (packet filter) поддержки распараллеливания операций на разных моделях процессоров и др.
Для загрузки DragonFly BSD доступен 64-разрядный установочный образ ОС размером 198 Мб для CD и USB Flash. Сформированный образ может работать в Live-режиме.
Отмечается, что в новой версии увеличено число поддерживаемых процессорных ядер с 63 до 256; для прямого обращения к памяти ядра и процессов (без промежуточного обращения через системные вызовы) добавлены новые файлы устройств /dev/upmap и /dev/kpmap; добавлена поддержка графического процессора Haswell GPU; введены улучшения в сетевую подсистему и системы хранения, а также в систему безопасности и др.
В новом USB-стеке USB4BSD (созданном на основе портирования кода из FreeBSD 8) предусмотрена поддержка хост-контроллеров xhci (USB 3.0) и новая система блокировок, эффективная для многоядерных систем (MPSAFE, без привязки к глобальной блокировке).
С целью повышения безопасности (с учетом минимальных вычислительных затрат) добавлена поддержка алгоритма симметричного шифрования ChaCha, разработанного Дэниэлом Бернштайном (Daniel J. Bernstein).
Дистрибутив DragonFly BSD 4.0 построен с использованием BSD Installer. Драйверы устройств портируются из FreeBSD.
2003: Создание ОС
ОС DragonFly BSD создана в 2003 году на базе FreeBSD (4-й ветки), ориентирована на платформу x86.
Примечания
Подрядчики-лидеры по количеству проектов
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
Распределение систем по количеству проектов, не включая партнерские решения
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)
![](/skins/ta/img/0.gif)