دراگون‌فلای بی‌اس‌دی

دراگون‌فلای بی‌اس‌دی یک سیستم‌عامل آزاد و شبه یونیکس است که از فری‌بی‌اس‌دی ۴٫۸ منشعب شده‌است. بنیان‌گذار این پروژه، متیو دیلون است که یک توسعه‌دهنده آمیگا در اواخر دهه ۱۹۸۰ و اوایل ۱۹۹۰ و همچنین یکی از توسعه‌دهندگان فری‌بی‌اس‌دی طی سال‌های ۱۹۹۴ تا ۲۰۰۳ بود. او کار بر روی دراگون‌فلای بی‌اس‌دی را در ژوئن ۲۰۰۳ آغاز کرد و خبر آغاز بکار این پروژه را در ۱۶ ژوئن ۲۰۰۳ در لیست پستی فری‌بی‌اس‌دی اعلام کرد. دراگون‌فلای در زبان انگلیسی به معنای سنجاقک است.
دیلون به این دلیل پروژه دراگون‌فلای بی‌اس‌دی را آغاز کرد که باور داشت روش‌ها و تکنیک‌هایی که در فری‌بی‌اس‌دی نسخه ۵ برای پیاده‌سازی چند پردازشی متقارن و ریسه‌بندی انتخاب شده بود، باعث می‌شد تا عملکرد سیستم ضعیف شود و نگهداری از کدهای منبع آن سخت شود. او قصد داشت این مشکلات را در فری‌بی‌اس‌دی اصلاح کند اما به دلیل اختلاف نظر با دیگر توسعه‌دهندگان فری‌بی‌اس‌دی بر سر پیاده‌سازی این ایده‌ها، سرانجام دسترسی کامیت کردن به صورت مستقیم در درخت کد منبع فری‌بی‌اس‌دی، از او گرفته شد. با این وجود، پروژه‌های فری‌بی‌اس‌دی و دراگون‌فلای بی‌اس‌دی هنوز هم در زمینه‌هایی از جمله رفع باگ‌های نرم‌افزاری، بروزرسانی درایورها و دیگر موارد، با هم همکاری می‌کنند و در ارتباط هستند.
در حال حاضر، توسعه دراگون‌فلای، که قرار بوده ادامه‌دهنده راه سری ۴ فری‌بی‌اس‌دی باشد، فاصله زیادی با نسخه‌های حال حاضر فری‌بی‌اس‌دی گرفته‌است. یک پیاده‌سازی جدید از ریسه‌های کرنلی سبک وزن ، یک سامانه مدیریت بسته/درخت پورت‌های سبک‌وزن، یک سیستم پیام‌رسانی کم‌حجم، و یک فایل سیستم مدرن با امکانات زیاد به نام HAMMER، از جمله فناوری‌هایی هستند که توسط پروژه دراگون‌فلای معرفی شده‌اند. اهداف پروژه دراگون‌فلای بی‌اس‌دی، عمدتا با الهام‌گیری از سیستم‌عامل آمیگااواس تدوین شده‌اند.
تاریخچه
متیو دیلون، بنیان‌گذار و توسعه‌دهنده دراگون‌فلای بی‌اس‌دی
پروژه دراگون‌فلای بی‌اس‌دی، توسط متیو دیلون (زاده ۱۹۶۶)، دانشمند علوم رایانه اهل ایالات متحده آمریکا بنیان نهاده شده‌است. او در رشته‌های مهندسی الکترونیک و علوم رایانه در دانشگاه کالیفرنیا، برکلی تحصیل کرده‌است و اولین بار در همان دانشگاه در سال ۱۹۸۵ با بی‌اس‌دی آشنا شد. دیلون همچنین بخاطر نوشتن یک کامپایلر برای زبان برنامه‌نویسی سی بنام DICE، برنامه‌نویسی بر روی آمیگا، کار بر روی هسته لینوکس و همچنین کشف یک باگ در پردازنده مدل اوپترون شرکت AMD شناخته می‌شود. او بنیان‌گذار BEST Internet بود و طی سال‌های ۱۹۹۴ تا ۱۹۹۷ در همان‌جا مشغول به‌کار بود و همچنین در پروژه فری‌بی‌اس‌دی هم مشارکت می‌کرد. دیلون یک برنامه خبررسان اینترنتی به نام «دیابلو» نوشته بود که برنامه محبوبی در میان ارائه‌دهندگان خدمات اینترنتی بود. دیلون در سال ۱۹۹۷، دسترسی کامیت به کد منبع فری‌بی‌اس‌دی دریافت کرد و در کنار مشارکت‌های دیگرش در این پروژه، کمک‌های زیادی به زیرسیستم حافظه مجازی در این سیستم‌عامل کرد. او در سال ۲۰۰۳ پروژه دراگون‌فلای بی‌اس‌دی را با انشعاب از فری‌بی‌اس‌دی بنیان نهاد. علت این‌کار، کشمکش و نزاع با دیگر توسعه‌دهندگان فری‌بی‌اس‌دی بود که باعث شده بود دسترسی او به مخازن کد منبع فری‌بی‌اس‌دی قطع شود. پروژه دراگون فلی‌بی‌اس‌دی منجر به توسعه‌یافتن یک فایل سیستم جدید به نام HAMMER شد که دیلون این فایل سیستم را براساس ساختارداده درخت بی‌نوشته است. HAMMER در کنار UFS، فایل سیستم پیشفرض در سیستم‌عامل دراگون‌فلای است.
ساختار سیستم
هسته
هسته دراگون‌فلای یک هسته پیوندی است که هم ویژگی‌های هسته یکپارچه و هم ویژگی‌های ریزهسته را باهم دارد. برای مثال، هسته دراگون‌فلای مجهز به قابلیت ارسال پیغام است که در ریزهسته‌ها پیدا می‌شود؛ این قابلیت اجازه می‌دهد تا قسمت‌های بیشتری از سیستم‌عامل بتواند از حافظه محافظت‌شده بهره‌مند گردد، به‌طوری‌که همچنان در انجام برخی از کارهای حیاتی، سرعتی برابر با سرعت هسته‌های یکپارچه را داشته باشد. زیرسیستم پیام‌رسانی دراگون‌فلای بی‌اس‌دی، مشابه دیگر زیرسیستم‌های پیام‌رسانی — که در برخی ریزهسته‌ها از جمله گنو ماخ یافت می‌شوند — طراحی شده است؛ با این حال، طراحی زیرسیستم پیام‌رسانی دراگون‌فلای از پیچیدگی کمتری برخوردار است. این زیرسیستم، هم می‌تواند به صورت همگام و هم به صورت ناهمگام عمل کند و تلاش می‌کند تا از این توانایی به نحوی استفاده کند که در هر موقعیتی، بهترین کارایی ممکن حاصل شود.
بر طبق گفته توسعه‌دهنده دراگون‌فلای بی‌اس‌دی، متیو دیلون، پیشرفت‌هایی هم در آماده‌سازی قابلیت پیام‌رسانی هم برای دستگاه‌های ورودی/خروجی و هم برای فایل سیستم مجازی حاصل شده‌است که برآورده شدن باقی اهداف پروژه را تسهیل می‌کند. زیرساخت جدید، این امکان را فراهم می‌کند تا بتوان بسیاری از بخش‌های هسته را به فضای کاربری منتقل کرد. در فضای کاربری، می‌توان این بخش‌ها را راحت‌تر اشکال‌زدایی کرد، چرا که برنامه‌ها در فضای کاربری، کوچکتر و منزوی‌تر هستند؛ برخلاف برنامه‌های موجود در هسته که معمولا برنامه‌ها بخش‌های کوچکی از یک قطعه کد بزرگتر به حساب می‌آیند و مدیریت آن‌ها سخت‌تر است. علاوه بر آن، منتقل کردن کدهای هسته به بخش فضای کاربری، باعث پایدارتر شدن و مستحکم‌تر شدن سیستم می‌شود، به عنوان مثال، اگر یکی از گرداننده‌های دستگاه دچار اشکال شود، تنها همان بخش تحت تاثیر قرار خواهد گرفت و در کار کل هسته اختلال ایجاد نخواهد کرد.
فراخوان‌های سیستمی به دو بخش فضای کاربری و فضای هسته تقسیم شده‌اند و در پیام‌ها کپسوله‌سازی می‌شوند. این کار باعث می‌شود تا با منتقل کردن برخی از فرخوان‌های سیستمی استاندارد، به یک لایه سازگاری که در فضای کاربری قرار دارد، پیچیدگی و حجم هسته سیستم‌عامل کمتر شود. علاوه بر آن، این کار حفظ سازگاری بین نسخه‌های پسین و پیشین دراگون‌فلای را هم راحت‌تر می‌کند. کدهای مربوط به سازگاری با لینوکس و دیگر سیستم‌عامل‌های شبه یونیکس هم به بیرون از هسته منتقل شده‌اند.
دراگون‌فلای بی‌اس‌دی هم همانند جد خود فری‌بی‌اس‌دی، از قابلیت زندان‌ها پشتیبانی می‌کند که مدل پیشرفته‌تری از chroot است. به کمک زندان‌ها، می‌توان چند سیستم‌عامل مهمان را به صورت هم‌زمان بر روی دراگون‌فلای اجرا کرد، به‌طوری‌که هسته سیستم میزبان، بین همه آن‌ها به اشتراک گذاشته می‌شود. اما زندان‌ها را نمی‌توان به معنای واقعی کلمه، یک راه حل مجازی‌سازی به حساب آورد، چرا که سیستم‌عامل‌های مهمان تنها می‌توانند مشابه سیستم میزبان، دراگون‌فلای بی‌اس‌دی، باشند.
ریسه‌بندی
از آنجایی که پشتیبانی از چندین معماری پردازنده، باعث می‌شود تا پشتیبانی کردن از چند پردازشی متقارن هم پیچیده‌تر شود، پروژه دراگون‌فلای بی‌اس‌دی، پشتیبانی از سکوهای سخت‌افزاری خود را محدود به تنها سکوی x86-64 کرده‌است. دراگون‌فلی در ابتدا از سکوی x86 هم پشتیبانی می‌کرد، با این حال در نسخه ۴٫۰ پشتیبانی از سکو قطع شد. و در نسخه ۴.۰، به‌طور کلی پشتیبانی از 32-bit را متوقف کرد، دراگون‌فلای بی‌اس‌دی از نسخه ۱٫۱۰ به بعد، از ریسه‌بندی فضای کاربری به صورت ۱:۱ پشتیبانی می‌کند (یک ریسه در هسته، به ازای هر ریسه در فضای کاربری) که در مقایسه با مدل N:M راه‌حلی نسبتا آسان محسوب می‌شود و پیاده‌سازی و نگهداری از آن هم راحت‌تر است. همچنین، دراگون‌فلای پشتیبانی از چندریسگی را از فری‌بی‌اس‌دی به ارث برده است و از این قابلیت پشتیبانی می‌کند.
در دراگون‌فلای بی‌اس‌دی، هر یک از پردازنده‌ها، زمان‌بند LWKT مخصوص به خودش را دارد. ریسه‌ها به محض ایجاد شدن، به یک پردازنده خاص اختصاص می‌یابند و هرگز به‌طور قبضه‌کردنی بین پردازنده‌ها تعویض نمی‌شوند؛ تنها راه منتقل کردن یک ریسه از یک پردازنده به پردازنده دیگر، ردوبدل شدن یک پیغام وقفه بین-پردازنده‌ای یا IPI بین پردازنده‌های درگیر است که این پیغام‌ها، به صورت ناهمگام ارسال می‌شوند. یکی از مزایای این نوع زیرسیستم ریسه‌بندی بخش‌بخش شده، این است که در سیستم‌هایی که دارای چندین پردازنده هستند، حافظه‌های نهان موجود بر روی پردازنده‌ها، دارای اطلاعات تکراری و زائد نخواهند بود که این باعث می‌شود هر پردازنده، بتواند از حافظه نهان خود برای ذخیره کردن اطلاعاتی که قرار است بر روی آن کار کند، استفاده کند و به این ترتیب کارایی سیستم بالاتر رود.
از زیرسیستم LWKT به منظور تقسیم کردن کارها در بین چند ریسه هسته، بهره گرفته شده‌است (به عنوان مثال، در کدهای مربوط به بخش شبکه، یک ریسه به ازای هر پروتکل در هر پردازنده وجود دارد)، این کار باعث می‌شود تا رقابت برای بدست آوردن منابع سیستمی کمتر شود، چرا که دیگر نیاز نیست تا برخی از منابع سیستم در بین تسک‌های هسته به اشتراک گذاشته شود.
حفاظت از منابع اشتراکی
به منظور اینکه سیستم‌عامل بر روی رایانه‌هایی که دارای چندین پردازنده هستند، به صورت ایمن اجرا شود، دسترسی به منابع مشترک (همانند فایل‌ها و ساختمان داده‌ها) باید به صورت نوبتی باشد تا فرایندها یا ریسه‌ها سعی نکنند یک منبع مشترک را به صورت هم‌زمان تغییر داده و دستکاری کنند. به منظور اینکه چندین ریسه مختلف نتوانند به صورت هم‌زمان یک منبع مشترک را تغییر داده یا مورد دسترسی قرار دهند، دراگون‌فلای از نواحی بحرانی و همین‌طور از توکن‌های نوبت‌بندی استفاده می‌کند. در حالیکه هم لینوکس و هم فری‌بی‌اس‌دی ۵، به منظور بدست آوردن کارایی بالا در سیستم‌های چندپردازنده‌ای، از مدل‌های جامع و دقیق مبتنی بر mutex برای کنترل دسترسی به منابع اشتراکی استفاده می‌کنند، دراگون‌فلای بی‌اس‌دی این‌گونه نیست. تا همین اواخر، دراگون‌فلای بی‌اس‌دی از splها هم استفاده می‌کرد، اما اکنون آن‌ها با نواحی بحرانی جایگزین شده‌اند.
بیشتر بخش‌های اصلی سیستم، از جمله زیرسیستم LWKT، زیرسیستم پیام‌رسانی IPI و تخصیص‌دهنده حافظه هسته جدید، به صورت قفل‌نشدنی هستند؛ به این معنی که آن‌ها از mutexها استفاده نمی‌کنند و هر یک از فرایندها هم بر روی یک پردازنده اجرا می‌شود. برای هر پردازنده، ناحیه‌ای بحرانی وجود دارد که از آن برای حفاظت در برابر وقفه‌های محلی استفاده می‌شود؛ این کار تضمین می‌کند ریسه‌ای که هم‌اکنون در حال اجراست، قبضه نخواهد شد.
برای جلوگیری از وقوع دسترسی هم‌زمان از طرف دیگر پردازنده‌ها، از توکن‌های نوبت‌بندی استفاده شده‌است و چند ریسه می‌توانند به‌طور هم‌زمان این توکن‌ها را در اختیار داشته باشند تا این اطمینان حاصل شود که در هر زمان، تنها یکی از آن ریسه‌ها می‌تواند اجرا می‌شود. ریسه‌های مسدودشده یا به‌خواب‌رفته، از دسترسی دیگر ریسه‌ها به منابع مشترک جلوگیری نمی‌کنند که این برخلاف حالتی است که از mutex‌ها برای کنترل دسترسی به منابع مشترک استفاده می‌شود. در کنار دیگر چیزها، استفاده از توکن‌های نوبت‌بندی از بسیاری از موقعیت‌هایی که ممکن است باعث وقوع بن‌بست یا واژگونی اولویتی در حین استفاده از mutexها شود، جلوگیری می‌کند و همچنین به‌طور قابل ملاحظه‌ای طراحی و پیاده‌سازی رویه چند مرحله‌ای را ساده‌تر می‌کند که احتیاج به این دارد که یک منبع در میان چند ریسه به اشتراک گذاشته شود. زیرسیستم توکن نوبت‌بندی، در حال حاضر بسیار شبیه به ویژگی Read-copy-update در لینوکس شده‌است. اما برخلاف پیاده‌سازی فعلی RCU در لینوکس، این بخش در دراگون‌فلای طوری پیاده‌سازی شده که تنها پردازنده‌هایی که بر روی توکن یکسانی در رقابت هستند، تحت تاثیر قرار می‌گیرند، نه کل پردازنده‌های موجود در سیستم.
دراگون‌فلای از یک تخصیص‌دهنده پاره‌ای استفاده می‌کند که برای اختصاص دادن حافظه به برنامه‌ها، نه نیاز به استفاده از mutexها و نه نیاز به انجام عملیاتی از نوع مسدودشدنی دارد. این تخصیص‌دهنده، برای استفاده در فضای کاربری، به کتابخانه استاندارد سی هم پورت شده و جای پیاده‌سازی malloc فری‌بی‌اس‌دی را گرفته‌است.
هسته مجازی
از نسخه ۱٫۸ به بعد، دراگون‌فلای بی‌اس‌دی یک راهکار مجازی‌سازی مشابه UML را معرفی کرده که به کمک آن می‌توان یک هسته دیگر که از هسته اصلی سیستم‌عامل مستقل است را در داخل فضای کاربری اجرا کرد. این هسته مجازی ، در یک محیط کاملا مجزا و قرنطینه اجرا می‌شود و رابط‌های شبکه و رابط‌های ذخیره‌سازی آن هم به صورت شبیه‌سازی‌شده هستند. این قابلیت، خوشه‌بندی و آزمایش کردن زیرسیستم‌های مختلف هسته را ساده‌تر می‌کند.
هسته مجازی دو تفاوت عمده با هسته اصلی سیستم‌عامل دارد. یکی اینکه این هسته مجازی، بسیاری از روتین‌ها و قابلیت‌های مدیریت سطح پایین سخت‌افزار را ندارد و همچنین تا جایی که امکان دارد از توابع موجود در کتابخانه استاندارد سی، در عوض پیاده‌سازی‌های موجود در هسته، استفاده می‌کند. از آنجایی که هم هسته مجازی و هم هسته واقعی از روی کد منبع یکسانی کامپایل می‌شوند، رویه‌های وابسته به پلتفرم و پیاده‌سازی‌های مجدد توابع کتابخانه استاندارد سی به‌طور کاملا مستقل در درخت کدهای منبع نگهداری می‌شوند.
سکویی که هسته مجازی بر روی آن اجرا می‌شود، در اصل یک لایه انتزاعی سطح بالا است که هسته اصلی آن را فراهم کرده. این لایه انتزاعی شامل یک زمان‌سنج مبتنی بر kqueue، یک کنسول (که در اصل همان ترمینالی است که هسته مجازی از طریق آن اجرا شده)، ایمیج هارددیسک (یک فایل که با آن مثل دیسک سخت رفتار می‌شود) و یک رابط اترنت، که تمامی بسته‌های دریافتی را به رابط tap سیستم میزبان تونل می‌زند.
مدیر بسته
در دراگون‌فلای بی‌اس‌دی، می‌توان از طریق pkgng، نرم‌افزارهای جانبی را به صورت بسته‌های باینری از قبل کامپایل شده نصب کرد یا اینکه از طریق یک مجموعه پورت‌های مختص خود دراگون‌فلای که دی‌پورتز نام دارد، اقدام به نصب برنامه‌های جانبی کرد.
دراگون‌فلای بی‌اس‌دی در اوایل از پورت‌های فری‌بی‌اس‌دی به‌عنوان مدیر بسته اصلی خود استفاده می‌کرد. اما از نسخه ۱٫۴ به بعد، توسعه‌دهندگان، پکیج سورس را به‌عنوان مدیر بسته رسمی برگزیدند. به این ترتیب، توسعه‌دهندگان دراگون‌فلای بی‌اس‌دی مجبور نبودند وقت زیادی را برای نگه‌داری کردن از تعداد زیادی برنامه جانبی صرف کنند، در حالی که هنوز هم به برنامه‌های بروز دسترسی داشتند. همچنین این کار به توسعه‌دهندگان پکیج سورس هم این امکان را می‌داد تا مطمئن شوند که سامانه مدیریت بسته آن‌ها قابل حمل و سازگارپذیر است.
سازگار نگه‌داشتن دراگون‌فلای بی‌اس‌دی با پکیج‌سورس، نیازمند تلاش‌ها و زحمات بیشتری شده بود که در ابتدا پیش‌بینی نشده بود؛ بنابراین، پروژه دراگون‌فلای مکانیزم جدیدی به نام DPorts را معرفی کرد که در اصل یک پوسته برای پورت‌های فری‌بی‌اس‌دی است.
CARP
پیاده‌سازی اولیه از پروتکل آدرس اضافه مشترک یا همان CARP در مارس ۲۰۰۷ به اتمام رسید. در سال ۲۰۱۱ هم پشتیبانی از این پروتکل به دراگون‌فلای بی‌اس‌دی اضافه شد.
فایل سیستم HAMMER
در کنار سیستم فایل یونیکس، که در اکثر سیستم‌عاملهای بی‌اس‌دی فایل سیستم پیشفرض است، دراگون‌فلای بی‌اس‌دی فایل سیستم جدیدی به نام HAMMER را معرفی کرده‌است. فایل سیستم HAMMER که اختصاصا برای دراگون‌فلای توسعه داده شده، فایل سیستمی مشابه ZFS با امکانات بالا و در عین حال با طراحی بهتر است.
HAMMER از تاریخچه فایل سیستم قابل تنظیم‌شدن، تصویر لحظه‌ای، چک‌سام، جلوگیری از ذخیره‌شدن اطلاعات دوگانه و تکراری و دیگر قابلیت‌های معمول در فایل سیستم‌هایی از این قبیل پشتیبانی می‌کند. این فایل سیستم به عنوان یکی از قابلیت‌های جالب توجه دراگون‌فلای در نظر گرفته می‌شود.
نسل جدید این فایل سیستم موسوم به ،HAMMER2 توسط متیو دیلون در حال توسعه داده شدن است. فایل سیستم HAMMER2 در نسخه ۳٫۸ دراگون‌فلای در نصب پیشفرض قرار گرفت، اما هنوز قابل استفاده نیست و توسعه آن هنوز هم ادامه دارد.
devfs
در سال ۲۰۰۷ پروژه دراگون‌فلای بی‌اس‌دی از یک فایل سیستم دستگاهی جدید بهره‌مند گشت که گره‌های دستگاهی را به صورت پویا حذف و اضافه می‌کند و دسترسی به دستگاه‌ها را با استفاده از مسیرهای ارتباطی میسر می‌سازد. همچنین، این فایل سیستم، می‌تواند درایورها را با استفاده از شماره سریال آن‌ها شناسایی کند و دیگر به یک فایل سیستم از قبل پر شده در مسیر /dev احتیاج ندارد. این سیستم devfs در پروژه تابستان کد گوگل طراحی شده‌است.
تصاویر لحظه‌ای از برنامه‌های کاربردی
دراگون‌فلای بی‌اس‌دی از قابلیتی مشابه قابلیت برنامه‌های مقیم در سیستم‌عامل آمیگا پشتیبانی می‌کند. به موجب این قابلیت، وقتی که یک برنامه بزرگ که به صورت دینامیک لینک شده، در حافظه اصلی سیستم بارگذاری می‌شود، یک تصویر لحظه‌ای از فضای حافظه مجازی آن برنامه، برای استفاده در آینده، تهیه می‌شود. به این ترتیب، اگر در آینده نیاز به اجرای مجدد آن برنامه بود، برنامه مورد نظر با سرعتی بسیار بیشتر از حد معمول خود اجرا خواهد شد. این قابلیت، جایگزین prelink شده‌است که در گذشته‌استفاده می‌شد و از آن بسیار موثرتر است. برنامه‌های بزرگ که دارای کتابخانه‌های اشتراکی زیادی هستند، بیشترین فایده را از این قابلیت خواهند برد.
توسعه و توزیع
دراگون‌فلای بی‌اس‌دی حدود ۵۰ توسعه‌دهنده دارد. همانند فری‌بی‌اس‌دی و اوپن‌بی‌اس‌دی، توسعه‌دهندگان دراگون‌فلای بی‌اس‌دی هم به آهستگی مشغول جایگزین کردن کدهای خود از شیوه K-R با معادل مدرن‌تر ANSI هستند. همانند دیگر سیستم‌عامل‌ها، قابلیت حفاظت در برابر حملات تخریب پشته به صورت پیشفرض در کامپایلر فعال است. قابل ذکر است که از تاریخ ۲۳ ژوئیه ۲۰۰۵ به بعد، هسته سیستم دیگر به صورت پیشفرض با خاموش بودن این قابلیت کامپایل می‌شود.
از آنجایی که دراگون‌فلای بی‌اس‌دی از فری‌بی‌اس‌دی مشتق شده است، به راحتی و با اجرای چند دستور ساده می‌توان اقدام به کامپایل مجدد کل سیستم‌عامل از روی کدهای منبع کرد. توسعه‌دهندگان دراگون‌فلای بی‌اس‌دی، از برنامه گیت برای نگهداری، اعمال تغییرات و کنترل کدهای منبع خود استفاده می‌کنند. برخلاف فری‌بی‌اس‌دی، توسعه‌دهندگان دراگون‌فلای بی‌اس‌دی، به سبب کوچکتر بودن تیم توسعه‌دهندگان، هر دو شاخه پایدار و ناپایدار کدهای منبع را در یک درخت نگه می‌دارند.
سیستم‌عامل دراگون‌فلای بی‌اس‌دی به صورت دیسک زنده و USB زنده ارائه می‌شود. این دیسک‌ها را می‌توان به صورت رایگان، به همراه کدهای منبع، از وب‌گاه رسمی این سیستم‌عامل دریافت کرد. تعدادی از شرکت‌های تجاری هم این دیسک‌ها را به‌فروش می‌رسانند. بدون اینکه نیازی به نصب سیستم‌عامل باشد، می‌توان کل سیستم‌عامل را با تمام قابلیت‌های آن از روی همین رسانه‌ها راه‌اندازی کرد. همچنین تمامی اجزای X11 هم در این دیسک گنجانده شده‌است. این دیسک شامل تمام اجزای پایه‌ای سیستم‌عامل و همین‌طور صفحات راهنما است؛ اما ممکن است در آینده کدهای منبع سیستم‌عامل و همچنین تعدادی نرم‌افزار مفید دیگر هم در آن گنجانده شود. مزیت این کار این است که تنها با داشتن یک CD، هم می‌توان سیستم‌عامل را بر روی هارد دیسک نصب کرد، هم می‌توان بدون نیاز به نصب سیستم‌عامل، از ابزارها و قابلیت‌های آن برای اهداف گوناگونی مانند تعمیر یک سیستم‌عامل آسیب دیده و … استفاده کرد و هم می‌توان سیستم‌عامل را بدون نیاز به نصب آن، آزمایش کرد.
لوگوی سیستم‌عامل دراگون‌فلای بی‌اس‌دی، یک آسیابک است که توسط جو انگریزانو ترسیم شده‌است. همانند دیگر سیستم‌عامل‌های متن‌باز خانواده بی‌اس‌دی، دراگون‌فلای هم تحت اجازه‌نامه بی‌اس‌دی عرضه می‌شود. دیلون نقش این پروانه را «به‌طور باورنکردنی مهم» خوانده است. چرخه انتشار دراگون‌فلای، معمولا هر شش ماه بوده و دو نسخه از این سیستم در سال عرضه می‌شود. این سیستم‌عامل از یک نصاب به نام BSD Installer استفاده می‌کند که از یک واسط متنی برخوردار است و به FreeSBIE و pfSense هم پورت شده‌است.
تاریخچه تغییرات بین نسخه‌ها
نسخه
تاریخ
تغییرات
4.2
GCC نسخه 5.1.1
بهبود پشتیبانی از i915 و Radeon
بهبود پشتیبانی از صدا
بهبود پشتیبانی از کنترلر حافظه و سنسورها دما
Path MTU Discovery به‌طور پیشفرض فعال شد
پشتیبانی از اس‌سی‌تی‌پی حذف شد
Sendmail با DragonFly Mail Agent جایگزین شد
صفحات راهنمای GNU Info حذف شدند
۴٫۰
پشتیبانی تا سقف ۲۵۶ پردازنده
متوقف شدن پشتیبانی از معماری 32-بیت
بهبود پشتبانی از i915
پشتیبانی از Rust و FreePascal
بهبود وایرلس
GCC 4.7.4
قابلیت امنیتی Procctl در هسته
PF چندریسه‌ای قفل‌نشدنی
۳٫۸
پیش‌فرض شدن USB4BSD در سیستم
آخرین نسخه ۳۲-بیتی، پشتیبانی از این سکو، از این نسخه به بعد متوقف می‌شود.
HAMMER2 در سیستم قرار گرفت، اما هنوز برای استفاده آماده نیست
جی‌سی‌سی نسخه ۴٫۷٫۳
بروزرسانی عمده در درایور drm/ttm/i915 متناسب با DRM نسخه ۳٫۸ لینوکس
۳٫۶
رفع اشکالات SMP
KMS برای GPUهای Intel و AMD
شتاب‌دهنده سخت‌افزاری برای GPUهای اینتل تا ایوی بریج
۳٫۴
مدیر بسته جدیدی موسوم به DPORTS
GCC 4.7
بهینه‌سازی استفاده از پردازنده و کارایی tmpfs در زیر بار سنگین
۳٫۲
هسته چندپردازنده‌ای اجباری شد
بهینه‌سازی کارایی در زمان‌بند.
USB4BSD از FreeBSD پورت شد تا پشتیبانی از USB 3.0 فراهم شود.
PUFFS از نت‌بی‌اس‌دی گرفته شد.
۳٫۰
هسته چندپردازنده‌ای هسته پیشفرض در سیستم شد
بهینه‌سازی در HAMMER
پشتیبانی از رمزنگاری سازگار با TrueCrypt
dm-crypt با یک کتابخانه سازگار با پروانه بی‌اس‌دی جایگزین شد
بهبود سازگاری با استاندارد پازیکس
گرداننده دستگاه برای ECC memory
بهینه‌سازی عمده در پشته پروتکل شبکه و SMP
انجام بهینه‌سازی‌هایی در ACPI
۲٫۱۰
قفل بزرگ در همه جا غیر از زیرسیستم حافظه مجازی برداشته شد
قابلیت دوگانه‌زدایی داده‌ای در HAMMER
GCC 4.4
بازنویسی سیستم پل‌زنی
بهینه‌سازی قابل توجه در کارایی سیستم
۲٫۸
پشته Wi-Fi از FreeBSD گرفته شد
مدیریت توده‌ای منطقی
dm-crypt
یک زمان‌بندی دیسک جدید
کاهش استفاده از قفل بزرگ
۲٫۶
swapcache
tmpfs از نت‌بی‌اس‌دی گرفته شد
بهینه‌سازی HAMMER و به‌طور کلی سیستم ورودی/خروجی
۲٫۴
devfs
درایور AHCI جدید
بهینه‌سازی‌هایی در سیستم فایل شبکه‌ای
پشتیبانی کامل از x86-64
۲٫۲
HAMMER برای استفاده در محیط‌های کاری آماده شد
بهینه‌سازی‌های عمده در پایداری سیستم
رسانه نصب جدید: LiveDVD و LiveUSB
۲٫۰
بهینه‌سازی عمده در HAMMER
۱٫۱۲
پشته سنسورهای سخت‌افزاری OpenBSD، از روی FreeBSD پورت شد
پشته بلوتوث
جی‌سی‌سی نسخه 4.1
معرفی DragonFly Mail Agent
پشتیبانی از پردازنده 386 قطع شد
پشتیبانی اولیه از x86-64 (غیرقابل استفاده)
پشتیبانی اولیه از HAMMER
۱٫۱۰
سیستم ریسه‌بندی در فضای کاربری
پشتیبانی از رابط پیشرفته کنترلر میزبان
پشتیبانی از جی‌پی‌تی
۱٫۸
پیاده‌سازی هسته مجازی
۱٫۶
یک تولیدکننده اعداد تصادفی جدید
تجدید ساختار در چارچوب IEEE 802.11
بهینه‌سازی‌های عمده در قفل بزرگ، کلاسترینگ و VFS فضای کاربری
بهینه‌سازی‌های گسترده در پایداری و کارایی سیستم
۱٫۴
GCC نسخه ۳٫۴
استفاده از pkgsrc به صورت پیش‌فرض
Citrus از نت‌بی‌اس‌دی گرفته شد
۱٫۲
TCP SACK
بهبود کارایی TCP
ALTQ و PF
مخزن‌گاه محلی ریسه
کنسول در IEEE 1394
بازنویسی Namecache
پشتیبانی از X11
پشتیبانی از pkgsrc
۱٫۰
یک نصاب BSD جدید
زیرسیستم LWKT و سیستم پیام‌رسانی/پورت‌های سبک‌وزن
ایمن‌سازی MP در اکثر قسمت‌های پشته شبکه
یک تخصیص‌دهنده حافظه به صورت قفل‌نشدنی
پیوندهای نمادین متغیر
پشتیبانی از قابلیت حالت‌برداری برنامه‌ای.
مقایسه سیستم‌عامل‌های خانواده بی‌اس‌دی
مقایسه سیستم‌عامل‌های متن‌باز
واژه‌نامه