SSD Nodes Learn Hosting plans →
راهنماها Matt Connorتوسط Matt Connor

تفاوت Solaris و illumos و تاریخچه ZFS

داستان انشعاب illumos از Solaris پس از سیاست‌های Oracle و اهمیت آن برای بقای ZFS و DTrace. بررسی کنید چرا این کدهای متن‌باز همچنان در سال 2026 در لینوکس و FreeBSD حیاتی هستند.

Solaris و illumos چه هستند

Solaris و illumos دو شاخه از یک درخت منبع Unix واحد هستند. شرکت Sun Microsystems سیستم‌عامل Solaris را ساخت و در سال 2005 بخش بزرگی از کد منبع آن را منتشر کرد. Oracle در سال 2010 شرکت Sun را خریداری کرد و انتشار آن کد منبع را متوقف نمود، بنابراین توسعه‌دهندگان خارج از Oracle، کد متن‌باز را با نام جدیدی به نام illumos ادامه دادند. خودِ این سیستم‌عامل در سال 2026 یک محصول خاص (niche) محسوب می‌شود. اما لایه ذخیره‌سازی و ابزار ردیابی (tracing) که در دل آن ساخته شده‌اند چنین نیستند، و همین موضوع دلیل اهمیت این تاریخچه برای شماست.

اگر از ZFS روی Linux یا FreeBSD استفاده می‌کنید، در حال اجرای کدی هستید که در Sun برای Solaris نوشته شده و از عمر شرکت، خط تولید محصول و کشمکش‌های مربوط به مجوز (licence) فراتر رفته است. این مطلب داستان چگونگی وقوع این اتفاق است، که تاریخ‌های آن نیز بررسی شده‌اند.

ریشه‌های Solaris: BSD، System V و SVR4

شرکت Sun Microsystems در تاریخ 24 فوریه 1982 توسط Scott McNealy، Andy Bechtolsheim، Vinod Khosla و Bill Joy تأسیس شد. سیستم‌عامل این شرکت، یعنی SunOS، از BSD (مخفف Berkeley Software Distribution) مشتق شده بود؛ همان شاخه دانشگاهی Unix که Bill Joy پیش از تأسیس Sun روی آن کار می‌کرد. شاخه دیگر Unix، سیستم System V متعلق به AT&T بود که به‌صورت تجاری فروخته می‌شد. این دو شاخه همان انشعابی هستند که در درخت خانواده Unix که به Linux ختم می‌شود توصیف شده است و Sun به مدت یک دهه در سمت BSD این انشعاب قرار داشت.

در سال 1987، Sun و AT&T یک پروژه مشترک را برای ادغام BSD، System V و Xenix در یک نسخه واحد اعلام کردند: UNIX System V Release 4 که معمولاً به صورت SVR4 نوشته می‌شود. در 4 سپتامبر 1991، Sun اعلام کرد که SunOS 4 با یک سیستم مشتق‌شده از SVR4 تحت نام تجاری جدید Solaris 2 جایگزین خواهد شد. نسخه Solaris 2.0 در ژوئن 1992 و تنها برای سخت‌افزار SPARC عرضه شد. Sun سمت خود را در انشعاب Unix تغییر داده بود و مشتریانش مجبور شدند نرم‌افزارهای خود را پورت کنند.

نام قدیمی هرگز از بین نرفت. هسته سیستم همچنان شماره‌گذاری SunOS را حفظ کرد، بنابراین Solaris 2.6 با SunOS 5.6 اجرا می‌شد و Oracle Solaris 11.4 هنوز خود را به عنوان SunOS 5.11 معرفی می‌کند. اگر در سال 2026 دستور uname -a را روی یک ماشین illumos اجرا کنید، اولین کلمه‌ای که چاپ می‌شود همچنان SunOS است، زیرا illumos این نام را به همراه کد منبع به ارث برده است.

آنچه Solaris 10 در سال 2005 معرفی کرد

