DragonFly BSD (англ. Dragonfly — стрекоза) — операционная система с открытым кодом[3][4][5], созданная в июле 2003 года на базе FreeBSD (4-й ветки), ориентирована на платформу x86. Один из разработчиков FreeBSD — Мэтт Диллон[англ.][6] с группой товарищей — будучи неудовлетворенным оптимизацией ядра FreeBSD, основал новую операционную систему DragonFlyBSD как масштабируемую систему, предназначенную для работы на высоконагруженных серверах, и более эффективно использующую ресурсы процессора и оперативной памяти, прежде всего на многопроцессорных системах[7][8].
DragonFly BSD | |
---|---|
Разработчик | Matthew Dillon и сообщество |
Основана на | FreeBSD[2] |
Первый выпуск | 12 июля 2004 |
Последняя версия |
|
Менеджеры пакетов | Порты FreeBSD |
Поддерживаемые платформы | x86-64 |
Тип ядра | Гибридное ядро |
Интерфейс | интерфейс командной строки |
Лицензия | BSD |
Состояние | Актуальное |
Репозиторий исходного кода | gitweb.dragonflybsd.org/… |
Веб-сайт | dragonflybsd.org |
Медиафайлы на Викискладе |
Молодая, но быстро развивающаяся и совершенствующаяся система. Может использоваться как на сервере, так и на рабочей станции, может быть установлена как с GUI (вариант с GUI включает много дополнительных программ, таких как веб-браузер и т. п.), так и с поддержкой только командной строки.
DragonFly BSD рекомендуется к использованию только опытным пользователям[3][6][9][10].
В настоящее время ОС стабильно работает в том числе и под длительной серьёзной нагрузкой. Имеются небольшие шероховатости с отдельными портированными приложениями.
Дистрибутив создан с использованием BSD Installer.
Основные отличительные особенности
правитьОсновные отличия DragonFlyBSD от родительской операционной системы FreeBSD таковы:
- Используются облегчённые потоки ядра (LWKT — Light Weight Kernel Threads[англ.])[11]. Этот механизм является намного лучшей средой для симметричной многопроцессорности «по сравнению с традиционной моделью процесса, которую используют другие BSD, и по сравнению с мьютекс-ориентированной моделью, которую использует FreeBSD-5. Это одна из главных причин, почему мы сделали проект DragonFly. Облегчённые потоки обеспечивает чрезвычайно эффективную и масштабируемую среду программирования для систем UP и SMP. FreeBSD-5 в значительной степени отказалась от повышения производительности».[12] «Он проще в использовании и менее подвержен ошибкам. Абстракция токенов часто упрощает код по сравнению с моделью мьютексов, используемой FreeBSD 5 и NetBSD. Сама обработка потока тоже очень аккуратна, потому что она не пытается быть умной, но проста. Нет причудливого механизма вытеснения, кроме хорошо известной мягкой обработки прерываний, нет пинг-понга потоков ядра между процессорами. Это важно для производительности и делает систему более детерминированной»[12].
- В отличие от в значительной степени монолитной FreeBSD, где ядро и драйверы представляют собой единое целое, в DragonFlyBSD, наподобие микроядерных операционных систем, максимум функций ядра вынесено из пространства памяти ядра в пользовательское пространство. Тем самым достигается как рост производительности, так и надёжность системы в целом. Но при этом DragonFlyBSD не является микроядерной операционной системой, ибо функциональность ядра высока.
- Традиционные для Unix системные вызовы только эмулируются в целях совместимости. Вместо них используется механизм сообщений (messages) и их очередей, т. н. портов (ports), подобный применяющемуся в микроядре Mach.
- Особо устойчивая и надёжная файловая система HAMMER2[5][13].
История
правитьМэтт Диллон[англ.], был ранее известен как автор компилятора DICE C для AmigaOS, а также значительным вкладом в подсистему виртуальной памяти в проекте FreeBSD, где он использовал параллелизм[12]. Это в сочетании с тем, что доступ Диллона к репозиторию исходного кода FreeBSD был отозван из-за ссоры с другими разработчиками FreeBSD, не желающих брать на себя работу, стало причиной создания проекта DragonFly BSD в 2003 году, с реализацией модели симметричной многопроцессорности с использованием облегчённых потоков ядра[14] [15]. Проект DragonFly также привел к разработке нового метода виртуализации ядра в пользовательском пространстве в 2006 году, названного виртуальным ядром[англ.][14][16], когда код ядра может быть скомпилирован для запуска в пользовательском пространстве, первоначально, для облегчения отладки различных будущих компонентов уровня ядра[17].
На первом крупном этапе проекта, который продолжался до начала 2007 года, проект DragonFly был сосредоточен на переписывании большинства основных подсистем ядра для реализации необходимых абстракций и поддержки разработки параллельных программ для вычислительных кластеров и сетей. Это потребовало большой работы практически во всех подсистемах, особенно в API-интерфейсах файловой системы и ядра.
Диллон построил в ядре DragonFly механизмы обмена сообщениями, которые похожи на модель обмена сообщениями AmigaOS, но он «перестал пытаться использовать обмен сообщениями для взаимодействия драйверов устройств, файловой системы и системных вызовов» [18].
Проект Dragonfly также привел к созданию новой файловой системы, получившей название HAMMER (англ. молот), которую Диллон создал с использованием B-деревьев; HAMMER была объявлена готовой к выпуску в DragonFly 2.2 в 2009 году[16]; и, впоследствии, HAMMER2, объявленная стабильной в 2018 году в DragonFly 5.2. Эта файловая система была разработана для решения многочисленных проблем и добавления многих но��ых возможностей к DragonFly, не только таких как снимок файловой системы, но и мгновенное восстановление после сбоев и почти зеркальное отображение в реальном времени. Файловая система HAMMER также предназначена служить основой для кластеризации и других следующих по плану работ.
В конце 2011 года система основные подсистемы ядра стали использовать симметричную многопроцессорность, а в 2013-2014 годах также был повышен параллелизм за счет подсистем PID, PGRP и SESSION, а также системных вызовов fork/exec/exit/wait, реализован механизм подкачки страниц на многопроцессорных системах, что значительно повысило производительность операционной системы.
В 2012 году Francois Tigeot и специальная группа помощников начали переоснащение DRM с активным портом от Linux, продвигая DragonFly к современным стандартам. В 2015 году выполнена полностью ускоренная поддержка 2D, 3D, а видео работает с сервером Xorg. Примерно в то же время были также предприняты согласованные усилия по обновлению звуковой системы с основным портом HDA от FreeBSD.
Дистрибутивы
править- Дистрибутив существует в 2 вариантах: для записи на компакт-диск (файл с расширением iso) либо на flash-носитель (файл с расширением img). Дистрибутив может использоваться как для работы без установки (LiveCD), так и для установки на жесткий диск.
- Начиная с версии 3.8 предоставляются образы только для 64-битной архитектуры.
- Кроме сборок релизных версий дистрибутива распространяются также ежедневные снимки файловой системы, включающие все актуальные изменения[19].
См. также
правитьПримечания
править- ↑ DragonFly BSD 6.4 — 2022.
- ↑ http://grok.su/DragonFly/share/misc/bsd-family-tree
- ↑ 1 2 Евгений Зобнин. Тур по BSD, часть 4. DragonFly, гибридное ядро и HAMMER . xakep.ru (27 мая 2016). Дата обращения: 31 декабря 2021. Архивировано 29 апреля 2022 года.
- ↑ DragonFly BSD 2.6: towards a free clustering operating system [LWN.net] . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ 1 2 Релиз операционной системы DragonFly BSD 5.8 . Яндекс.Дзен (4 марта 2020). Дата обращения: 31 декабря 2021. Архивировано 12 апреля 2021 года.
- ↑ 1 2 DragonflyBSD — «стрекоза с рожками» . itc.ua (12 июля 2004). Дата обращения: 31 декабря 2021. Архивировано 31 декабря 2021 года.
- ↑ Архивированная копия . Дата обращения: 3 июля 2018. Архивировано 5 июня 2014 года.
- ↑ New DragonFly Released For BSD Users - InternetNews. Дата обращения: 3 июля 2018. Архивировано 5 июня 2014 года.
- ↑ DistroWatch Weekly, Issue 133, 9 January 2006 . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ A Quick Review of DragonFly BSD . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ Interview with Matthew Dillon of DragonFly BSD . Дата обращения: 3 июля 2018. Архивировано 3 июля 2018 года.
- ↑ 1 2 3 Federico Biancuzzi. Behind DragonFly BSD . O'Reilly Media (8 июля 2004). Дата обращения: 2 марта 2019. Архивировано из оригинала 13 мая 2011 года.
- ↑ DistroWatch Weekly, Issue 764, 21 May 2018 . Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
- ↑ 1 2 David Chisnall. DragonFly BSD: UNIX for Clusters? InformIT. Prentice Hall Professional (15 июня 2007). Дата обращения: 6 марта 2019. Архивировано 15 ноября 2019 года.
- ↑ David Chisnall. Why Go? // The Go Programming Language Phrasebook. — 1st. — Addison-Wesley Professional. — С. 5. — ISBN 978-0-321-81714-3.. — «"In creating DragonFly BSD, Matt Dillon observed that there was no point in creating an N:M threading model—where N userspace threads are multiplexed on top of M kernel threads—because C code that uses more than a handful of threads is very rare."»
- ↑ 1 2 Koen Vervloesem. DragonFly BSD 2.6: towards a free clustering operating system . LWN.net (21 апреля 2010). Дата обращения: 7 марта 2019. Архивировано 23 июня 2018 года.
- ↑ Jeremy C. Reed: Answers from Matt Dillon about DragonFly's virtual kernel . BSD Newsletter .com. Reed Media .net (10 февраля 2007). Дата обращения: 17 ноября 2019. Архивировано 24 февраля 2007 года.
- ↑ DragonFly BSD: UNIX for Clusters? | Not a Microkernel | InformIT . Дата обращения: 3 июля 2018. Архивировано 5 июня 2014 года.
- ↑ Daily snapshots . Дата обращения: 20 апреля 2016. Архивировано 25 июня 2017 года.
Ссылки
править- dragonflybsd.org (англ.)
- DragonFly Wiki (англ.)
В другом языковом разделе есть более полная статья DragonFly BSD (англ.). |