Sejarah Solaris dan illumos: Mengapa Ia Masih Relevan
Ketahui bagaimana Sun Microsystems membina ZFS dan DTrace sebelum Oracle menutup kod sumber Solaris. Illumos menyelamatkan teknologi ini supaya anda boleh terus menggunakannya.
Apakah Solaris dan illumos
Solaris dan illumos ialah dua cabang daripada satu pohon sumber Unix. Sun Microsystems membina Solaris dan menerbitkan kebanyakan kod sumbernya pada tahun 2005. Oracle membeli Sun pada tahun 2010 dan berhenti menerbitkan kod sumber tersebut, maka pembangun di luar Oracle meneruskan kod terbuka itu di bawah nama baharu: illumos. Sistem pengendalian ini sendiri merupakan satu niche pada tahun 2026. Lapisan storan dan alat penjejakan yang dibina di dalamnya bukanlah niche, dan itulah sebabnya sejarah ini wajar diberi perhatian.
Jika anda menjalankan ZFS pada Linux atau pada FreeBSD, anda sedang menjalankan kod yang ditulis di Sun untuk Solaris dan yang bertahan lebih lama daripada syarikat tersebut, barisan produknya, serta pertikaian lesen. Catatan ini ialah kisah tentang bagaimana perkara itu berlaku, dengan tarikh-tarikh yang telah disemak.
Asal usul Solaris: BSD, System V dan SVR4
Sun Microsystems diasaskan pada 24 Februari 1982 oleh Scott McNealy, Andy Bechtolsheim, Vinod Khosla dan Bill Joy. Sistem pengendaliannya, SunOS, diterbitkan daripada BSD (Berkeley Software Distribution), iaitu barisan Unix universiti yang diusahakan oleh Bill Joy sebelum Sun wujud. Satu lagi barisan Unix ialah System V milik AT&T yang dijual secara komersial. Kedua-dua cabang ini merupakan perpecahan yang diterangkan dalam salasilah keluarga Unix yang berakhir dengan Linux, dan Sun berada di pihak BSD selama sedekad.
Pada tahun 1987, Sun dan AT&T mengumumkan projek bersama untuk menggabungkan BSD, System V dan Xenix menjadi satu keluaran tunggal: UNIX System V Release 4, yang biasanya ditulis sebagai SVR4. Pada 4 September 1991, Sun mengumumkan bahawa SunOS 4 akan digantikan oleh sistem yang diterbitkan daripada SVR4 di bawah nama pemasaran baharu, Solaris 2. Solaris 2.0 dikeluarkan pada Jun 1992, khusus untuk perkakasan SPARC sahaja. Sun telah menukar pihak dalam perpecahan Unix, dan pelanggannya terpaksa memindahkan perisian mereka.
Nama lama tidak pernah hilang. Kernel mengekalkan penomboran SunOS, jadi Solaris 2.6 menjalankan SunOS 5.6, dan Oracle Solaris 11.4 masih melaporkan dirinya sebagai SunOS 5.11. Jalankan uname -a pada mesin illumos pada tahun 2026 dan perkataan pertama yang dicetak masih SunOS, kerana illumos mewarisi nama tersebut bersama-sama dengan kodnya.
Apa yang diperkenalkan oleh Solaris 10 pada tahun 2005
Solaris 10 dikeluarkan pada 31 Januari 2005. Ia penting di sini kerana segala yang bertahan daripada syarikat tersebut terkandung dalam keluaran itu atau tiba dalam salah satu kemas kininya.
DTrace ditulis di Sun oleh Bryan Cantrill, Mike Shapiro dan Adam Leventhal, dan mula tersedia pada November 2003. Ia melakukan instrumentasi terhadap kernel yang sedang berjalan dan proses pengguna yang sedang berjalan tanpa perlu menyusun semula apa-apa dan tanpa memulakan semula proses yang anda pantau. Probe yang tidak anda aktifkan tidak memakan kos, kerana instrumentasi hanya ditampal apabila skrip memintanya, itulah sebabnya pentadbir sanggup menggunakannya pada mesin pengeluaran. DTrace memenangi hadiah utama dalam Anugerah Inovasi Teknologi The Wall Street Journal 2006, dan anugerah USENIX STUG (Software Tools User Group) pada 2008.
ZFS direka di Sun oleh Jeff Bonwick, Bill Moore dan Matthew Ahrens, dan diumumkan pada 14 September 2004. Ia menggabungkan pengurus volum dan sistem fail ke dalam satu lapisan, yang membolehkannya melakukan checksum pada setiap blok semasa bacaan dan membaiki blok yang rosak daripada salinan redundan. Penulisan adalah secara copy on write: sesuatu blok tidak pernah ditulis ganti di tempat asal, jadi kegagalan sistem di tengah-tengah penulisan membiarkan data lama utuh dan bukannya sistem fail yang separuh ditulis. Snapshot hampir tidak memakan kos, kerana snapshot hanyalah set blok yang tidak disentuh oleh penulisan kemudian. ZFS tidak disertakan dalam keluaran awal Solaris 10. Ia dihantar dalam kemas kini Solaris 10 6/06, pada Jun 2006.
Zones adalah komponen ketiga. Satu zone memberikan satu kernel beberapa ruang pengguna yang terasing, setiap satunya dengan sistem fail root, jadual proses dan konfigurasi rangkaiannya sendiri. Zones muncul dalam binaan beta Solaris 10 pada Februari 2004 dan disertakan bersama keluaran penuh. FreeBSD telah mencapai idea yang sama lebih awal daripada arah yang berbeza, dan perbandingan antara jails dan Docker containers masih merupakan cara paling jelas untuk melihat apakah sebenarnya pengasingan peringkat kernel. Zones masih hidup dalam illumos hari ini dan merupakan asas kepada sekurang-kurangnya satu pengedaran di bawah.
Mengapa Sun membuka kod sumber Solaris
Sun menyerahkan CDDL (Common Development and Distribution License) kepada OSI (Open Source Initiative) pada 1 Disember 2004, dan OSI meluluskannya pada 14 Januari 2005. CDDL adalah berdasarkan versi 1.1 MPL (Mozilla Public License). Sifat copyleft-nya berfungsi pada tahap fail individu: fail sumber CDDL mesti kekal sebagai CDDL, tetapi binari yang dibina daripadanya boleh digabungkan dengan kod di bawah terma lain.
DTrace adalah yang pertama. Kod sumbernya dikeluarkan di bawah CDDL pada 25 Januari 2005, di tapak opensolaris.org yang baru dilancarkan, enam hari sebelum Solaris 10 sendiri dikeluarkan. Sebahagian besar kod sistem Solaris menyusul pada 14 Jun 2005. ZFS telah disepadukan ke dalam trunk pembangunan utama Solaris pada 31 Oktober 2005 dan sampai kepada pembangun OpenSolaris dalam build 27 pada 16 November 2005. OpenSolaris juga menjadi satu pengedaran yang boleh anda pasang: 2008.05 tiba pada 5 Mei 2008 sebagai live CD, dan 2009.06 tiba pada 1 Jun 2009 dengan sokongan SPARC.
Pilihan lesen masih menentukan apa yang boleh anda jalankan hari ini. Free Software Foundation mengelaskan CDDL sebagai lesen perisian bebas yang tidak serasi dengan GPL (GNU General Public License), satu ketidakserasian yang diwarisi daripada MPL 1.1. Kernel Linux adalah GPLv2. Itulah sebabnya ZFS pada Linux dibina sebagai modul kernel di luar pokok sumber kernel dan bukannya digabungkan ke dalamnya, dan sebab mengapa ia tidak berada dalam kernel arus perdana. Keputusan untuk menerbitkan di bawah mana-mana lesen terbuka adalah perkara yang paling penting bagi kesinambungan cerita ini, dan sejarah pelesenan sumber terbuka menjelaskan mengapa sesebuah syarikat akan melakukan perkara tersebut.
Apa yang berlaku apabila Oracle membeli Sun
Oracle mengumumkan pada 20 April 2009 bahawa ia akan mengambil alih Sun dengan nilai US$7.4 bilion, atau US$5.6 bilion bersih selepas ditolak tunai dan hutang Sun. Perjanjian tersebut selesai pada 27 Januari 2010.
Pada 13 Ogos 2010, satu memo dalaman Oracle yang ditulis oleh Mike Shapiro, Bill Nesheim dan Chris Armes telah diedarkan di dalam syarikat dan kemudiannya bocor. Memo tersebut menyatakan dasar baharu secara terus: "Kami tidak akan lagi mengedarkan kod sumber bagi keseluruhan sistem pengendalian Solaris secara masa nyata semasa ia dibangunkan, secara harian." Ia menolak sebarang binaan komuniti selanjutnya: "Kami tidak akan mengeluarkan sebarang pengedaran binari lain, seperti binaan harian atau dua mingguan bagi binari Solaris, atau pengedaran OpenSolaris 2010.05 atau yang lebih baharu." Keluaran sumber terbuka sebaliknya akan mengikut produk yang telah dilancarkan: "Kami akan mengedarkan kemas kini kepada kod berlesen CDDL atau lesen sumber terbuka lain yang diluluskan selepas keluaran penuh sistem pengendalian Solaris perusahaan kami."
Pada 23 Ogos 2010, Lembaga Pentadbir OpenSolaris meluluskan resolusi yang merekodkan bahawa Oracle tidak melantik perantara kepada lembaga tersebut dan telah mengumumkan penamatan perkongsian pembangunan pada 13 Ogos. Lembaga tersebut mengundi untuk mengembalikan kawalan komuniti kepada Oracle di bawah piagam yang asalnya ditulis oleh Sun, yang seterusnya membubarkan lembaga tersebut.
Oracle Solaris 11 dikeluarkan pada 9 November 2011. Pada 2 September 2017, Oracle memberhentikan kebanyakan pasukan Solaris. Oracle Solaris 11.4 dikeluarkan pada 28 Ogos 2018 dan masih merupakan keluaran semasa. Di bawah dasar sokongan sepanjang hayat Oracle, Premier Support untuk 11.4 berjalan sehingga November 2031 dan Extended Support sehingga November 2037. Oleh itu, Solaris merupakan produk komersial yang disokong dengan tarikh tamat yang diterbitkan, pada keluaran yang telah menjadi keluaran semasa sejak 2018.
Bagaimana illumos bermula, dan sebab ia dipanggil fork
Pada 3 Ogos 2010, sepuluh hari sebelum memo tersebut bocor, Garrett D'Amore mengumumkan illumos. Nama ini menggabungkan illum, perkataan Latin untuk cahaya, dengan OS untuk sistem pengendalian, dan projek ini menulisnya sebagai satu perkataan dengan hanya huruf pertama yang menggunakan huruf besar.
Sasaran projek ini ialah OS/Net, yang biasanya ditulis sebagai ON: penyatuan yang mengandungi kernel dan utiliti sistem teras. OpenSolaris tidak pernah dibuka sepenuhnya. Beberapa bahagian dihantar sebagai binari tertutup yang tidak boleh dibina semula oleh sesiapa di luar Sun, termasuk kod pengantarabangsaan di dalam pustaka C (libc_i18n), pengurus kunci NFS, rangka kerja kriptografi, pemacu seperti pemacu mpt untuk penyesuai bas hos LSI, dan beberapa kod platform SPARC. Menggantikan bahagian-bahagian tersebut merupakan tugas pertama projek ini, kerana sistem pengendalian yang tidak boleh dibina daripada kod sumber bukanlah sistem yang boleh diselenggara.
D'Amore berhati-hati dengan perkataan fork. "Kami bukan fork hari ini, disebabkan cara kami menjejaki OS/Net," tulis beliau, sambil menggambarkan repositori hiliran yang akan mengikuti pepohon Oracle dan boleh menyalurkan perubahan kembali ke hulu. Sepuluh hari kemudian, pihak hulu berhenti menerbitkan kod. illumos menjadi fork secara lalai, kerana tiada lagi perkara untuk dijejaki. Pepohon teras, illumos-gate, telah melepasi 23,000 komit setakat Ogos 2026 dan masih terus menerimanya.
Pengagihan yang manakah berasal daripada illumos
illumos bukanlah sesuatu yang anda pasang. Ia merupakan teras sistem, dan pengagihan membina sistem yang boleh digunakan di atasnya. Berikut adalah pengagihan yang masih diedarkan.
- OpenIndiana dilancarkan secara rasmi pada 14 September 2010 di JISC Centre di London, dan merupakan keturunan paling hampir dengan pengagihan desktop dan pelayan OpenSolaris yang lama. Ia merupakan keluaran bergulir (rolling release) yang dinamakan Hipster, dan snapshot 2026.04 telah diterbitkan pada 5 Mei 2026.
- OmniOS ialah pengagihan pelayan, yang kini diselenggara oleh komunitinya sebagai OmniOS CE selepas vendor asalnya menghentikan kerja ke atasnya.
- SmartOS ialah platform hipervisor yang dibina berasaskan zones. Joyent menciptanya dan mengumumkan pada April 2022 bahawa SmartOS dan Triton berpindah ke MNX Solutions, berkuat kuasa 1 Mei 2022.
- NexentaStor menggunakan asas yang sama untuk perkakas storan, yang merupakan barisan komersial asal usul illumos.
- Tribblix ialah pengagihan kecil yang diselenggara oleh Peter Tribble, yang diterangkan di bawah.
- DilOS meletakkan peralatan pakej Debian di atas kernel illumos.
Rupa pemasangan sistem illumos pada hari ini
Tribblix merupakan contoh yang berguna kerana saiznya kecil, didokumentasikan secara awam, dan masih lagi mengeluarkan versi baharu. Milestone 41 untuk x86 telah diterbitkan pada 5 Ogos 2026, dan barisan SPARC mencapai Milestone 34 pada 21 April 2026. Projek ini menyifatkan dirinya sebagai gaya retro dengan komponen moden, dan ia mengekalkan format pakej SVR4 yang digunakan oleh Solaris dan bukannya beralih kepada sistem pakej yang lebih baharu.
Pemasangan dijalankan daripada imej langsung (live image). Anda but ISO tersebut, log masuk sebagai pengguna jack dengan kata laluan jack, tukar kepada root, dan jalankan pemasang pada peranti cakera. Ini adalah perintah yang diberikan oleh dokumentasi pemasangan projek itu sendiri:
./live_install.sh -G c1t0d0Flag -G menulis susun atur partition EFI (extensible firmware interface), manakala -b memilih susun atur MBR (master boot record) legasi sebagai gantinya. Nama cakera mengikut konvensyen Solaris cXtYdZ dan bukannya /dev/sda, yang merupakan perkara pertama yang akan kelihatan asing jika anda datang daripada Linux. Set perisian dipanggil overlay dan boleh dinamakan pada baris yang sama:
./live_install.sh -G c1t0d0 develop desktopSelepas pemasangan, alat pakej yang digunakan ialah zap, yang berfungsi pada overlay supaya dependensi diuruskan untuk anda:
zap refresh
zap install-overlay develop
zap update-overlay -aItulah perintah yang diterbitkan oleh Tribblix. Ia dijalankan pada perkakasan atau hypervisor yang anda kawal. Ia bukanlah sesuatu yang akan anda temui di sebalik imej satu klik dalam panel kawalan VPS, dan jurang itulah keadaan sebenar penggunaan illumos pada tahun 2026.
Mengapa ZFS dan DTrace bertahan lebih lama daripada Solaris
ZFS meninggalkan Solaris hampir serta-merta selepas kod sumbernya diterbitkan. Pawel Jakub Dawidek melakukan porting ke FreeBSD, di mana ia telah menjadi sebahagian daripada sistem tersebut sejak FreeBSD 7.0 pada tahun 2008. Pembangunan ZFS asli untuk Linux bermula pada tahun 2008 dan mengeluarkan keluaran stabil pertamanya pada tahun 2013. Antara tahun 2010 dan 2013, illumos memegang salinan rujukan bagi kod sumber ZFS, kerana repositori Oracle telah ditutup dan setiap port lain memerlukan tempat untuk mendapatkan kemas kini. Itulah nilai konkrit bagi fork: tanpanya, port-port tersebut tidak akan mempunyai leluhur yang sama untuk tujuan penggabungan.
Projek OpenZFS diumumkan pada 17 September 2013 untuk menyelaraskan port-port tersebut, dengan Matt Ahrens, salah seorang penulis asal ZFS, antara pengasasnya. OpenZFS 2.0 dikeluarkan pada 30 November 2020, dan nota keluarannya menyatakan hasilnya dengan jelas: "Projek ZFS on Linux telah dinamakan semula sebagai OpenZFS! Kedua-dua Linux dan FreeBSD kini disokong daripada repositori yang sama, menjadikan semua ciri OpenZFS tersedia pada kedua-dua platform." FreeBSD 13.0 menggugurkan salinan terbitan illumos miliknya sendiri dan beralih kepada repositori kongsi tersebut.
Kedua-dua barisan ZFS telah menyimpang pada peringkat cakera. Barisan terbuka berhenti pada pool version 28, versi terakhir yang diterbitkan oleh Sun, dan beralih kepada feature flags bernama di bawah versi pemegang tempat 5000, supaya sesuatu pool mengiklankan ciri yang digunakannya dan bukannya satu nombor tunggal. Oracle terus menambah nombor versinya sendiri di sebalik kod sumber tertutup. Pool yang dicipta melepasi versi 28 pada satu pihak tidak boleh diimport pada pihak yang lain. Jika anda sedang memilih tempat untuk menjalankannya, bagaimana OpenZFS berfungsi pada FreeBSD berbanding Linux merangkumi perkara yang sebenarnya berbeza antara kedua-dua hos tersebut.
DTrace menempuh perjalanan yang lebih singkat. Ia menjadi standard dalam FreeBSD menjelang 7.1 pada Januari 2009, dan Apple menambahnya dalam Mac OS X 10.5 Leopard. Oracle mengeluarkan kod kernel DTrace di bawah GPLv2 pada Ogos 2017, satu perubahan yang disedari secara meluas pada Februari 2018, yang menghapuskan halangan lesen untuk Linux. Ia tidak pernah digabungkan ke dalam kernel utama. Pengesanan (tracing) Linux secara praktikalnya berjalan pada eBPF, dan bpftrace memberikan bahasa skrip yang sengaja dibuat hampir sama dengan D dalam DTrace.
Corak ini adalah perkara utama, bukan sekadar mengenai Solaris. Sun menerbitkan ZFS dan DTrace di bawah lesen yang membenarkan orang lain menyimpan salinan dan terus mengusahakannya. Apabila syarikat yang membiayai kerja tersebut berhenti, kerja itu diteruskan, kerana kod tersebut sudah berada dalam repositori lain dan tangan orang lain. Bahagian Solaris yang tidak pernah dibuka, termasuk binari tertutup yang terpaksa ditulis semula oleh illumos, hilang bersama syarikat tersebut. Itulah yang diubah oleh sumber terbuka, dan ia merupakan mekanisme yang sama di sebalik cara pengedaran Linux diturunkan antara satu sama lain.
Patutkah anda menjalankan illumos pada VPS?
Bagi hampir semua orang, jawapannya adalah tidak, dan tiada apa-apa di atas merupakan saranan untuk mencubanya. illumos menyokong julat perkakasan yang terhad, kerana set pemandunya adalah apa yang disokong oleh Sun ditambah dengan apa yang telah ditulis oleh komuniti kecil sejak itu. Penyedia VPS menerbitkan imej Linux dan BSD, jadi pemasangan illumos biasanya bermaksud memuat naik ISO anda sendiri ke penyedia yang membenarkan imej tersuai, kemudian mengetahui sama ada cakera maya dan peranti rangkaian dikenali. Perisian pihak ketiga datang daripada set pakej pengedaran itu sendiri atau daripada pengkompil anda sendiri.
Terdapat sebab sebenar untuk menjalankannya: beban kerja Solaris yang perlu anda kekalkan, penggunaan zones yang sudah anda kendalikan, atau minat untuk membaca kod sumber. Pengedaran yang disenaraikan di atas diselenggara dan senarai mel mereka menjawab soalan. Itu adalah perkara yang berbeza daripada pilihan lalai untuk pelayan baharu.
Jika anda datang ke sini untuk ZFS, anda tidak memerlukan illumos untuk mendapatkannya. Jalankan OpenZFS pada Linux atau pada FreeBSD, di mana ia dipakejkan, didokumenkan dan digunakan secara meluas. Jika anda menimbang bahagian BSD daripada keluarga yang sama untuk pelayan, perbandingan praktikal Linux dan FreeBSD sebagai platform pelayan merangkumi perkara yang berubah dalam operasi harian. illumos ialah kisah asal alatan tersebut, dan mengetahui dari mana asalnya menjelaskan banyak kelakuan mereka, bermula dengan sebab zpool dan zfs tidak terasa seperti bahagian lain dalam tindanan storan Linux.
FAQ
Adakah illumos sama dengan OpenSolaris?
Tidak. OpenSolaris ialah projek dan pengedaran milik Sun yang diwarisi oleh Oracle, dan Oracle menamatkan projek tersebut pada tahun 2010. illumos ialah projek berasingan yang diumumkan pada 3 Ogos 2010, dibina daripada kod sumber teras OpenSolaris yang terakhir diterbitkan, iaitu penyatuan OS/Net. Tugas pertamanya adalah menggantikan komponen binari tertutup yang disertakan dalam OpenSolaris, termasuk libc_i18n, pengurus kunci NFS, rangka kerja kriptografi dan beberapa pemacu. Tiada kod illumos yang datang daripada Oracle selepas tahun 2010, kerana Oracle berhenti menerbitkannya.
Mengapa Linux tidak boleh menyertakan ZFS dalam kernelnya?
Lesennya tidak serasi. ZFS menggunakan CDDL, yang dikelaskan oleh Free Software Foundation sebagai lesen perisian bebas yang tidak serasi dengan GPL, satu ketidakserasian yang diwarisi CDDL daripada MPL 1.1. Kernel Linux menggunakan GPLv2. Hasil praktikalnya ialah OpenZFS pada Linux diedarkan sebagai modul kernel luar (out-of-tree), biasanya dibina oleh DKMS bagi setiap kernel yang anda pasang, atau sebagai pakej modul yang telah dibina. Ia berfungsi dengan baik, tetapi modul tersebut perlu dibina semula bagi setiap kernel baharu, jadi ia mungkin ketinggalan beberapa hari atau minggu berbanding keluaran kernel terkini.
Adakah Oracle Solaris masih disokong?
Ya. Oracle Solaris 11.4 telah dikeluarkan pada 28 Ogos 2018 dan merupakan keluaran semasa. Premier Support berjalan sehingga November 2031 dan Extended Support sehingga November 2037 di bawah polisi sokongan sepanjang hayat Oracle. Oracle memberhentikan kebanyakan pasukan Solaris pada 2 September 2017, dan 11.4 sejak itu hanya menerima kemas kini repositori sokongan dan bukannya versi utama yang baharu. Kod sumber penuh tidak diterbitkan seperti cara OpenSolaris menerbitkannya dahulu.
Bolehkah saya memasang illumos pada VPS?
Kadangkala boleh, tetapi jarang sekali melalui senarai imej pembekal. Anda biasanya memerlukan pembekal yang membenarkan anda melampirkan ISO tersuai dan menggunakan konsol, kemudian pastikan pemacu cakera maya dan rangkaian dalam pokok illumos mengenali peranti hypervisor tersebut. OpenIndiana dan Tribblix adalah titik permulaan biasa untuk pemasangan tujuan umum, manakala SmartOS direka untuk menjadi hos hypervisor dan bukannya tetamu. Uji dalam mesin maya tempatan sebelum anda membayar untuk sebarang perkhidmatan.
Adakah DTrace berbaloi untuk dipelajari jika saya hanya menggunakan Linux?
Modelnya boleh dipindahkan walaupun alatnya kebanyakannya tidak. Oracle mengeluarkan kod kernel DTrace di bawah GPLv2 pada Ogos 2017 dan menyelenggara port untuk Oracle Linux, tetapi ia tidak pernah digabungkan ke dalam kernel utama, dan penjejakan (tracing) Linux secara praktikalnya berjalan pada eBPF. Bahasa yang digunakan oleh bpftrace direka bentuk agar kelihatan seperti D dalam DTrace, jadi probe, predikat dan pengagregatan membawa maksud yang sama dalam kedua-duanya. Mempelajari cara pemikiran DTrace menjadikan skrip bpftrace boleh dibaca pada percubaan pertama.