سیستم‌عامل Solaris 10 در تاریخ 31 ژانویه 2005 منتشر شد. این نسخه از اهمیت بالایی برخوردار است، زیرا هر آنچه از این شرکت باقی مانده، یا در همان نسخه اولیه وجود داشته و یا در یکی از به‌روزرسانی‌های آن ارائه شده است.

ابزار DTrace توسط Bryan Cantrill، Mike Shapiro و Adam Leventhal در شرکت Sun نوشته شد و برای نخستین بار در نوامبر 2003 در دسترس قرار گرفت. این ابزار، هسته (kernel) در حال اجرا و پردازش‌های کاربر را بدون نیاز به کامپایل مجدد یا راه‌اندازی مجدد پردازش مورد نظر، پایش (instrument) می‌کند. پروبی که فعال نشده باشد، هیچ هزینه‌ای برای سیستم ندارد، زیرا ابزارهای پایش تنها زمانی که اسکریپتی آن‌ها را فراخوانی کند، اعمال می‌شوند؛ به همین دلیل مدیران سیستم با اطمینان از آن روی ماشین‌های عملیاتی (production) استفاده می‌کردند. DTrace جایزه برتر جوایز نوآوری فناوری وال‌استریت ژورنال در سال 2006 و جایزه USENIX STUG (گروه کاربران ابزارهای نرم‌افزاری) در سال 2008 را دریافت کرد.

فایل‌سیستم ZFS توسط Jeff Bonwick، Bill Moore و Matthew Ahrens در Sun طراحی و در 14 سپتامبر 2004 معرفی شد. این فایل‌سیستم، مدیر حجم (volume manager) و فایل‌سیستم را در یک لایه ادغام کرد؛ قابلیتی که اجازه می‌دهد هر بلاک هنگام خواندن بررسی (checksum) شده و بلاک‌های آسیب‌دیده از طریق نسخه‌های پشتیبان (redundant) ترمیم شوند. عملیات نوشتن به صورت copy on write انجام می‌شود: یک بلاک هرگز در جای خود بازنویسی نمی‌شود، بنابراین اگر سیستم در حین نوشتن دچار کرش شود، داده‌های قدیمی دست‌نخورده باقی می‌مانند و فایل‌سیستم به صورت ناقص نوشته نمی‌شود. ایجاد Snapshot تقریباً هزینه‌ای ندارد، زیرا یک Snapshot صرفاً مجموعه‌ای از بلاک‌هایی است که در نوشتن‌های بعدی تغییر نکرده‌اند. ZFS در نسخه اولیه Solaris 10 وجود نداشت و در به‌روزرسانی Solaris 10 6/06 در ژوئن 2006 ارائه شد.

Zones سومین بخش مهم بود. یک Zone به یک هسته اجازه می‌دهد چندین فضای کاربری ایزوله داشته باشد که هر کدام دارای فایل‌سیستم root، جدول پردازش و پیکربندی شبکه مختص به خود هستند. Zones در یک نسخه بتای Solaris 10 در فوریه 2004 ظاهر شد و همراه با نسخه نهایی عرضه گردید. سیستم‌عامل FreeBSD پیش‌تر از مسیری متفاوت به ایده مشابهی دست یافته بود و مقایسه بین jails و کانتینرهای Docker همچنان واضح‌ترین راه برای درک ماهیت واقعی ایزولاسیون در سطح هسته است. Zones امروزه در illumos زنده است و پایه و اساس حداقل یکی از توزیع‌های معرفی‌شده در ادامه است.

چرا Sun کد منبع Solaris را متن‌باز کرد

شرکت Sun در تاریخ 1 دسامبر 2004 مجوز CDDL (Common Development and Distribution License) را به OSI (Open Source Initiative) ارائه کرد و OSI آن را در 14 ژانویه 2005 تأیید نمود. مجوز CDDL بر پایه نسخه 1.1 از MPL (Mozilla Public License) بنا شده است. ویژگی copyleft در این مجوز در سطح فایل‌های مجزا عمل می‌کند: یک فایل منبع CDDL باید تحت همان مجوز CDDL باقی بماند، اما فایل باینری ساخته‌شده از آن می‌تواند با کدهایی تحت شرایط دیگر ترکیب شود.

