Solaris กับ illumos แตกต่างกันอย่างไรและทำไมถึงยังสำคัญ
เรียนรู้ประวัติศาสตร์การเปลี่ยนผ่านจาก Solaris สู่ illumos หลัง Oracle ปิดซอร์สโค้ด และเหตุผลที่เทคโนโลยีอย่าง ZFS และ DTrace ยังคงเป็นมาตรฐานสำคัญในระบบปฏิบัติการปัจจุบัน
Solaris และ illumos คืออะไร
Solaris และ illumos เป็นสองสายที่แตกแขนงมาจากซอร์สโค้ด Unix ชุดเดียวกัน Sun Microsystems เป็นผู้สร้าง Solaris และเปิดเผยซอร์สโค้ดส่วนใหญ่ในปี 2005 ต่อมา Oracle เข้าซื้อกิจการ Sun ในปี 2010 และยุติการเผยแพร่ซอร์สโค้ดดังกล่าว นักพัฒนาภายนอก Oracle จึงนำโค้ดส่วนที่เปิดเผยไปพัฒนาต่อภายใต้ชื่อใหม่ว่า illumos แม้ตัวระบบปฏิบัติการเองจะเป็นระบบเฉพาะกลุ่มในปี 2026 แต่เลเยอร์การจัดเก็บข้อมูลและเครื่องมือติดตามการทำงาน (tracing tool) ที่สร้างขึ้นภายในระบบนั้นกลับไม่ได้เป็นเช่นนั้น และนั่นคือเหตุผลที่ประวัติศาสตร์ส่วนนี้ควรค่าแก่การศึกษา
หากคุณใช้งาน ZFS บน Linux หรือ FreeBSD แสดงว่าคุณกำลังใช้งานโค้ดที่ถูกเขียนขึ้นที่ Sun สำหรับ Solaris ซึ่งเป็นโค้ดที่ยังคงอยู่รอดมาได้แม้บริษัท สายผลิตภัณฑ์ และข้อพิพาทด้านลิขสิทธิ์จะจบสิ้นไปแล้ว โพสต์นี้คือเรื่องราวว่าเหตุการณ์ดังกล่าวเกิดขึ้นได้อย่างไร โดยมีการตรวจสอบวันที่ที่เกี่ยวข้องไว้อย่างครบถ้วน
ที่มาของ 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 หากคุณรัน uname -a บนเครื่อง illumos ในปี 2026 คำแรกที่แสดงผลออกมาก็ยังคงเป็น SunOS เนื่องจาก illumos ได้รับสืบทอดชื่อนี้มาพร้อมกับโค้ดต้นฉบับ
สิ่งที่ Solaris 10 นำเสนอในปี 2005
Solaris 10 เปิดตัวเมื่อวันที่ 31 มกราคม 2005 ซึ่งมีความสำคัญในบริบทนี้เนื่องจากทุกสิ่งที่ยังคงหลงเหลืออยู่หลังจากบริษัทปิดตัวลงนั้น ล้วนอยู่ในรุ่นดังกล่าวหรือมาพร้อมกับการอัปเดตในภายหลัง
DTrace ถูกเขียนขึ้นที่ Sun โดย Bryan Cantrill, Mike Shapiro และ Adam Leventhal โดยเริ่มใช้งานได้ครั้งแรกในเดือนพฤศจิกายน 2003 เครื่องมือนี้ใช้สำหรับตรวจสอบ kernel และ user process ที่กำลังทำงานอยู่โดยไม่ต้องคอมไพล์โปรแกรมใหม่และไม่ต้องรีสตาร์ท process ที่คุณกำลังเฝ้าดูอยู่ Probe ที่คุณไม่ได้เปิดใช้งานจะไม่มีผลกระทบต่อประสิทธิภาพการทำงาน เนื่องจากตัว instrumentation จะถูกแทรกเข้าไปก็ต่อเมื่อมีสคริปต์เรียกใช้งานเท่านั้น นี่คือเหตุผลที่ผู้ดูแลระบบเต็มใจใช้งานบนเครื่อง production DTrace ได้รับรางวัลชนะเลิศจากงาน The Wall Street Journal's 2006 Technology Innovation Awards และรางวัล USENIX STUG (Software Tools User Group) ในปี 2008
ZFS ถูกออกแบบที่ Sun โดย Jeff Bonwick, Bill Moore และ Matthew Ahrens และประกาศเปิดตัวเมื่อวันที่ 14 กันยายน 2004 โดยรวมเอา volume manager และ filesystem เข้าเป็นเลเยอร์เดียวกัน ซึ่งช่วยให้สามารถตรวจสอบ checksum ของทุกบล็อกข้อมูลในขณะอ่านและซ่อมแซมบล็อกที่เสียหายจากสำเนาสำรองได้ การเขียนข้อมูลใช้หลักการ copy on write: บล็อกข้อมูลจะไม่ถูกเขียนทับในตำแหน่งเดิม ดังนั้นหากเกิดการ crash ระหว่างการเขียน ข้อมูลเดิมจะยังคงอยู่ครบถ้วนแทนที่จะเกิด filesystem ที่เสียหายจากการเขียนไม่เสร็จสิ้น Snapshots แทบไม่มีต้นทุนในการจัดเก็บ เนื่องจาก snapshot เป็นเพียงชุดของบล็อกที่การเขียนข้อมูลในภายหลังไม่ได้เข้าไปแก้ไข ZFS ไม่ได้รวมอยู่ใน Solaris 10 รุ่นแรก แต่ถูกเพิ่มเข้ามาในการอัปเดต Solaris 10 6/06 ในเดือนมิถุนายน 2006
Zones เป็นส่วนประกอบที่สาม Zone ช่วยให้ kernel หนึ่งชุดสามารถแบ่งพื้นที่ใช้งานของผู้ใช้ (user space) ออกเป็นหลายส่วนที่แยกจากกัน โดยแต่ละส่วนจะมี root filesystem, process table และการตั้งค่าเครือข่ายเป็นของตนเอง Zones ปรากฏครั้งแรกใน Solaris 10 รุ่นทดสอบเมื่อเดือนกุมภาพันธ์ 2004 และมาพร้อมกับรุ่นสมบูรณ์ FreeBSD ได้เข้าถึงแนวคิดเดียวกันนี้มาก่อนจากทิศทางที่ต่างออกไป และ การเปรียบเทียบระหว่าง jails กับ Docker containers ยังคงเป็นวิธีที่ชัดเจนที่สุดในการทำความเข้าใจว่าการแยกส่วนระดับ kernel คืออะไรกันแน่ ปัจจุบัน Zones ยังคงใช้งานอยู่ใน illumos และเป็นรากฐานของอย่างน้อยหนึ่ง distribution ในปัจจุบัน
เหตุผลที่ Sun เปิดเผยซอร์สโค้ดของ Solaris
Sun ได้ยื่น CDDL (Common Development and Distribution License) ต่อ OSI (Open Source Initiative) เมื่อวันที่ 1 ธันวาคม 2004 และ OSI ได้อนุมัติในวันที่ 14 มกราคม 2005 โดย CDDL มีพื้นฐานมาจาก MPL (Mozilla Public License) เวอร์ชัน 1.1 ซึ่งมีลักษณะ copyleft ในระดับไฟล์แต่ละไฟล์ กล่าวคือไฟล์ซอร์สโค้ดที่เป็น CDDL จะต้องคงสถานะเป็น CDDL ต่อไป แต่ไบนารีที่คอมไพล์จากไฟล์ดังกล่าวสามารถนำไปรวมกับโค้ดภายใต้เงื่อนไขอื่นได้
DTrace เป็นส่วนแรกที่ถูกเปิดเผย โดยซอร์สโค้ดถูกปล่อยภายใต้สัญญาอนุญาต CDDL เมื่อวันที่ 25 มกราคม 2005 บนเว็บไซต์ opensolaris.org ที่เพิ่งเปิดตัวใหม่ ซึ่งเป็นเวลา 6 วันก่อนที่ Solaris 10 จะวางจำหน่าย จากนั้นซอร์สโค้ดส่วนใหญ่ของระบบ Solaris ก็ตามมาในวันที่ 14 มิถุนายน 2005 ส่วน ZFS ถูกรวมเข้ากับสายการพัฒนาหลักของ Solaris ในวันที่ 31 ตุลาคม 2005 และส่งถึงนักพัฒนา OpenSolaris ใน build 27 เมื่อวันที่ 16 พฤศจิกายน 2005 นอกจากนี้ OpenSolaris ยังกลายเป็นดิสทริบิวชันที่สามารถติดตั้งได้ โดยเวอร์ชัน 2008.05 ออกมาในรูปแบบ live CD เมื่อวันที่ 5 พฤษภาคม 2008 และเวอร์ชัน 2009.06 ออกมาเมื่อวันที่ 1 มิถุนายน 2009 พร้อมรองรับสถาปัตยกรรม SPARC
การเลือกสัญญาอนุญาตยังคงเป็นตัวกำหนดสิ่งที่คุณสามารถใช้งานได้ในปัจจุบัน โดย Free Software Foundation จัดให้ CDDL เป็นสัญญาอนุญาตซอฟต์แวร์เสรีที่ไม่สามารถใช้งานร่วมกับ GPL (GNU General Public License) ได้ ซึ่งเป็นความไม่เข้ากันที่สืบทอดมาจาก MPL 1.1 ในขณะที่ Linux kernel ใช้สัญญาอนุญาต GPLv2 นี่คือเหตุผลที่ ZFS on Linux ถูกสร้างขึ้นเป็น kernel module แยกต่างหากจากซอร์สทรีของ kernel แทนที่จะถูกรวมเข้าเป็นส่วนหนึ่ง และเป็นเหตุผลว่าทำไมมันจึงไม่อยู่ใน mainline kernel อย่างไรก็ตาม การตัดสินใจเผยแพร่ภายใต้สัญญาอนุญาตแบบเปิดใดๆ ก็ตามถือเป็นประเด็นสำคัญที่สุดสำหรับเรื่องราวส่วนที่เหลือ และ ประวัติความเป็นมาของสัญญาอนุญาตซอฟต์แวร์โอเพนซอร์ส จะอธิบายว่าเหตุใดบริษัทจึงตัดสินใจทำเช่นนั้น
เหตุการณ์หลัง Oracle เข้าซื้อกิจการ Sun
Oracle ประกาศเมื่อวันที่ 20 เมษายน 2009 ว่าจะเข้าซื้อกิจการ Sun ด้วยมูลค่า 7.4 พันล้านดอลลาร์สหรัฐ หรือ 5.6 พันล้านดอลลาร์สหรัฐหากหักเงินสดและหนี้สินของ Sun ออกแล้ว ข้อตกลงดังกล่าวเสร็จสิ้นเมื่อวันที่ 27 มกราคม 2010
เมื่อวันที่ 13 สิงหาคม 2010 บันทึกภายในของ Oracle ที่เขียนโดย Mike Shapiro, Bill Nesheim และ Chris Armes ได้ถูกเผยแพร่ภายในบริษัทและรั่วไหลออกมาในภายหลัง บันทึกดังกล่าวระบุนโยบายใหม่ไว้อย่างชัดเจนว่า: "เราจะไม่แจกจ่ายซอร์สโค้ดสำหรับระบบปฏิบัติการ Solaris ทั้งหมดแบบเรียลไทม์ในระหว่างการพัฒนาเป็นรายคืนอีกต่อไป" นอกจากนี้ยังระบุถึงการยุติการสร้างซอฟต์แวร์โดยชุมชนว่า: "เราจะไม่ปล่อย binary distribution อื่นใด เช่น nightly build หรือ bi-weekly build ของ Solaris หรือ OpenSolaris 2010.05 หรือเวอร์ชันที่ใหม่กว่า" การปล่อยซอฟต์แวร์โอเพนซอร์สจะเปลี่ยนไปตามรอบการวางจำหน่ายผลิตภัณฑ์แทน โดยระบุว่า: "เราจะแจกจ่ายอัปเดตสำหรับโค้ดที่ได้รับอนุญาตภายใต้ CDDL หรือสัญญาอนุญาตโอเพนซอร์สอื่น ๆ หลังจากที่ระบบปฏิบัติการ Solaris สำหรับองค์กรของเราได้วางจำหน่ายอย่างเป็นทางการแล้วเท่านั้น"
เมื่อวันที่ 23 สิงหาคม 2010 คณะกรรมการบริหาร OpenSolaris ได้ผ่านมติบันทึกว่า Oracle ไม่ได้แต่งตั้งตัวแทนประสานงานมายังคณะกรรมการ และได้ประกาศยุติความร่วมมือในการพัฒนาเมื่อวันที่ 13 สิงหาคม คณะกรรมการจึงลงมติให้ส่งคืนการควบคุมชุมชนกลับไปยัง Oracle ภายใต้กฎบัตรที่ Sun ได้ร่างไว้แต่เดิม ซึ่งส่งผลให้คณะกรรมการชุดดังกล่าวถูกยุบไป
Oracle Solaris 11 ได้รับการเผยแพร่เมื่อวันที่ 9 พฤศจิกายน 2011 ต่อมาในวันที่ 2 กันยายน 2017 Oracle ได้เลิกจ้างทีมงาน Solaris ส่วนใหญ่ Oracle Solaris 11.4 ได้รับการเผยแพร่เมื่อวันที่ 28 สิงหาคม 2018 และยังคงเป็นเวอร์ชันปัจจุบันจนถึงขณะนี้ ภายใต้นโยบายการสนับสนุนตลอดอายุการใช้งานของ Oracle การสนับสนุนระดับ Premier Support สำหรับ 11.4 จะสิ้นสุดในเดือนพฤศจิกายน 2031 และ Extended Support จะสิ้นสุดในเดือนพฤศจิกายน 2037 ดังนั้น Solaris จึงเป็นผลิตภัณฑ์เชิงพาณิชย์ที่มีการสนับสนุนและมีกำหนดการสิ้นสุดที่ชัดเจน โดยใช้เวอร์ชันที่ยังคงเป็นเวอร์ชันปัจจุบันมาตั้งแต่ปี 2018
จุดเริ่มต้นของ illumos และเหตุผลที่เรียกว่า fork
เมื่อวันที่ 3 สิงหาคม 2010 สิบวันก่อนที่บันทึกข้อความจะรั่วไหล Garrett D'Amore ได้ประกาศเปิดตัว illumos ชื่อนี้เป็นการรวมคำว่า illum ซึ่งเป็นภาษาละตินแปลว่าแสง เข้ากับ OS ที่ย่อมาจาก operating system โดยโครงการเขียนเป็นคำเดียวและใช้อักษรตัวแรกเป็นตัวพิมพ์ใหญ่เท่านั้น
เป้าหมายคือ OS/Net ซึ่งมักเขียนย่อว่า ON อันเป็นส่วนรวมที่เก็บ kernel และยูทิลิตี้หลักของระบบ OpenSolaris ไม่เคยเป็นระบบเปิดอย่างสมบูรณ์ หลายส่วนถูกส่งมอบในรูปแบบ binary ปิดที่ไม่มีใครภายนอก Sun สามารถสร้างใหม่ได้ รวมถึงโค้ดการรองรับภาษาต่างประเทศภายใน C library (libc_i18n), ตัวจัดการ lock ของ NFS, เฟรมเวิร์กด้านการเข้ารหัส, ไดรเวอร์อย่าง mpt สำหรับ LSI host bus adapters และโค้ดบางส่วนของแพลตฟอร์ม SPARC การแทนที่ส่วนประกอบเหล่านี้เป็นงานแรกของโครงการ เพราะระบบปฏิบัติการที่คุณไม่สามารถสร้างจาก source code ได้นั้น ไม่ใช่ระบบที่คุณจะดูแลรักษาได้
D'Amore ระมัดระวังในการใช้คำว่า fork โดยเขาเขียนไว้ว่า "เรายังไม่ใช่ fork ในวันนี้ เนื่องจากวิธีการที่เราติดตาม OS/Net" เขาอธิบายถึง repository ปลายทางที่จะติดตาม tree ของ Oracle และสามารถส่งการเปลี่ยนแปลงกลับไปยังต้นทางได้ สิบวันต่อมาต้นทางได้หยุดการเผยแพร่ illumos จึงกลายเป็น fork โดยปริยายเพราะไม่มีสิ่งใดให้ติดตามอีกต่อไป ตัว tree หลักอย่าง illumos-gate มียอด commit เกิน 23,000 ครั้ง ณ เดือนสิงหาคม 2026 และยังคงมีการพัฒนาอย่างต่อเนื่องจนถึงปัจจุบัน
การแจกจ่าย (distributions) ใดบ้างที่มาจาก illumos
illumos ไม่ใช่สิ่งที่คุณติดตั้งได้โดยตรง แต่เป็นแกนหลักของระบบ (core tree) ซึ่งการแจกจ่ายต่างๆ จะนำไปสร้างเป็นระบบที่ใช้งานได้จริง ต่อไปนี้คือรายการที่ยังคงมีการเผยแพร่ (shipping) อยู่ในปัจจุบัน
- OpenIndiana เปิดตัวอย่างเป็นทางการเมื่อวันที่ 14 กันยายน 2010 ที่ JISC Centre ในลอนดอน และเป็นทายาทที่ใกล้เคียงที่สุดของ OpenSolaris ทั้งในเวอร์ชันเดสก์ท็อปและเซิร์ฟเวอร์ โดยใช้รูปแบบการอัปเดตแบบ rolling release ที่เรียกว่า Hipster และ snapshot เวอร์ชัน 2026.04 ได้รับการเผยแพร่เมื่อวันที่ 5 พฤษภาคม 2026
- OmniOS เป็นการแจกจ่ายสำหรับเซิร์ฟเวอร์ ซึ่งปัจจุบันดูแลโดยชุมชนในชื่อ OmniOS CE หลังจากที่ผู้พัฒนาเดิมยุติการสนับสนุนไป
- SmartOS เป็นแพลตฟอร์ม hypervisor ที่สร้างขึ้นบนเทคโนโลยี zones โดย Joyent เป็นผู้สร้างและประกาศในเดือนเมษายน 2022 ว่า SmartOS และ Triton จะย้ายไปอยู่ภายใต้การดูแลของ MNX Solutions โดยมีผลตั้งแต่วันที่ 1 พฤษภาคม 2022
- NexentaStor ใช้ฐานเดียวกันนี้สำหรับอุปกรณ์จัดเก็บข้อมูล (storage appliances) ซึ่งเป็นสายผลิตภัณฑ์เชิงพาณิชย์ที่ illumos มีต้นกำเนิดมาจากจุดนั้น
- Tribblix เป็นการแจกจ่ายขนาดเล็กที่ดูแลโดย Peter Tribble ซึ่งมีรายละเอียดอธิบายไว้ด้านล่าง
- DilOS นำเครื่องมือจัดการแพ็กเกจของ Debian มาใช้บน illumos kernel
ลักษณะการติดตั้งระบบ illumos ในปัจจุบัน
Tribblix เป็นตัวอย่างที่มีประโยชน์เนื่องจากมีขนาดเล็ก มีเอกสารเผยแพร่ต่อสาธารณะ และยังคงมีการออกรุ่นใหม่ Milestone 41 สำหรับ x86 ถูกเผยแพร่เมื่อวันที่ 5 สิงหาคม 2026 และสาย SPARC ถึง Milestone 34 เมื่อวันที่ 21 เมษายน 2026 โครงการนี้อธิบายตัวเองว่าเป็นสไตล์ย้อนยุคที่มีส่วนประกอบที่ทันสมัย และยังคงใช้รูปแบบแพ็กเกจ SVR4 ที่ Solaris เคยใช้ แทนที่จะเปลี่ยนไปใช้ระบบแพ็กเกจที่ใหม่กว่า
การติดตั้งจะทำงานจาก live image คุณต้องบูต ISO, ล็อกอินด้วยผู้ใช้ jack โดยใช้รหัสผ่าน jack, เปลี่ยนสิทธิ์เป็น root และรันตัวติดตั้งกับอุปกรณ์ดิสก์ นี่คือคำสั่งที่เอกสารการติดตั้งของโครงการระบุไว้:
./live_install.sh -G c1t0d0แฟล็ก -G จะเขียนโครงสร้างพาร์ทิชันแบบ EFI (extensible firmware interface) ส่วน -b จะเลือกโครงสร้างแบบ MBR (master boot record) แบบดั้งเดิมแทน ชื่อดิสก์จะเป็นไปตามธรรมเนียมของ Solaris cXtYdZ แทนที่จะเป็น /dev/sda ซึ่งเป็นสิ่งแรกที่คุณจะรู้สึกไม่คุ้นเคยหากคุณมาจากฝั่ง Linux ชุดซอฟต์แวร์จะถูกเรียกว่า overlays และสามารถระบุชื่อได้ในบรรทัดเดียวกัน:
./live_install.sh -G c1t0d0 develop desktopหลังจากการติดตั้ง เครื่องมือจัดการแพ็กเกจคือ zap ซึ่งทำงานบน overlays เพื่อให้ระบบจัดการ dependency ให้คุณโดยอัตโนมัติ:
zap refresh
zap install-overlay develop
zap update-overlay -aนั่นคือคำสั่งที่ Tribblix เผยแพร่ คำสั่งเหล่านี้ทำงานบนฮาร์ดแวร์หรือ hypervisor ที่คุณควบคุมเอง ไม่ใช่สิ่งที่คุณจะพบในรูปแบบ one-click image ในแผงควบคุม VPS และช่องว่างนั้นคือสถานะที่แท้จริงของการใช้งาน illumos ในปี 2026
เหตุผลที่ ZFS และ DTrace มีอายุยืนยาวกว่า Solaris
ZFS ออกจาก Solaris ทันทีหลังจากที่มีการเผยแพร่ซอร์สโค้ด Pawel Jakub Dawidek ได้พอร์ตมันไปยัง FreeBSD ซึ่งเป็นส่วนหนึ่งของระบบมาตั้งแต่ FreeBSD 7.0 ในปี 2008 ส่วนการพัฒนา ZFS แบบเนทีฟสำหรับ Linux เริ่มต้นขึ้นในปี 2008 และออกรุ่นเสถียรรุ่นแรกในปี 2013 ในช่วงปี 2010 ถึง 2013 illumos เป็นผู้ถือสำเนาอ้างอิงของซอร์สโค้ด ZFS เนื่องจาก tree ของ Oracle ถูกปิดและพอร์ตอื่นๆ จำเป็นต้องมีแหล่งที่มาในการดึงข้อมูล นี่คือคุณค่าที่เป็นรูปธรรมของการทำ fork หากไม่มีสิ่งนี้ พอร์ตต่างๆ จะไม่มีบรรพบุรุษร่วมกันให้ merge เข้าหากันได้
โครงการ OpenZFS ถูกประกาศเมื่อวันที่ 17 กันยายน 2013 เพื่อประสานงานพอร์ตเหล่านั้น โดยมี Matt Ahrens หนึ่งในผู้เขียน ZFS ดั้งเดิมเป็นหนึ่งในผู้ก่อตั้ง OpenZFS 2.0 ถูกปล่อยออกมาเมื่อวันที่ 30 พฤศจิกายน 2020 และบันทึกประจำรุ่น (release notes) ได้ระบุผลลัพธ์ไว้อย่างชัดเจนว่า: "โครงการ ZFS on Linux ได้เปลี่ยนชื่อเป็น OpenZFS แล้ว! ขณะนี้ทั้ง Linux และ FreeBSD ได้รับการสนับสนุนจาก repository เดียวกัน ทำให้ฟีเจอร์ทั้งหมดของ OpenZFS สามารถใช้งานได้บนทั้งสองแพลตฟอร์ม" FreeBSD 13.0 ได้ยกเลิกการใช้สำเนาที่ดัดแปลงมาจาก illumos ของตนเองและย้ายไปใช้ tree ที่ใช้ร่วมกันนั้น
ZFS ทั้งสองสายได้แยกออกจากกันในระดับดิสก์ สายที่เป็นโอเพนซอร์สหยุดอยู่ที่ pool version 28 ซึ่งเป็นเวอร์ชันสุดท้ายที่ Sun เผยแพร่ และเปลี่ยนไปใช้ feature flags แบบระบุชื่อภายใต้เวอร์ชัน placeholder 5000 ดังนั้น pool จะประกาศว่าใช้ฟีเจอร์ใดบ้างแทนที่จะใช้ตัวเลขเพียงตัวเดียว ส่วน Oracle ยังคงเพิ่มหมายเลขเวอร์ชันของตนเองต่อไปภายใต้ซอร์สโค้ดแบบปิด pool ที่สร้างขึ้นเกินเวอร์ชัน 28 ในฝั่งหนึ่งจะไม่สามารถ import ในอีกฝั่งหนึ่งได้ หากคุณกำลังตัดสินใจว่าจะรันมันที่ไหน พฤติกรรมของ OpenZFS บน FreeBSD เมื่อเปรียบเทียบกับ Linux จะครอบคลุมถึงสิ่งที่แตกต่างกันจริงๆ ระหว่างโฮสต์ทั้งสอง
DTrace เดินทางในระยะทางที่สั้นกว่า มันเป็นมาตรฐานใน FreeBSD ภายในเดือนมกราคม 2009 ในรุ่น 7.1 และ Apple ได้เพิ่มมันเข้ามาใน Mac OS X 10.5 Leopard ในเดือนสิงหาคม 2017 Oracle ได้ปล่อยซอร์สโค้ดเคอร์เนลของ DTrace ภายใต้สัญญาอนุญาต GPLv2 ซึ่งเป็นการเปลี่ยนแปลงที่ได้รับความสนใจอย่างกว้างขวางในเดือนกุมภาพันธ์ 2018 ซึ่งช่วยขจัดอุปสรรคด้านสัญญาอนุญาตสำหรับ Linux แต่มันก็ไม่เคยถูก merge เข้าสู่ mainline kernel การทำ tracing บน Linux ในทางปฏิบัติจะรันบน eBPF และ bpftrace ได้มอบภาษาสำหรับเขียนสคริปต์ที่ตั้งใจให้ใกล้เคียงกับภาษา D ของ DTrace
รูปแบบนี้คือประเด็นสำคัญ ไม่ใช่เรื่องของ Solaris เพียงอย่างเดียว Sun เผยแพร่ ZFS และ DTrace ภายใต้สัญญาอนุญาตที่อนุญาตให้ผู้อื่นเก็บสำเนาและพัฒนาต่อได้ เมื่อบริษัทที่เป็นผู้จ่ายเงินสำหรับงานนี้หยุดดำเนินการ งานก็ยังคงดำเนินต่อไปได้เพราะโค้ดอยู่ใน tree อื่นและอยู่ในมือของผู้อื่นแล้ว ส่วนประกอบของ Solaris ที่ไม่เคยถูกเปิดเผย รวมถึง binary แบบปิดที่ illumos ต้องเขียนขึ้นใหม่ ได้หายไปพร้อมกับบริษัท นั่นคือสิ่งที่การทำโอเพนซอร์สเปลี่ยนแปลง และเป็นกลไกเดียวกันที่อยู่เบื้องหลัง วิธีการที่ Linux distributions สืบทอดต่อกันมา
คุณควรใช้งาน illumos บน VPS หรือไม่
สำหรับคนส่วนใหญ่ คำตอบคือไม่ และเนื้อหาข้างต้นไม่ใช่คำแนะนำให้ลองใช้งาน illumos รองรับฮาร์ดแวร์ในวงจำกัด เนื่องจากชุดไดรเวอร์คือสิ่งที่ Sun เคยสนับสนุนรวมกับสิ่งที่ชุมชนขนาดเล็กพัฒนาขึ้นในภายหลัง ผู้ให้บริการ VPS มักเผยแพร่เฉพาะอิมเมจ Linux และ BSD ดังนั้นการติดตั้ง illumos จึงมักหมายถึงการอัปโหลด ISO ของคุณเองไปยังผู้ให้บริการที่อนุญาตให้ใช้ custom image แล้วจึงมาตรวจสอบว่าดิสก์เสมือนและอุปกรณ์เครือข่ายได้รับการจดจำหรือไม่ ส่วนซอฟต์แวร์จากภายนอกนั้นต้องมาจากชุดแพ็กเกจของดิสทริบิวชันเองหรือจากการคอมไพล์ด้วยตนเอง
เหตุผลที่ควรใช้งานจริงมีอยู่ เช่น ภาระงานบน Solaris ที่คุณจำเป็นต้องรักษาไว้, การใช้งาน zones ที่คุณดำเนินการอยู่แล้ว หรือความสนใจในการอ่านซอร์สโค้ด ดิสทริบิวชันที่ระบุไว้ข้างต้นมีการดูแลรักษาและมี mailing list สำหรับตอบคำถาม ซึ่งเป็นคนละเรื่องกับการเลือกใช้เป็นค่าเริ่มต้นสำหรับเซิร์ฟเวอร์ใหม่
หากคุณมาที่นี่เพราะต้องการ ZFS คุณไม่จำเป็นต้องใช้ illumos เพื่อให้ได้มา ให้ใช้งาน OpenZFS บน Linux หรือบน FreeBSD ซึ่งมีการทำแพ็กเกจ มีเอกสารประกอบ และมีการใช้งานอย่างแพร่หลาย หากคุณกำลังชั่งน้ำหนักฝั่ง BSD ในตระกูลเดียวกันสำหรับเซิร์ฟเวอร์ การเปรียบเทียบเชิงปฏิบัติระหว่าง Linux และ FreeBSD ในฐานะแพลตฟอร์มเซิร์ฟเวอร์ จะครอบคลุมถึงสิ่งที่เปลี่ยนแปลงในการปฏิบัติงานประจำวัน illumos คือจุดกำเนิดของเครื่องมือเหล่านี้ และการทราบที่มาของมันจะช่วยอธิบายพฤติกรรมหลายอย่างได้เป็นอย่างดี โดยเริ่มจากเหตุผลที่ว่าทำไม zpool และ zfs จึงให้ความรู้สึกที่แตกต่างจากส่วนอื่นของ stack การจัดเก็บข้อมูลบน Linux อย่างสิ้นเชิง
FAQ
illumos เหมือนกับ OpenSolaris หรือไม่
ไม่เหมือนกัน OpenSolaris เป็นโครงการและดิสทริบิวชันของ Sun ซึ่งถูกส่งต่อให้ Oracle และ Oracle ได้ยุติโครงการลงในปี 2010 ส่วน illumos เป็นโครงการแยกต่างหากที่ประกาศเมื่อวันที่ 3 สิงหาคม 2010 โดยสร้างขึ้นจากซอร์สโค้ดหลักของ OpenSolaris เวอร์ชันล่าสุดที่เผยแพร่ คือ OS/Net consolidation งานแรกของโครงการคือการแทนที่คอมโพเนนต์ไบนารีแบบปิดที่ OpenSolaris เคยใช้ ซึ่งรวมถึง libc_i18n, NFS lock manager, เฟรมเวิร์กด้านการเข้ารหัส และไดรเวอร์จำนวนหนึ่ง โค้ดของ illumos ไม่มีส่วนใดที่มาจาก Oracle หลังจากปี 2010 เนื่องจาก Oracle ยุติการเผยแพร่ซอร์สโค้ดดังกล่าว
ทำไม Linux ถึงรวม ZFS ไว้ในเคอร์เนลไม่ได้
เนื่องจากสัญญาอนุญาตไม่สอดคล้องกัน ZFS ใช้สัญญาอนุญาตแบบ CDDL ซึ่งมูลนิธิซอฟต์แวร์เสรี (Free Software Foundation) จัดว่าเป็นสัญญาอนุญาตซอฟต์แวร์เสรีที่ไม่เข้ากันกับ GPL โดยเป็นความไม่เข้ากันที่ CDDL รับสืบทอดมาจาก MPL 1.1 ส่วน Linux kernel ใช้สัญญาอนุญาต GPLv2 ผลในทางปฏิบัติคือ OpenZFS บน Linux จึงต้องทำงานในรูปแบบ out-of-tree kernel module ซึ่งมักจะถูกคอมไพล์ด้วย DKMS ตามเคอร์เนลแต่ละเวอร์ชันที่คุณติดตั้ง หรือติดตั้งในรูปแบบแพ็กเกจโมดูลที่คอมไพล์มาล่วงหน้า แม้จะทำงานได้ดี แต่โมดูลจำเป็นต้องถูกคอมไพล์ใหม่ทุกครั้งที่มีการอัปเดตเคอร์เนลใหม่ ทำให้การรองรับเคอร์เนลเวอร์ชันล่าสุดอาจล่าช้าไปหลายวันหรือหลายสัปดาห์
Oracle Solaris ยังได้รับการสนับสนุนอยู่หรือไม่
ใช่ Oracle Solaris 11.4 เปิดตัวเมื่อวันที่ 28 สิงหาคม 2018 และเป็นเวอร์ชันปัจจุบัน โดยมี Premier Support ถึงเดือนพฤศจิกายน 2031 และ Extended Support ถึงเดือนพฤศจิกายน 2037 ภายใต้นโยบายการสนับสนุนตลอดอายุการใช้งานของ Oracle ทั้งนี้ Oracle ได้เลิกจ้างทีมงาน Solaris ส่วนใหญ่เมื่อวันที่ 2 กันยายน 2017 และนับตั้งแต่นั้นมา 11.4 ได้รับเพียงการอัปเดตผ่าน repository เท่านั้น ไม่มีการออกเวอร์ชันหลักใหม่ และซอร์สโค้ดฉบับเต็มก็ไม่ได้ถูกเผยแพร่ในลักษณะเดียวกับที่ OpenSolaris เคยทำ
ฉันสามารถติดตั้ง illumos บน VPS ได้หรือไม่
ทำได้ในบางกรณี แต่หาได้ยากจากรายการอิมเมจของผู้ให้บริการ โดยทั่วไปคุณต้องเลือกผู้ให้บริการที่อนุญาตให้แนบไฟล์ ISO แบบกำหนดเองและเข้าถึงคอนโซลได้ จากนั้นจึงตรวจสอบว่า virtual disk และไดรเวอร์เครือข่ายใน illumos tree รองรับอุปกรณ์ของไฮเปอร์ไวเซอร์นั้นหรือไม่ OpenIndiana และ Tribblix เป็นจุดเริ่มต้นทั่วไปสำหรับการติดตั้งใช้งานทั่วไป ส่วน SmartOS ถูกออกแบบมาเพื่อเป็นโฮสต์สำหรับไฮเปอร์ไวเซอร์มากกว่าที่จะเป็นเกสต์ ควรทดสอบในเครื่องเสมือน (virtual machine) ในเครื่องของคุณเองก่อนที่จะชำระเงินค่าบริการใดๆ
DTrace ยังน่าเรียนรู้หรือไม่หากฉันใช้เพียง Linux
แนวคิดของ DTrace สามารถนำไปประยุกต์ใช้ได้แม้ว่าตัวเครื่องมือส่วนใหญ่จะไม่ได้ถูกนำมาใช้ก็ตาม Oracle ได้เผยแพร่โค้ดเคอร์เนล DTrace ภายใต้สัญญาอนุญาต GPLv2 ในเดือนสิงหาคม 2017 และดูแลพอร์ตสำหรับ Oracle Linux แต่โค้ดดังกล่าวไม่เคยถูกรวมเข้ากับ mainline kernel และการทำ tracing บน Linux ในทางปฏิบัติจะใช้ eBPF แทน ภาษาที่ bpftrace ใช้ถูกออกแบบมาให้มีลักษณะคล้ายกับภาษา D ของ DTrace ดังนั้น probes, predicates และ aggregations จึงมีความหมายเหมือนกันทั้งสองระบบ การเรียนรู้วิธีคิดแบบ DTrace จะช่วยให้คุณอ่านสคริปต์ของ bpftrace ได้เข้าใจตั้งแต่ครั้งแรกที่เห็น