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 توزیع نخواهیم کرد.» این یادداشت هرگونه انتشار عمومی دیگر را رد کرد: «ما هیچ توزیع باینری دیگری، مانند بیلد‌های nightly یا دوهفته‌یک‌بار باینری‌های Solaris، یا توزیع OpenSolaris 2010.05 یا نسخه‌های پس از آن را منتشر نخواهیم کرد.» در عوض، انتشار نسخه‌های متن‌باز پس از عرضه محصولات نهایی انجام می‌شد: «ما به‌روزرسانی‌های کدهای دارای مجوز CDDL یا سایر مجوزهای متن‌باز را پس از انتشار کامل سیستم‌عامل سازمانی Solaris خود توزیع خواهیم کرد.»

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

نسخه Oracle Solaris 11 در تاریخ 9 نوامبر 2011 منتشر شد. در تاریخ 2 سپتامبر 2017، Oracle اکثر تیم‌های Solaris را تعدیل کرد. نسخه Oracle Solaris 11.4 در تاریخ 28 اوت 2018 منتشر شد و همچنان نسخه فعلی است. طبق سیاست پشتیبانی مادام‌العمر Oracle، پشتیبانی Premier برای نسخه 11.4 تا نوامبر 2031 و پشتیبانی Extended تا نوامبر 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 در تاریخ 21 آوریل 2026 به Milestone 34 رسید. این پروژه خود را به عنوان سبکی کلاسیک با مؤلفه‌های مدرن توصیف می‌کند و به جای حرکت به سمت سیستم‌های بسته‌بندی جدیدتر، فرمت بسته SVR4 که در Solaris استفاده می‌شد را حفظ کرده است.

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

./live_install.sh -G c1t0d0

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

./live_install.sh -G c1t0d0 develop desktop

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

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

این‌ها دستوراتی هستند که Tribblix منتشر می‌کند. آن‌ها روی سخت‌افزار یا هایپروایزری که شما کنترل می‌کنید اجرا می‌شوند. این‌ها چیزی نیستند که در پنل کنترل VPS پشت یک تصویر با یک کلیک پیدا کنید، و این شکاف، وضعیت واقعی استقرار 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 روی دیسک از هم جدا شده‌اند. خط متن‌باز در نسخه pool 28 متوقف شد (آخرین نسخه‌ای که Sun منتشر کرد) و به سمت feature flagهای نام‌گذاری‌شده تحت نسخه جایگزین 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 مجبور به بازنویسی آن‌ها بود، با همان شرکت از بین رفتند. این همان چیزی است که متن‌باز کردن تغییر می‌دهد و این همان مکانیزمی است که پشت نحوه مشتق شدن توزیع‌های Linux از یکدیگر قرار دارد.

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

برای تقریباً همه، پاسخ منفی است و مطالب بالا به هیچ وجه توصیه‌ای برای امتحان کردن آن نیست. illumos از طیف محدودی از سخت‌افزار پشتیبانی می‌کند، زیرا مجموعه درایورهای آن شامل مواردی است که Sun پشتیبانی می‌کرد به‌علاوه آنچه که یک جامعه کوچک از آن زمان نوشته‌اند. ارائه‌دهندگان VPS تصاویر Linux و BSD را منتشر می‌کنند، بنابراین نصب 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 انتشار آن را متوقف کرد.

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

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

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

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

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

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

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

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

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