DTrace اولین بخشی بود که متن‌باز شد. کد منبع آن در تاریخ 25 ژانویه 2005، شش روز پیش از عرضه رسمی Solaris 10، تحت مجوز CDDL در وب‌سایت تازه تأسیس opensolaris.org منتشر شد. بخش عمده کد سیستم‌عامل Solaris در 14 ژوئن 2005 به دنبال آن منتشر گردید. سیستم فایل ZFS در 31 اکتبر 2005 به شاخه اصلی توسعه Solaris ادغام شد و در 16 نوامبر 2005 در build 27 به دست توسعه‌دهندگان OpenSolaris رسید. OpenSolaris همچنین به توزیعی تبدیل شد که امکان نصب آن وجود داشت: نسخه 2008.05 در 5 مه 2008 به صورت Live CD و نسخه 2009.06 در 1 ژوئن 2009 با پشتیبانی از SPARC عرضه شدند.

انتخاب مجوز همچنان تعیین‌کننده آن چیزی است که امروزه می‌توانید اجرا کنید. بنیاد نرم‌افزارهای آزاد (FSF)، مجوز CDDL را به عنوان یک مجوز نرم‌افزار آزاد طبقه‌بندی می‌کند که با GPL (GNU General Public License) ناسازگار است؛ این ناسازگاری از MPL 1.1 به ارث رسیده است. هسته Linux تحت مجوز GPLv2 است. به همین دلیل است که ZFS در Linux به عنوان یک ماژول هسته در خارج از درخت کد منبع هسته ساخته می‌شود و به جای ادغام در آن، به صورت جداگانه ارائه می‌گردد. تصمیم به انتشار تحت هر نوع مجوز متن‌بازی، مهم‌ترین بخش برای ادامه این داستان است و تاریخچه مجوزهای متن‌باز توضیح می‌دهد که چرا یک شرکت اساساً چنین تصمیمی می‌گیرد.

وقایع پس از خرید Sun توسط Oracle

شرکت Oracle در تاریخ 20 آوریل 2009 اعلام کرد که Sun را به مبلغ 7.4 میلیارد دلار آمریکا، یا 5.6 میلیارد دلار خالص پس از کسر نقدینگی و بدهی‌های Sun، خریداری خواهد کرد. این معامله در تاریخ 27 ژانویه 2010 نهایی شد.

در تاریخ 13 اوت 2010، یک یادداشت داخلی در Oracle که توسط Mike Shapiro، Bill Nesheim و Chris Armes نوشته شده بود، در داخل شرکت توزیع و سپس به بیرون درز کرد. این یادداشت سیاست جدید را به‌صراحت بیان می‌کرد: «ما دیگر سورس‌کد کل سیستم‌عامل Solaris را به‌صورت بلادرنگ و در حین توسعه، به شکل nightly توزیع نخواهیم کرد.» این سند هرگونه بیلد اجتماعی (community build) را رد کرد: «ما هیچ توزیع باینری دیگری، مانند بیلد‌های nightly یا دوهفته‌یک‌بار از باینری‌های Solaris، یا توزیع OpenSolaris 2010.05 یا نسخه‌های پس از آن را منتشر نخواهیم کرد.» در عوض، انتشار نسخه‌های متن‌باز (open source) پس از عرضه محصولات نهایی صورت می‌گرفت: «ما به‌روزرسانی‌های کدهای دارای مجوز CDDL یا سایر مجوزهای متن‌باز را پس از انتشار کامل سیستم‌عامل سازمانی Solaris خود توزیع خواهیم کرد.»

در تاریخ 23 اوت 2010، هیئت حاکمه OpenSolaris قطعنامه‌ای را تصویب کرد که در آن ذکر شده بود Oracle هیچ رابطی برای این هیئت تعیین نکرده و در تاریخ 13 اوت پایان مشارکت در توسعه را اعلام کرده است. این هیئت رأی داد که کنترل جامعه را تحت منشوری که Sun در ابتدا نوشته بود به Oracle بازگرداند، که این امر منجر به انحلال هیئت شد.

