تاکسلی
مقالهنوشتهٔ اختصاصی تاکسلی

فری‌بی‌اس‌دی چیست و چرا هنوز مهم است؟

فری‌بی‌اس‌دی گنو/لینوکس نیست و هیچ‌وقت هم نبوده. معرفی سیستم‌عاملی که پشت نتفلیکس و پلی‌استیشن و بخش از اینترنت کار می‌کند، ولی کمتر کسی درباره‌اش حرف می‌زند.

اگر مدتی در دنیای متن‌باز باشید، بالاخره جایی به اسم فری‌بی‌اس‌دی برمی‌خورید — معمولاً وسط بحثی که یک نفر می‌گه «این کار را در بی‌اس‌دی بهتر انجام داده‌اند». بعد بحث عوض می‌شود و شما هیچ‌وقت نمی‌فهمید ماجرا چه بود.

بگذارید ساده شروع کنم: فری‌بی‌اس‌دی توزیعی از گنو/لینوکس نیست. اصلاً از خانوادهٔ گنو/لینوکس نیست. یک سیستم‌عامل کاملاً جداست که تبار متفاوتی دارد، و همین نکته کلید فهم بقیهٔ ماجراست.

دو خط موازی که هیچ‌وقت به هم نرسیدند

یونیکس در دههٔ هفتاد میلادی در آزمایشگاه‌های بل ساخته شد. دانشگاه برکلی نسخه‌ای از آن گرفت، تغییرش داد و اسمش را گذاشت BSD — یعنی «توزیع نرم‌افزار برکلی». سال‌ها این کد بین دانشگاه‌ها دست‌به‌دست شد.

فری‌بی‌اس‌دی مستقیم از همان کد می‌آید. یعنی نسبتش با یونیکس اصلی، نسبت فرزندی است.

گنو/لینوکس داستان دیگری دارد. لینوس توروالدز در ۱۹۹۱ هسته‌ای نوشت که رفتار یونیکس را تقلید می‌کرد، ولی هیچ خطی از کد یونیکس در آن نبود. یعنی نسبتش با یونیکس، نسبت شباهت است نه خویشاوندی.

نتیجه‌اش این است که هر دو شبیه هم کار می‌کنند — ls و grep و ssh در هر دو هست — ولی از درون دو چیز کاملاً متفاوتند.

تفاوت اصلی: یک سیستم، نه یک مجموعه

این مهم‌ترین چیزی است که باید بفهمید و بیشتر توضیح‌ها از قلم می‌اندازندش.

گنو/لینوکس فقط یک هسته است. آنچه شما «اوبونتو» یا «فدورا» صدا می‌زنید، در واقع هستهٔ گنو/لینوکس است به‌علاوهٔ ابزارهای گنو، به‌علاوهٔ systemd، به‌علاوهٔ هزار قطعهٔ دیگر که هرکدام را گروه متفاوتی جای متفاوتی توسعه می‌دهد.

توزیع یعنی کسی که این قطعات را جمع کرده و کنار هم چیده.

فری‌بی‌اس‌دی یک سیستم کامل است. هسته، ابزارهای پایه، کامپایلر، مستندات، سیستم نصب — همه در یک مخزن، توسط یک تیم، با یک برنامهٔ انتشار.

این تفاوت را وقتی حس می‌کنید که مستندات را بخوانید. راهنمای فری‌بی‌اس‌دی — که Handbook صدایش می‌زنند — یک کتاب واحد است که کل سیستم را توضیح می‌دهد و هر بخشش با بقیه می‌خواند. در دنیای گنو/لینوکس چنین چیزی وجود ندارد و نمی‌تواند وجود داشته باشد، چون هیچ‌کس مالک کل سیستم نیست.

پروانه: تفاوتی که فلسفی است، نه فنی

اینجا جایی است که بیشترین بحث درمی‌گیرد.

گنو/لینوکس تحت GPL منتشر می‌شود: اگر کد را بردارید و تغییرش دهید و محصولی بفروشید، باید کد تغییریافته را هم منتشر کنید. GPL می‌گوید آزادی باید اجباری باشد، وگرنه اولین شرکتی که بتواند آن را می‌بندد.

فری‌بی‌اس‌دی تحت پروانهٔ BSD منتشر می‌شود، که تقریباً می‌گوید: بردارید، هر کاری خواستید بکنید، فقط اسم ما را نگه دارید. حتی می‌توانید کدش را در محصولی بسته بگذارید و منتشرش نکنید.

کدام بهتر است؟ هیچ‌کدام — بستگی دارد چه چیزی برایتان مهم است. ولی نتیجهٔ عملی این تصمیم را می‌شود دید: بخش‌هایی از فری‌بی‌اس‌دی امروز در مک‌او‌اس، در پلی‌استیشن و در سوییچ نینتندو کار می‌کند. شرکت‌ها برداشتند و استفاده کردند و لازم نبود چیزی برگردانند. بعضی برگرداندند، بعضی نه.

