ویژگیهای FreeBSD 15 برای سرور چیست؟
بررسی قابلیتهای FreeBSD 15 شامل ZFS و Jails و سیستم یکپارچه base system. با ویژگی جدید pkgbase در نسخه 15.0 برای مدیریت بهتر بستهها آشنا شوید.
FreeBSD 15 در یک پاراگراف چیست
FreeBSD یک سیستمعامل کامل برای سرور است، نه صرفاً یک هسته (kernel) به همراه یک توزیع که روی آن ساخته شده باشد. کسانی که هسته را مینویسند، بخش اصلی کاربر (userland)، مستندات و نسخه نهایی را نیز مینویسند و آنها را با هم به عنوان یک نسخه واحد عرضه میکنند. FreeBSD 15 جدیدترین نسخه اصلی این سیستمعامل است. اگر تا به حال فقط با Linux کار کردهاید، این نکته را به خاطر بسپارید: در FreeBSD سیستم پایه (base system) یک پروژه واحد است و بستههایی که اضافه میکنید، کاملاً روی آن قرار میگیرند. همین انتخاب طراحی، دلیل اصلی محبوبیت آن است.
من بیشتر کارهایم را با Linux انجام میدهم و SSD Nodes نیز یک میزبان VPS مبتنی بر Linux است. با این حال، FreeBSD همچنان سیستمعامل محبوب من برای کار با سرور است و این پست درباره دلیل آن است. یک نکته صادقانه: ما طرحهای VPS برای FreeBSD ارائه نمیدهیم، زیرا تقاضا برای آن کم است. افرادی که عاشق FreeBSD هستند، معمولاً آن را روی سختافزار خودشان اجرا میکنند تا اینکه آن را اجاره کنند، بنابراین بازار VPS برای آن کوچک میماند.
چه چیزهایی در FreeBSD 15 جدید است
تغییر اصلی در FreeBSD 15.0 که در December 2025 منتشر شد، pkgbase است: خودِ سیستم پایه اکنون به صورت بستههای pkg نصب و بهروزرسانی میشود. نصبکننده (installer) این قابلیت را ارائه میدهد و تصاویر رسمی VM و cloud که در VPS دریافت میکنید، به صورت پیشفرض از pkgbase استفاده میکنند. ابزار قدیمی freebsd-update همچنان برای شاخه 15 کار میکند، اما این ابزار و مجموعههای توزیعی که به آن وابسته هستند، برای حذف در FreeBSD 16 برنامهریزی شدهاند؛ بنابراین pkgbase مسیر آینده است، نه یک آزمایش.
سیستم پایه در مقابل مدل توزیع Linux
اگر قرار باشد یک تفاوت را به عنوان ویژگی اصلی FreeBSD معرفی کنیم، این تفاوت است و اکثر تفاوتهای دیگر از آن نشأت میگیرند. در یک سرور Linux، شما یک توزیع را اجرا میکنید. هسته از یک پروژه میآید، کتابخانه C از پروژهای دیگر، دستورات اصلی از پروژهای دیگر، و نگهدارندگان توزیع شما، این قطعات را جمعآوری کرده و نسخههایی را که با هم کار میکنند، انتخاب میکنند. این کار نیازمند هماهنگی زیادی است و کار میکند، اما مرزهای مشخصی دارد: یک بهروزرسانی میتواند برخی قطعات را تغییر دهد و برخی دیگر را تغییر ندهد.
FreeBSD مرزها را در جای دیگری تعیین میکند. هسته، دستورات استاندارد، کتابخانه C، فایروال و بارگذار بوت (boot loader) همگی یک درخت منبع (source tree) با یک شماره نسخه هستند. شما سیستم پایه را به عنوان یک واحد بهروزرسانی میکنید: با استفاده از freebsd-update در نصبهای قدیمی، یا در نصبهای pkgbase که تصاویر cloud در FreeBSD 15 به صورت پیشفرض استفاده میکنند، با استفاده از خودِ pkg. هر چیز دیگری، از جمله وبسرور، پایگاه داده و محیطهای اجرای زبان شما، از بستههای pkg میآید که به جای بافته شدن در سیستم پایه، روی آن قرار میگیرند. حتی با وجود pkgbase، که در آن یک ابزار اکنون هر دو لایه را بهروزرسانی میکند، "سیستمعامل" و "نرمافزاری که من نصب کردهام" دو لایه مجزا باقی میمانند که میتوانید هر کدام را به تنهایی تحلیل کنید.
ZFS به عنوان یک جزء اصلی
ZFS پرکاربردترین فایلسیستم است که مردم به خاطر آن به سراغ FreeBSD میآیند و در FreeBSD 15، این سیستمعامل یک بخش اصلی و اساسی است، نه یک افزونه که به آن وصل کنید. ZFS فایلسیستم و مدیریت حجم (volume manager) را در یک واحد ترکیب میکند که به شما دادههای دارای checksum میدهد تا فساد بیصدا (silent corruption) را شناسایی کند، به جای اینکه فقط به دیسک اعتماد کنید؛ همچنین اسنپشاتهای فوری، کلونهای ارزان و zfs send و zfs receive را برای انتقال بیتبهبیت یک فایلسیستم به دستگاهی دیگر فراهم میکند.
برای سروری که اهمیت عملیاتی دارد، این ویژگی حیاتی است. شما میتوانید از یک دیتاست قبل از بهروزرسانی اسنپشات بگیرید:
zfs snapshot zroot/ROOT/default@before-upgradeو اگر بهروزرسانی با خطا مواجه شد، مستقیماً به همان حالت دقیق بازگردید. بارگذار بوت FreeBSD محیطهای بوت ZFS را درک میکند، بنابراین میتوانید کل سیستمعامل را به اسنپشاتی که قبل از تغییرات گرفته شده بود، بازگردانید. Linux نیز از طریق OpenZFS از ZFS استفاده میکند و آن را به خوبی اجرا میکند. تفاوت اینجاست که در FreeBSD، این سیستم از همان ابتدا در نصبکننده، بارگذار بوت و ابزارهای بهروزرسانی ادغام شده است.
Jails: کانتینرها، پیش از رایج شدن کانتینرها
یک jail یک محیط سبک و ایزوله است که هسته میزبان را به اشتراک میگذارد اما فایلسیستم، کاربران، شبکه و نمای فرآیند (process view) مخصوص خود را دارد. اگر این شبیه به یک کانتینر به نظر میرسد، درست است؛ jails حدود یک دهه قبل از Docker وجود داشتند. FreeBSD 15 به بهبود آنها ادامه میدهد.
مدل ذهنی آن سادهتر از یک پشته (stack) کامل کانتینری است. یک jail یک درخت دایرکتوری به علاوه یک پیکربندی کوچک است که userland واقعی FreeBSD را روی هسته میزبان اجرا میکند. شما برای رسیدن به ایزولاسیون نیازی به یک Image Registry یا یک دیمون پسزمینه ندارید. برای سروری که چندین سرویس مجزا را میزبانی میکند، jails جداسازی قوی با سربار بسیار کم را فراهم میکنند و ابزارهایی مانند bastille مدیریت آنها را لذتبخش میکنند. این همان غریزهای است که در اجرای هر سرویس در کانتینر Docker خود دیده میشود، اما از مسیری متفاوت به آن رسیدهاید.
pf، فایروالی که از نوشتن قوانین آن لذت خواهید برد
فیلتر بستههای FreeBSD یعنی pf، به یک دلیل بسیار محبوب است: سینتکس قوانین آن شبیه به جملات ساده است. یک مجموعه قوانین (ruleset) فایلی است که میتوانید آن را از بالا تا پایین بخوانید و واقعاً درک کنید. در مقایسه با نوشتن دستی قوانین iptables/nftables در Linux، کار با pf حس میکند که برای نگهداری توسط انسان طراحی شده است. اگر تا به حال با انبوهی از خطوط iptables مبارزه کردهاید، pf یک تسکین است.
FreeBSD کجا کاربرد دارد و کجا ندارد
FreeBSD به دلیل ZFS یک انتخاب قدرتمند برای سرورهای ذخیرهسازی است، برای فایروالها و روترها به دلیل pf، و برای هر سروری که در آن پایداری، انسجام سیستم پایه و بهروزرسانیهای تمیز مهمتر از دنبال کردن جدیدترین ویژگیهای هسته باشد. مستندات آن، FreeBSD Handbook، یکی از بهترین دفترچههای راهنما در کل دنیای متنباز است و خواندن آن سریعترین راه برای یادگیری این سیستم است.
این سیستم برای همه چیز انتخاب مناسبی نیست. اکوسیستم کانتینرها کوچکتر است و اولویت با Linux است، بنابراین اگر تمام گردش کار شما بر پایه Docker images و Kubernetes باشد، با جریان مخالف حرکت خواهید کرد. برخی درایورهای اختصاصی و ابزارهای سازنده فقط برای Linux هستند. همچنین اکثر آموزشهای self-hosting، از جمله بسیاری از موارد در این سایت، یک توزیع Linux را فرض میگیرند. برای دید کلی از آنچه یک سرور خانگی یا پروژهای میتواند اجرا کند، بررسی self-hosting برای Linux نوشته شده است اما ایدههای آن قابل انتقال هستند. برای بررسی مستقیم ویژگیها، Linux در مقابل FreeBSD برای سرورها را بخوانید.
برای مقایسهای متفاوت، Linux در مقابل Windows Server پلتفرم بزرگ دیگر سرور را در برابر Linux میسنجد.
FAQ
آیا FreeBSD 15 برای سرور مناسب است؟
بله، برای کارهای مناسب. FreeBSD 15 یک سیستمعامل سرور پایدار و منسجم با ZFS، jails و pf داخلی، مستندات درجهاول و بهروزرسانیهای تمیز و واحد است. این سیستم به ویژه برای ذخیرهسازی، فایروالها و سرویسهای با عمر طولانی که در آنها قابلیت پیشبینی را بر جدیدترین ویژگیهای هسته ترجیح میدهید، بسیار قوی است. اگر گردش کار شما حول اکوسیستم کانتینری (که اولویت با Linux است) ساخته شده، انتخاب ضعیفتری خواهد بود.
تفاوت بین سیستم پایه FreeBSD و Linux چیست؟
در Linux، هسته و userland از پروژههای جداگانهای میآیند که یک توزیع آنها را جمعآوری میکند. در FreeBSD، هسته، دستورات اصلی، کتابخانه C، فایروال و بارگذار بوت، یک درخت منبع واحد با یک نسخه هستند که به صورت یک واحد بهروزرسانی میشوند — از طریق freebsd-update یا در نصبهای pkgbase از طریق pkg — در حالی که هر آنچه نصب میکنید، به عنوان یک لایه جداگانه از بستهها روی آن باقی میماند. این جداسازی بین پایه و بستهها، تفاوت ساختاری اصلی است.
آیا میتوانم FreeBSD را روی یک VPS اجرا کنم؟
شما میتوانید FreeBSD را روی VPSهایی که آن را ارائه میدهند اجرا کنید، اگرچه انتخابها محدودتر از Linux است. SSD Nodes طرحهای FreeBSD ارائه نمیدهد، زیرا تقاضا کم است: افرادی که FreeBSD را اجرا میکنند، تمایل دارند از سختافزار خودشان استفاده کنند تا VPS. بسیاری از سرورهای FreeBSD ماشینهای فیزیکی هستند که مالک مستقیماً آنها را کنترل میکند.
آیا باید قبل از امتحان کردن FreeBSD، Linux را بلد باشم؟
خیر، اما دانستن آن کمک میکند. اگر از Linux استفاده کرده باشید، shell، SSH و بیشتر دستورات روزمره آشنا به نظر میرسند. موارد اصلی که باید از ابتدا یاد بگیرید، جداسازی پایه در مقابل بستهها، pkg برای نرمافزار (و در نصبهای pkgbase در FreeBSD 15، برای سیستم پایه نیز، با در حال خروج بودن freebsd-update) و pf برای فایروال است. FreeBSD Handbook تمام این موارد را به شما آموزش میدهد.