DragonFly BSD

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
DragonFly BSD
Изображение логотипа
Разработчик Matthew Dillon и сообщество
Основана на FreeBSD[2]
Первый выпуск 12 июля 2004
Последняя версия
Менеджеры пакетов Порты FreeBSD
Поддерживаемые платформы x86-64
Тип ядра Гибридное ядро
Интерфейс интерфейс командной строки
Лицензия BSD
Состояние Актуальное
Репозиторий исходного кода gitweb.dragonflybsd.org/…
Веб-сайт dragonflybsd.org
Логотип Викисклада Медиафайлы на Викискладе

DragonFly BSD (англ. Dragonfly — стрекоза) — операционная система с открытым кодом[3][4][5], созданная в июле 2003 года на базе FreeBSD (4-й ветки), ориентирована на платформу x86. Один из разработчиков FreeBSD — Мэтт Диллон[англ.][6] с группой товарищей — будучи неудовлетворенным оптимизацией ядра FreeBSD, основал новую операционную систему DragonFlyBSD как масштабируемую систему, предназначенную для работы на высоконагруженных серверах, и более эффективно использующую ресурсы процессора и оперативной памяти, прежде всего на многопроцессорных системах[7][8].

Молодая, но быстро развивающаяся и совершенствующаяся система. Может использоваться как на сервере, так и на рабочей станции, может быть установлена как с 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.

Мэтт Диллон[англ.], был ранее известен как автор компилятора 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].

Примечания

[править | править код]
  1. DragonFly BSD 6.4 — 2022.
  2. http://grok.su/DragonFly/share/misc/bsd-family-tree
  3. 1 2 Евгений Зобнин. Тур по BSD, часть 4. DragonFly, гибридное ядро и HAMMER. xakep.ru (27 мая 2016). Дата обращения: 31 декабря 2021. Архивировано 29 апреля 2022 года.
  4. DragonFly BSD 2.6: towards a free clustering operating system [LWN.net]. Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
  5. 1 2 Релиз операционной системы DragonFly BSD 5.8. Яндекс.Дзен (4 марта 2020). Дата обращения: 31 декабря 2021. Архивировано 12 апреля 2021 года.
  6. 1 2 DragonflyBSD — «стрекоза с рожками». itc.ua (12 июля 2004). Дата обращения: 31 декабря 2021. Архивировано 31 декабря 2021 года.
  7. Архивированная копия. Дата обращения: 3 июля 2018. Архивировано 5 июня 2014 года.
  8. New DragonFly Released For BSD Users - InternetNews. Дата обращения: 3 июля 2018. Архивировано 5 июня 2014 года.
  9. DistroWatch Weekly, Issue 133, 9 January 2006. Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
  10. A Quick Review of DragonFly BSD. Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
  11. Interview with Matthew Dillon of DragonFly BSD. Дата обращения: 3 июля 2018. Архивировано 3 июля 2018 года.
  12. 1 2 3 Federico Biancuzzi. Behind DragonFly BSD. O'Reilly Media (8 июля 2004). Дата обращения: 2 марта 2019. Архивировано из оригинала 13 мая 2011 года.
  13. DistroWatch Weekly, Issue 764, 21 May 2018. Дата обращения: 23 июня 2018. Архивировано 23 июня 2018 года.
  14. 1 2 David Chisnall. DragonFly BSD: UNIX for Clusters? InformIT. Prentice Hall Professional (15 июня 2007). Дата обращения: 6 марта 2019. Архивировано 15 ноября 2019 года.
  15. 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."»
  16. 1 2 Koen Vervloesem. DragonFly BSD 2.6: towards a free clustering operating system. LWN.net (21 апреля 2010). Дата обращения: 7 марта 2019. Архивировано 23 июня 2018 года.
  17. Jeremy C. Reed: Answers from Matt Dillon about DragonFly's virtual kernel. BSD Newsletter .com. Reed Media .net (10 февраля 2007). Дата обращения: 17 ноября 2019. Архивировано 24 февраля 2007 года.
  18. DragonFly BSD: UNIX for Clusters? | Not a Microkernel | InformIT. Дата обращения: 3 июля 2018. Архивировано 5 июня 2014 года.
  19. Daily snapshots. Дата обращения: 20 апреля 2016. Архивировано 25 июня 2017 года.