کجا واقعاً استفاده می‌شود

اینکه فری‌بی‌اس‌دی روی میز کار کسی نیست، به این معنا نیست که استفاده نمی‌شود:

نتفلیکس بخش عمدهٔ ترافیک ویدیویش را از سرورهای فری‌بی‌اس‌دی پخش می‌کند. دلیلش هم پشتهٔ شبکه و سازوکاری به‌نام sendfile است که اجازه می‌دهد داده مستقیم از دیسک به کارت شبکه برود، بدون اینکه از حافظهٔ برنامه عبور کند.

واتس‌اپ سال‌ها روی فری‌بی‌اس‌دی اجرا می‌شد و رکورد تعداد اتصال همزمان روی یک سرور را با آن زد.

pfSense و OPNsense — دو فایروال محبوبی که شاید در محل کارتان هم باشد — هر دو روی فری‌بی‌اس‌دی ساخته شده‌اند.

چه چیزی واقعاً بهتر است

سه چیز که طرفدارانش به آن اشاره می‌کنند و ادعای بی‌پایه نیست:

ZFS. سیستم فایلی که خودش خطا را تشخیص می‌دهد و ترمیم می‌کند، عکس فوری تقریباً رایگان می‌گیرد، و فشرده‌سازی داخلی دارد. روی گنو/لینوکس هم هست، ولی به‌خاطر ناسازگاری پروانه‌ها نمی‌تواند داخل هسته باشد و همیشه یک ماژول بیرونی می‌ماند. در فری‌بی‌اس‌دی جزء سیستم است.

Jails. جداسازی سبک، ده سال قبل از اینکه داکر متولد شود. هنوز هم برای خیلی از کاربردها ساده‌تر و شفاف‌تر از کانتینر است.

مستندات. Handbook فری‌بی‌اس‌دی احتمالاً بهترین مستند رسمی هر سیستم‌عاملی است. برخلاف man pageهای گنو/لینوکس که هرکدام را کسی نوشته، اینجا یک متن منسجم دارید که فرض نمی‌کند شما از قبل جواب را می‌دانید.

و چه چیزی سخت‌تر است

انصاف حکم می‌کند این‌ها را هم بگویم:

سخت‌افزار جدید. درایور برای فری‌بی‌اس‌دی دیرتر می‌آید. اگر لپ‌تاپ امسال را خریده‌اید، احتمال اینکه وای‌فای یا کارت گرافیکش کامل کار کند کمتر از گنو/لینوکس است.

نرم‌افزار میزکار. بیشتر برنامه‌ها واسش هست، ولی بعضی چیزها — مخصوصاً نرم‌افزارهای بسته و بازی‌ها — نیستند یا با لایهٔ سازگاری کار می‌کنند.

اجتماع کوچک‌تر. وقتی به مشکلی بخورید، تعداد آدم‌هایی که همان مشکل را داشته‌اند کمتر است. جست‌وجوی خطا معمولاً به نتیجهٔ کمتری می‌رسد.

پس کی باید سراغش بروم

اگر دنبال سیستم میزکار روزمره‌اید، فری‌بی‌اس‌دی احتمالاً انتخاب اول شما نیست و اشکالی هم ندارد.

ولی اگر:

  • سروری می‌سازید که باید سال‌ها بدون دردسر بماند
  • به ZFS جدی نیاز دارید
  • می‌خواهید بفهمید یونیکس واقعاً چطور کار می‌کند
  • از تغییرات مداوم و بازنویسی‌های پیاپی خسته‌اید

آن‌وقت ارزش دارد یک ماشین مجازی بسازید و یک آخر هفته با آن کار کنید.

از کجا شروع کنم

نصبش را روی یک ماشین مجازی امتحان کنید — نه روی سیستم اصلی. نصب‌کننده متنی است ولی گیج‌کننده نیست و اگر Handbook را باز بگذارید هیچ مرحله‌ای غافلگیرتان نمی‌کند.

برای نصب نرم‌افزار دو راه دارید: pkg که بسته‌های از پیش کامپایل‌شده نصب می‌کند و شبیه apt کار می‌کند، و Ports که همه‌چیز را از سورس می‌سازد و اجازه می‌دهد دقیقاً تعیین کنید هر برنامه با چه قابلیت‌هایی کامپایل شود. برای شروع، pkg کافی است.

و اگر بعد از این می‌خواهید مشارکت کنید، اجتماع‌ی فری‌بی‌اس‌دی به‌طور غیرمعمولی به تازه‌واردها خوش‌آمد می‌گوید — و لازم نیست برنامه‌نویس باشید.

برای شروع، چند حرف بنویسید.

نوشتار فارسی و عربی یکسان در نظر گرفته می‌شود؛ نیم‌فاصله و اِعراب هم نادیده گرفته می‌شوند.