نسخه Oracle Solaris 11 در تاریخ 9 نوامبر 2011 منتشر شد. در تاریخ 2 سپتامبر 2017، Oracle اکثر تیم‌های Solaris را تعدیل کرد. نسخه Oracle Solaris 11.4 در تاریخ 28 اوت 2018 منتشر شد و تا ژوئیه 2026 همچنان نسخه جاری باقی ماند و به‌روزرسانی‌های مخزن پشتیبانی را دریافت می‌کرد. زمانی که Oracle آخرین بار سیاست پشتیبانی مادام‌العمر خود را برای نسخه 11.4 در ژانویه 2024 بازنگری کرد، Premier Support را تا سال 2031 حفظ کرد و Extended Support را از 2034 به 2037 تمدید نمود. بنابراین، Solaris یک محصول تجاری پشتیبانی‌شده با تاریخ پایان مشخص است که بر روی نسخه‌ای اجرا می‌شود که از سال 2018 تاکنون نسخه جاری بوده است.

چگونگی آغاز illumos و دلیل نام‌گذاری آن به عنوان یک انشعاب (fork)

در تاریخ 3 اوت 2010، ده روز پیش از درز کردن آن یادداشت، Garrett D'Amore پروژه illumos را معرفی کرد. این نام از ترکیب illum (در زبان لاتین به معنای نور) و OS (مخفف operating system) تشکیل شده است و پروژه آن را به صورت یک کلمه واحد می‌نویسد که تنها حرف اول آن بزرگ است.

هدف این پروژه OS/Net بود که معمولاً به صورت ON نوشته می‌شود: مجموعه‌ای که هسته (kernel) و ابزارهای اصلی سیستم را در بر می‌گیرد. OpenSolaris هرگز به‌طور کامل متن‌باز نبود. بخش‌های متعددی به صورت باینری‌های بسته عرضه می‌شدند که هیچ‌کس خارج از Sun قادر به بازسازی آن‌ها نبود؛ از جمله کد بین‌المللی‌سازی در کتابخانه C (libc_i18n)، مدیریت قفل NFS، چارچوب رمزنگاری، درایورهایی مانند درایور mpt برای آداپتورهای گذرگاه میزبان LSI، و برخی کدهای پلتفرم SPARC. جایگزینی این موارد اولین وظیفه پروژه بود، زیرا سیستم‌عاملی که نتوان آن را از روی سورس‌کد ساخت، سیستمی نیست که بتوان آن را نگهداری کرد.

D'Amore در استفاده از واژه انشعاب (fork) محتاط بود. او نوشت: «ما امروز یک انشعاب نیستیم، به دلیل شیوه‌ای که OS/Net را دنبال می‌کنیم.» او به مخزنی در پایین‌دست (downstream) اشاره داشت که درخت کد Oracle را دنبال می‌کرد و می‌توانست تغییرات را به بالادست (upstream) بازگرداند. ده روز بعد، بالادست انتشار کد را متوقف کرد. illumos به‌طور پیش‌فرض به یک انشعاب تبدیل شد، زیرا دیگر چیزی برای دنبال کردن وجود نداشت. درخت اصلی کد، یعنی illumos-gate، تا اکتبر 2026 از مرز 23,000 کامیت عبور کرده و همچنان در حال دریافت تغییرات است.

