Открыть главное меню

DragonFly BSD

(перенаправлено с «DragonFlyBSD»)

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

DragonFly BSD
DragonFly BSD Logo.png
DragonFly BSD 4.2.3 bootloader screenshot.png
Разработчик Matthew Dillon и сообщество
Основана на FreeBSD[3]
Первый выпуск 12 июля 2004
Последняя версия
Менеджеры пакетов Порты FreeBSD
Поддерживаемые платформы x86-64
Тип ядра Гибридное ядро
Интерфейс интерфейс командной строки
Лицензия BSD
Состояние Актуальное
Репозиторий исходного кода bxr.su/DragonFly/
Веб-сайт dragonflybsd.org
Commons-logo.svg Медиафайлы на Викискладе

Молодая, но быстро развивающаяся и совершенствующаяся система. Может использоваться как на сервере, так и на рабочей станции, может быть установлена как с GUI (вариант с GUI включает много дополнительных программ, таких как веб-браузер и т. п.), так и с поддержкой только командной строки.

DragonFly BSD рекомендуется к использованию только опытным пользователям[7][8].

В настоящее время ОС стабильно работает в том числе и под длительной серьёзной нагрузкой. Имеются небольшие шероховатости с отдельными портированными приложениями.

Дистрибутив создан с использованием BSD Installer.

Основные отличительные особенностиПравить

Основные отличия DragonFlyBSD от родительской операционной системы FreeBSD таковы:

  • Используются облегчённые нити ядра (LWKT — Light Weight Kernel Threads[en])[9]. Этот механизм является намного лучшей средой для симметричной многопроцессорности «по сравнению с традиционной моделью процесса, которую используют другие BSD, и по сравнению с мьютекс-ориентированной моделью, которую использует FreeBSD-5. Это одна из главных причин, почему мы сделали проект DragonFly. Облегчённые нити обеспечивает чрезвычайно эффективную и масштабируемую среду программирования для систем UP и SMP. FreeBSD-5 в значительной степени отказалась от повышения производительности».[10] «Он проще в использовании и менее подвержен ошибкам. Абстракция токенов часто упрощает код по сравнению с моделью мьютексов, используемой FreeBSD 5 и NetBSD. Сама обработка потока тоже очень аккуратна, потому что она не пытается быть умной, но проста. Нет причудливого механизма вытеснения, кроме хорошо известной мягкой обработки прерываний, нет пинг-понга потоков ядра между процессорами. Это важно для производительности и делает систему более детерминированной».[10]
  • В отличие от в значительной степени монолитной FreeBSD, где ядро и драйверы представляют собой единое целое, в DragonFlyBSD, наподобие микроядерных операционных систем, максимум функций ядра вынесено из пространства памяти ядра в пользовательское пространство. Тем самым достигается как рост производительности, так и надёжность системы в целом. Но при этом DragonFlyBSD не является микроядерной операционной системой, ибо функциональность ядра высока.
  • Традиционные для Unix системные вызовы только эмулируются в целях совместимости. Вместо них используется механизм сообщений (messages) и их очередей, т. н. портов (ports), подобный применяющемуся в микроядре Mach.

ИсторияПравить

Диллон (Matthew Dillon), был ранее известен как автор компилятора DICE C для AmigaOS, а также значительным вкладом в подсистему виртуальной памяти в проекте FreeBSD, где он использовал параллелизм[10]. Это в сочетании с тем, что доступ Диллона к репозиторию исходного кода FreeBSD был отозван из-за ссоры с другими разработчиками FreeBSD, не желающих брать на себя работу, стало причиной создания проекта DragonFly BSD в 2003 году, с реализацией модели симметричной многопроцессорности с использованием облегчённых потоков ядра.[12] [13] Проект DragonFly также привел к разработке нового метода виртуализации ядра в пользовательском пространстве в 2006 году, названного виртуальным ядром (см. vkernel[en]),[12][14] когда код ядра может быть скомпилирован для запуска в пользовательском пространстве, первоначально, для облегчения отладки различных будущих компонентов уровня ядра[15].

На первом крупном этапе проекта, который продолжался до начала 2007 года, проект DragonFly был сосредоточен на переписывании большинства основных подсистем ядра для реализации необходимых абстракций и поддержки разработки параллельных программ для вычислительных кластеров и сетей. Это потребовало большой работы практически во всех подсистемах, особенно в API-интерфейсах файловой системы и ядра.

Диллон построил в ядре DragonFly механизмы обмена сообщениями, которые похожи на модель обмена сообщениями AmigaOS, но он «перестал пытаться использовать обмен сообщениями для взаимодействия драйверов устройств, файловой системы и системных вызовов» [16].

Проект Dragonfly также привел к созданию новой файловой системы, получившей название HAMMER (англ. молот), которую Диллон создал с использованием B-деревьев; HAMMER была объявлена готовой к выпуску в DragonFly 2.2 в 2009 году;[14] и, впоследствии, 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-битной архитектуры.
  • Кроме сборок релизных версий дистрибутива распространяются также ежедневные снимки файловой системы, включающие все актуальные изменения[17].

См. такжеПравить

ПримечанияПравить

  1. http://www.dragonflybsd.org/release56/ — 2019.
  2. https://github.com/DragonFlyBSD/DragonFlyBSD/releases/tag/v5.6.2 — 2019.
  3. http://grok.su/DragonFly/share/misc/bsd-family-tree
  4. DragonFly BSD 2.6: towards a free clustering operating system [LWN.net]
  5. http://www.lemis.com/~grog/SMPng/USENIX/paper.pdf
  6. New DragonFly Released For BSD Users - InternetNews.
  7. DistroWatch Weekly, Issue 133, 9 January 2006
  8. A Quick Review of DragonFly BSD
  9. Interview with Matthew Dillon of DragonFly BSD
  10. 1 2 3 Federico Biancuzzi. Behind DragonFly BSD. O'Reilly Media (8 июля 2004). Дата обращения 2 марта 2019.
  11. DistroWatch Weekly, Issue 764, 21 May 2018
  12. 1 2 David Chisnall. DragonFly BSD: UNIX for Clusters?. InformIT. Prentice Hall Professional (15 июня 2007). Дата обращения 6 марта 2019.
  13. David Chisnall. The Go Programming Language Phrasebook. — 1st. — Addison-Wesley Professional. — P. 5. — «"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."». — ISBN 978-0-321-81714-3.
  14. 1 2 Koen Vervloesem. DragonFly BSD 2.6: towards a free clustering operating system. LWN.net (21 апреля 2010). Дата обращения 7 марта 2019.
  15. Jeremy C. Reed: Answers from Matt Dillon about DragonFly's virtual kernel. BSD Newsletter .com. Reed Media .net (10 февраля 2007). Архивировано 24 февраля 2007 года.
  16. DragonFly BSD: UNIX for Clusters? | Not a Microkernel | InformIT
  17. Daily snapshots

СсылкиПравить