کدام توزیع‌ها از illumos مشتق شده‌اند

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

  • OpenIndiana به‌طور رسمی در 14 سپتامبر 2010 در مرکز JISC در لندن راه‌اندازی شد و نزدیک‌ترین نوادهٔ توزیع قدیمی دسکتاپ و سرور OpenSolaris است. این توزیع یک نسخه غلتان (rolling release) به نام Hipster است و اسنپ‌شات 2026.04 آن در 5 مه 2026 منتشر شد.
  • OmniOS یک توزیع سرور است که پس از توقف فعالیت فروشنده اصلی، اکنون توسط جامعه کاربری خود با نام OmniOS CE نگهداری می‌شود.
  • SmartOS یک پلتفرم هایپروایزر است که بر پایه zones ساخته شده است. Joyent آن را ایجاد کرد و در آوریل 2022 اعلام کرد که SmartOS و Triton از تاریخ 1 مه 2022 به MNX Solutions منتقل می‌شوند.
  • NexentaStor از همین پایه برای تجهیزات ذخیره‌سازی استفاده می‌کرد که همان خط تجاری است که illumos از آن بیرون آمد.
  • Tribblix یک توزیع کوچک است که توسط Peter Tribble نگهداری می‌شود و در ادامه توضیح داده شده است.
  • DilOS ابزارهای بسته‌بندی Debian را بر روی هسته illumos قرار می‌دهد.

نصب یک سیستم illumos در حال حاضر چگونه است

Tribblix نمونه مفیدی است زیرا کوچک است، مستندات عمومی دارد و همچنان نسخه‌های جدید آن منتشر می‌شود. Milestone 41 برای معماری x86 در تاریخ 5 اوت 2026 منتشر شد. خط تولید SPARC در تاریخ 23 سپتامبر 2026 به Milestone 35 ارتقا یافت؛ این یک نسخه ترکیبی است که بسته‌های جدیدتر، از جمله gcc 10، را روی سیستم‌عامل Milestone 34 قرار می‌دهد؛ فایل ISO نصب SPARC که دانلود می‌کنید همچنان Milestone 34 است. این پروژه خود را به عنوان سبکی قدیمی با اجزای مدرن توصیف می‌کند و به جای حرکت به سمت سیستم‌های بسته‌بندی جدیدتر، فرمت بسته SVR4 که در Solaris استفاده می‌شد را حفظ کرده است.

نصب از طریق یک live image انجام می‌شود. شما ISO را بوت می‌کنید، با کاربر jack و رمز عبور jack وارد می‌شوید، دسترسی root می‌گیرید و نصب‌کننده را روی یک دیسک اجرا می‌کنید. این دستوری است که مستندات نصب خود پروژه ارائه می‌دهد:

./live_install.sh -G c1t0d0

فلگ -G یک طرح پارتیشن‌بندی EFI (رابط میان‌افزار توسعه‌پذیر) می‌نویسد و -b طرح قدیمی MBR (رکورد اصلی بوت) را انتخاب می‌کند. نام دیسک‌ها از قرارداد نام‌گذاری cXtYdZ در Solaris پیروی می‌کند و نه /dev/sda، که اولین چیزی است که اگر از لینوکس آمده باشید، ناآشنا به نظر می‌رسد. مجموعه‌های نرم‌افزاری، overlay نامیده می‌شوند و می‌توانند در همان خط نام‌گذاری شوند:

./live_install.sh -G c1t0d0 develop desktop

پس از نصب، ابزار مدیریت بسته zap است که روی overlayها کار می‌کند تا وابستگی‌ها برای شما مدیریت شوند:

zap refresh
zap install-overlay develop
zap update-overlay -a

این‌ها دستوراتی هستند که Tribblix منتشر می‌کند. آن‌ها روی سخت‌افزار یا هایپروایزری که شما کنترل می‌کنید اجرا می‌شوند. Tribblix چیزی نیست که در پنل کنترل VPS به صورت یک تصویر با یک کلیک پیدا کنید. SmartOS در میان سیستم‌های illumos یک استثنا است: شرکت MNX که آن را از Joyent تحویل گرفت، از طریق پنل کنترل ابری خود "انتخاب لینوکس، FreeBSD یا SmartOS" را ارائه می‌دهد (بررسی‌شده در 12 اکتبر 2026). خارج از آن، وجود یک ایمیج illumos در لیست ارائه‌دهندگان نادر است و این شکاف، وضعیت واقعی استقرار illumos در سال 2026 است.

چرا ZFS و DTrace از Solaris جان سالم به در بردند

ZFS تقریباً بلافاصله پس از انتشار کد منبع، Solaris را ترک کرد. Pawel Jakub Dawidek آن را به FreeBSD پورت کرد، جایی که از سال 2008 و از نسخه FreeBSD 7.0 بخشی از سیستم بوده است. کار بر روی ZFS بومی برای Linux در سال 2008 آغاز شد و اولین نسخه پایدار آن در سال 2013 منتشر گردید. بین سال‌های 2010 تا 2013، پروژه illumos نسخه مرجع کد منبع ZFS را نگهداری می‌کرد، زیرا شاخه Oracle بسته شده بود و هر پورت دیگری به جایی برای دریافت کد نیاز داشت. این ارزش ملموسِ fork است: بدون آن، پورت‌ها هیچ جد مشترکی برای ادغام (merge) نداشتند.

پروژه OpenZFS در 17 سپتامبر 2013 برای هماهنگی آن پورت‌ها اعلام شد و Matt Ahrens، یکی از نویسندگان اصلی ZFS، در میان بنیان‌گذاران آن بود. نسخه OpenZFS 2.0 در 30 نوامبر 2020 منتشر شد و یادداشت‌های انتشار آن نتیجه را به‌وضوح بیان می‌کنند: «پروژه ZFS on Linux به OpenZFS تغییر نام داد! اکنون هر دو سیستم‌عامل Linux و FreeBSD از یک مخزن واحد پشتیبانی می‌شوند که باعث می‌شود تمام قابلیت‌های OpenZFS در هر دو پلتفرم در دسترس باشد.» نسخه FreeBSD 13.0 نسخه مشتق‌شده از illumos خود را کنار گذاشت و به آن شاخه مشترک منتقل شد.

دو خط ZFS در سطح دیسک از هم جدا شده‌اند. خط باز (open) در نسخه pool شماره 28 متوقف شد (آخرین نسخه‌ای که Sun منتشر کرد) و به سمت پرچم‌های ویژگی (feature flags) با نام تحت نسخه جایگزین 5000 حرکت کرد، بنابراین یک pool به‌جای یک عدد واحد، اعلام می‌کند که از چه ویژگی‌هایی استفاده می‌کند. Oracle به افزایش شماره نسخه‌های خود در پشت کدهای بسته ادامه داد. یک pool که فراتر از نسخه 28 در یک سمت ایجاد شده باشد، در سمت دیگر قابل import نیست. اگر در حال انتخاب محل اجرای آن هستید، نحوه عملکرد OpenZFS در FreeBSD در مقایسه با Linux تفاوت‌های واقعی بین این دو میزبان را پوشش می‌دهد.

DTrace مسیر کوتاه‌تری را طی کرد. این ابزار تا ژانویه 2009 در FreeBSD 7.1 استاندارد بود و Apple آن را در Mac OS X 10.5 Leopard اضافه کرد. Oracle کد هسته DTrace را در آگوست 2017 تحت مجوز GPLv2 منتشر کرد؛ تغییری که در فوریه 2018 به‌طور گسترده مورد توجه قرار گرفت و مانع مجوز برای Linux را از میان برداشت. این کد هرگز در هسته اصلی (mainline) ادغام نشد. ردیابی (tracing) در Linux در عمل روی eBPF اجرا می‌شود و bpftrace به آن یک زبان اسکریپت‌نویسی می‌دهد که عمداً به زبان D در DTrace نزدیک است.

این الگو یک نکته کلی است، نه مختص به Solaris. شرکت Sun، ابزارهای ZFS و DTrace را تحت مجوزی منتشر کرد که به دیگران اجازه می‌داد نسخه‌ای از آن را حفظ کرده و به کار روی آن ادامه دهند. وقتی شرکتی که هزینه این کار را پرداخت می‌کرد متوقف شد، کار ادامه یافت، زیرا کد از قبل در شاخه‌ها و دست‌های دیگر وجود داشت. بخش‌هایی از Solaris که هرگز باز نشدند، از جمله باینری‌های بسته‌ای که illumos مجبور به بازنویسی آن‌ها شد، همراه با شرکت از بین رفتند. این همان چیزی است که متن‌باز کردن (open sourcing) تغییر می‌دهد و همان مکانیزمی است که پشت نحوه مشتق شدن توزیع‌های Linux از یکدیگر قرار دارد.

آیا باید illumos را روی یک VPS اجرا کنید؟

برای تقریباً همه، پاسخ منفی است و هیچ‌کدام از موارد بالا توصیه‌ای برای امتحان کردن آن نیست. illumos از طیف محدودی از سخت‌افزار پشتیبانی می‌کند، زیرا مجموعه درایورهای آن شامل مواردی است که Sun پشتیبانی می‌کرد به‌علاوه آنچه که یک جامعه کوچک از آن زمان نوشته‌اند. اکثر ارائه‌دهندگان VPS فقط ایمیج‌های Linux و BSD را منتشر می‌کنند. استثنا MNX است که SmartOS را از Joyent تحویل گرفت و در فضای ابری خود، SmartOS را در کنار Linux و FreeBSD ارائه می‌دهد. در هر جای دیگر، نصب illumos معمولاً به معنای آپلود ISO شخصی در ارائه‌دهنده‌ای است که اجازه استفاده از ایمیج‌های سفارشی را می‌دهد، و سپس بررسی اینکه آیا دیسک مجازی و دستگاه‌های شبکه شناسایی می‌شوند یا خیر. نرم‌افزارهای شخص ثالث از مجموعه بسته‌های خود توزیع یا از کامپایلر شخصی شما تأمین می‌شوند.

دلایل واقعی برای اجرای آن وجود دارد: یک workload مربوط به Solaris که باید آن را فعال نگه دارید، یک استقرار zones که در حال حاضر مدیریت می‌کنید، یا علاقه به مطالعه سورس‌کد. توزیع‌های ذکر شده در بالا نگهداری می‌شوند و لیست‌های پستی آن‌ها به سوالات پاسخ می‌دهند. این موضوع با انتخاب پیش‌فرض برای یک سرور جدید متفاوت است.

اگر به خاطر ZFS به اینجا آمده‌اید، برای دسترسی به آن نیازی به illumos ندارید. OpenZFS را روی Linux یا FreeBSD اجرا کنید، جایی که بسته‌بندی شده، مستند شده و به‌طور گسترده مستقر شده است. اگر در حال بررسی سمت BSD از همان خانواده برای یک سرور هستید، مقایسه عملی Linux و FreeBSD به عنوان پلتفرم سرور تغییرات در عملیات روزانه را پوشش می‌دهد. illumos داستان پیدایش این ابزارهاست و دانستن اینکه از کجا آمده‌اند، بسیاری از رفتارهای آن‌ها را توضیح می‌دهد؛ از جمله اینکه چرا zpool و zfs هیچ شباهتی به بقیه استک ذخیره‌سازی Linux ندارند.

FAQ

آیا illumos همان OpenSolaris است؟

خیر. OpenSolaris پروژه و توزیعی متعلق به Sun بود که به Oracle رسید و در سال 2010 توسط این شرکت متوقف شد. illumos یک پروژهٔ مستقل است که در 3 اوت 2010 معرفی شد و بر پایهٔ آخرین سورس‌کد منتشرشده از هستهٔ OpenSolaris، یعنی OS/Net consolidation، بنا شده است. اولین وظیفهٔ آن جایگزینی کامپوننت‌های باینری بسته‌ای بود که OpenSolaris عرضه می‌کرد؛ از جمله libc_i18n، مدیریت قفل NFS، چارچوب رمزنگاری و چندین درایور. هیچ کدی از illumos پس از سال 2010 از سمت Oracle نیامده است، زیرا Oracle انتشار آن را متوقف کرد.

چرا لینوکس نمی‌تواند ZFS را در هسته خود بگنجاند؟

مجوزها با هم سازگار نیستند. ZFS تحت مجوز CDDL است که بنیاد نرم‌افزارهای آزاد آن را یک مجوز نرم‌افزار آزاد می‌داند که با GPL ناسازگار است؛ ناسازگاری‌ای که CDDL از MPL 1.1 به ارث برده است. هسته لینوکس تحت مجوز GPLv2 است. نتیجهٔ عملی این است که OpenZFS در لینوکس به صورت یک ماژول هسته خارج از درخت (out-of-tree) عرضه می‌شود که معمولاً توسط DKMS برای هر هسته‌ای که نصب می‌کنید ساخته می‌شود، یا به صورت یک بسته ماژول از پیش ساخته‌شده ارائه می‌گردد. این سیستم به خوبی کار می‌کند، اما ماژول باید برای هر هستهٔ جدید دوباره ساخته شود، بنابراین ممکن است با فاصلهٔ چند روز یا چند هفته نسبت به انتشار هستهٔ جدید، به‌روزرسانی شود.

آیا Oracle Solaris هنوز پشتیبانی می‌شود؟

بله. Oracle Solaris 11.4 در 28 اوت 2018 منتشر شد و در ژوئیه 2026 همچنان نسخهٔ جاری بوده و به‌روزرسانی‌های مخزن پشتیبانی را دریافت می‌کند. سیاست پشتیبانی مادام‌العمر Oracle که آخرین بار در ژانویه 2024 برای نسخه 11.4 بازبینی شد، پشتیبانی Premier را تا 2031 و پشتیبانی Extended را تا 2037 تعیین کرده است. Oracle در 2 سپتامبر 2017 اکثر تیم‌های Solaris را تعدیل کرد و نسخه 11.4 از آن زمان به جای انتشار نسخهٔ اصلی جدید، به‌روزرسانی‌های مخزن پشتیبانی را دریافت کرده است. سورس‌کد کامل این نسخه به شکلی که OpenSolaris منتشر می‌شد، در دسترس نیست.

آیا می‌توانم illumos را روی یک VPS نصب کنم؟

گاهی اوقات، اما به ندرت از طریق لیست ایمیج‌های ارائه‌دهنده. شرکت MNX که نگهداری SmartOS را بر عهده دارد، آن را از طریق پنل کنترل ابری خود ارائه می‌دهد. در سایر موارد، معمولاً به ارائه‌دهنده‌ای نیاز دارید که به شما اجازه دهد یک ISO سفارشی متصل کنید و از کنسول استفاده کنید؛ سپس باید بررسی کنید که آیا درایورهای دیسک مجازی و شبکه در درخت illumos، دستگاه‌های هایپروایزر را شناسایی می‌کنند یا خیر. OpenIndiana و Tribblix گزینه‌های معمول برای شروع یک نصب عمومی هستند و SmartOS به گونه‌ای طراحی شده که خود یک میزبان هایپروایزر باشد، نه یک سیستم‌عامل مهمان که خودتان نصب کنید. پیش از پرداخت هزینه، حتماً در یک ماشین مجازی محلی تست کنید.

آیا یادگیری DTrace در صورتی که فقط از لینوکس استفاده می‌کنم، ارزشمند است؟

مدل فکری آن قابل انتقال است، حتی اگر ابزار آن عمدتاً در لینوکس وجود نداشته باشد. Oracle کد هستهٔ DTrace را در اوت 2017 تحت مجوز GPLv2 منتشر کرد و یک پورت برای Oracle Linux نگهداری می‌کند، اما این کد هرگز در هسته اصلی (mainline) ادغام نشد و ردیابی (tracing) در لینوکس در عمل بر پایه eBPF اجرا می‌شود. زبانی که bpftrace استفاده می‌کند، به گونه‌ای طراحی شده که شبیه به D در DTrace باشد؛ بنابراین پروب‌ها (probes)، گزاره‌ها (predicates) و تجمیع‌ها (aggregations) در هر دو مفهوم یکسانی دارند. یادگیری طرز فکر DTrace باعث می‌شود اسکریپت‌های bpftrace در همان نگاه اول قابل خواندن باشند.

آیا این مقاله مفید بود؟

#solaris#illumos#unix-history#zfs#dtrace